Computer Science

Computer scientists study the representation, storage, and transformation of data into useful information using electronic computing machines. It affects practically all aspects of contemporary life. The main objects of study are digital computers and the phenomena surrounding them. Work in the discipline is focused on the structure and operation of computer systems, the principles that underlie their design and programming, effective methods for their use in different classes of information processing tasks, and theoretical characterizations of their properties and limitations. Computer Science is an extremely fast-growing and rewarding discipline. The Computer Science program at EU provides the fundamentals of the field in preparing students for immediate entry into the computer industry or for continued study at the graduate level.

Program Learning Outcomes

Graduates of the Computer Science Program should have developed:

  1. The ability to develop an optimal algorithm to solve a problem (Algorithm Development and Implementation).
    • Given a problem, develop an algorithm to solve it.
    • Successfully implement (code) the algorithm in a higher order language.
    • Analyze algorithms to determine the most optimal one.
    • Specify a developed algorithm (design) in pseudocode.
    • Demonstrate proper software engineering techniques and proper use of appropriate data structures when developing code.
  2. An understanding of the underlying concepts and characteristics of real and conceptual machines (Computer Architecture and System Hardware).
    • Gain an understanding of the underlying concepts of conceptual machines (e.g., finite state automata, Turing machines, etc.).
    • Gain an understanding of peripherals comprising a computer system (includes storage techniques).
    • Determine and analyze system requirements to effectively determine the optimal system for a business organization.
    • Understand circuit design and how circuitry is used to implement computer system components.
  3. An understanding of the software comprising a computer system (System Software).
    • Examine system software components (with regard to system requirements) to effectively generate an optimal computer system.
    • Gain an understanding of the interrelationship of system software with hardware and system components.
    • Gain an understanding of database models, design, and implementation.
    • Gain an understanding of operating system concepts and implementations.
  4. The ability to effectively communicate technical information both orally and in writing (Communication Skills).
    • Demonstrate effective writing skills for both technical and non-technical information.
    • Demonstrate effective oral communication skills.
    • Effectively communicate in writing the results of research on a technical subject.

Degrees and Certificates

Classes

CPSC 101 : Introduction to Personal Computers

Survey of personal computers and applications. Introduces general computer concepts and terminology with emphasis on using the personal computer as a tool for knowledge workers; Popular software applications examined include word processing, data management, electronic spreadsheets, and computer graphics.

Credits

3

CPSC 111 : Introduction to Computer Science

Introduction to the field of computer science, including computer architecture and ethics. Emphasizes the logical operations of a digital computer, problem-solving techniques, development of algorithms, design techniques and structured programming concepts. Topics are taught using the high order language- C++. Proper program design, coding disciplines, documentation, debugging, and testing techniques are also discussed.

Credits

3

CPSC 142 : Java Programming I

Introduction to object-oriented programming using Java. Emphasis is placed on event-driven programming by creating and manipulating objects, classes and creating GUI applications. This is a Prerequisite to CPSC 242 (Java Programming 2).

Credits

3

CPSC 211 : Data Structures

Continuation of CPSC 111with additional and more complex data structures defined at the abstract, application, and implementation levels. Topics include basic concepts of data representation, linear lists, strings, arrays, linked lists, stacks, queues and tree structures. Also included is the study of algorithms developed in support of these data structures and for searching and sorting. Object-oriented programming is done using the C++ language.

Credits

3

Prerequisites

A minimum grade of C in CPSC 111.

CPSC 215 : Assembly Language Programming

Introduction to the internal operation of a computer's machine language. Topics include computer architecture, data representation, storage definition, assembler concepts, and instruction formats in an assembler language.

Credits

3

Prerequisites

CPSC 211.

CPSC 225 : Computer Hardware Organization

Introduction to the organization and structure of the major hardware components in a computer system. Topics include the mechanics of information transfer and control, the fundamentals of logic design, the mechanics and structure of I/O devices, the processor, and main memory. Conceptual machines (deterministic and nondeterministic finite state machines, turning machines, etc. are also examined).

Credits

3

Prerequisites

CPSC 211 and MATH 212.

CPSC 231 : Introduction to File Processing

Introduction to the concepts and techniques of structuring data on auxiliary storage devices. Common file organizations such as sequential relative and indexed are examined. Topics include external sort-merges, hashing, indexing, and various search tree manipulations. The physical characteristics of auxiliary storage devices are also examined.

Credits

3

Prerequisites

CPSC 211.

CPSC 242 : Java Programming II

A continuation of CPSC 142 (Java Programming I) exploring advanced topics and data structures with a semester project included.

Credits

3

Prerequisites

CPSC 142.

CPSC 248 : Special Topics

Topics include specialized areas of computer science not otherwise offered. The student's transcript will show the specific topic covered. A maximum of 9 credits of special topics is allowed.

Credits

3

CPSC 250 : Introduction to Cybersecurity

Introduction to, and solid foundation for, computer and network security. Coverage includes basic security principles and standards as well as countermeasures and approaches to meeting computer security requirements. Topics include threat types and characteristics, prevention (user authentication and access control), encryption, and legal and ethical aspects. Various exercises are performed to enhance the student's experience. 

Credits

3

Prerequisites

CPSC 111 or programming equivalent.

CPSC 290 : Independent Study and Research

Independent study in computer science under the direction of a faculty member. Topics are selected from recent developments in computer science.

Credits

1 - 3

Prerequisites

Permission of the professor.

CPSC 311 : Systems Analysis and Design

Explores the techniques of problem definition, determination of system requirements, and design of computer applications. Topics include development life cycle, cost determination, data requirements, and systems documentation. Various case studies are examined.

Credits

3

Prerequisites

Junior or senior standing.

CPSC 325 : Data Communications

Explores data communications, including directly connected devices, local and wide area networks, communication protocols and standards, and network security.

Credits

3

Prerequisites

Junior or senior standing.

CPSC 411 : Ethical Hacking

Addresses the fundamentals of ethical hacking.  The course utilizes virtual labs to enhance and supplement the material presented.  Topics include footprinting and scanning; enumeration and system hacking; malware; sniffers, session hijacking and denial of service; web server hacking, web application attacks, and database attacks; IDS, firewalls, and honeypots; physical security and social engineering; cryptographic attacks and defenses; cloud computing and botnets. 

Credits

3

Prerequisites

CPSC 250.

CPSC 412 : Computer Forensics

Focuses on the use of the most popular forensics tools and provides specific guidance on dealing with civil and criminal matters relating to the law and technology. Includes discussions on how to manage a digital forensics operation in today's business environment.

Credits

3

Prerequisites

CPSC 250.

CPSC 415 : Operating Systems

Overview of operating system concepts, characteristics, and design considerations. Topics include concurrent processes, coordination of asynchronous events, file systems, resource sharing, memory management, scheduling, and deadlock problems.

Credits

3

Prerequisites

CPSC 211 and 225.

CPSC 420 : Cybersecurity for Developers

Explores secure design principles and techniques for developing software with security in mind. Reviews the security capabilities of information platforms and what is known about common attack methodologies. Examines the security needs of each phase of software development and shows how to organize and shield information to protect privacy and information viability.

Credits

3

Prerequisites

CPSC 111, CPSC 211, and CPSC 250.

CPSC 425 : Cryptography

Surveys both the principles and practice of cryptography and its application to network security. The course covers cryptography and network security technology as well as the practical applications that have been implemented and are in use to provide network security.  Topics include symmetric and asymmetric ciphers and their underlying mathematical foundations. As time permits, cryptographic data integrity algorithms, mutual trust, and network and internet security may be covered.

Credits

3

Prerequisites

Completion of MATH 212 and CPSC 250 is preferred.

CPSC 435 : Artificial Intelligence

Introduction to the field of artificial intelligence (AI), a field of computer science concerned with the computational understanding of intelligent behavior along with the machines/computer programs that exhibit such behavior. Topics include the characteristics of typical AI problems and solutions, knowledge representation, defining a problem as a state space search, and heuristic search techniques.

Credits

3

Prerequisites

CPSC 211 and MATH 212.

CPSC 441 : Database Management Systems

Database concepts, database design, data models, query language facilities, and data protection considerations and methodologies. Emphasis is on the relational data model, but other database models are examined (e.g., object-oriented).

Credits

3

CPSC 442 : Big Data

Provides experience in a variety of areas of importance when processing massive amounts of data of diverse types. These areas include elements of python, parallel and distributed computing, databases, structured query language (SQL), data interchange formats (JSON), NOSQL, and specific big data tools such as HADOOP, MapReduce, Spark. 

Credits

3

CPSC 448 : Special Topics

Topics selected from specialized areas of computer science not otherwise offered. Topics include material deemed to be advanced enough to warrant upper division status.  The Student's transcript will show the specific topic covered.  A maximum of 9 credits of special topics is allowed.

Credits

3

CPSC 490 : Independent Study and Research

Independent study in computer science under the direction of a faculty member. Topics are selected from recent developments in computer science and include material deemed to be advanced enough to warrant upper division status.

Credits

1 - 3

Prerequisites

Computer science major and permission of the professor.

CPSC 493 : Senior Project

The independent development and implementation of a special project chosen by the student (subject to Instructor approval). Designed to have the student incorporate skills developed through prior courses.

Credits

3

Prerequisites

Computer Science major with a minimum of 21 credits in computer science completed.

CPSC 497 : Internship

Supervised field experience in Computer Science contributing to the student's professional development. Prior approval must be obtained before internship arrangements are completed.

Credits

3

Prerequisites

Computer Science major with a minimum 21 credits in computer science completed, a minimum GPS of 3.0 in those courses, and/or permission of the professor.