Computer Science

Mehdi Zargham, Department Chairperson
James Buckley, Graduate Program Director

The graduate program in computer science offers a comprehensive approach to the theory and application of computer science. Graduates of the program will have:

  1. A thorough grounding in the theory of computing science and the ability to apply that knowledge to a variety of problem areas,
  2. Been exposed to a variety of analytical methods and will demonstrate a basic understanding of those methods, and
  3. Been exposed to a wide breadth of computer science information by having studied several of the dominant sub-disciplines of computer science.

The program is individualized to meet each student's needs and provides a firm foundation for continuing on to the doctorate or a professional career. The program accommodates both full-time and part-time students.


Graduate assistantships are offered to qualified students for assisting with introductory computer science courses and assisting faculty with research. Competent assistants making satisfactory progress toward the degree can normally renew their assistantships for a second year. Recipients are expected to complete the requirements for the master's degree in two years. Assistants contribute half-time service of 20 hours per week. Stipends and complete tuition remission for six semester hours per term are provided. Detailed information and application forms may be obtained from the Department of Computer Science.

Additional Information

for additional and recent information on the Department of Computer Science graduate program; see for admission requirements for the Department of Computer Science graduate program; see for general information on the University of Dayton Graduate School.

Master of Computer Science (CPS)

The degree requires 30 semester hours.

Each student's program requires the advance approval of a faculty advisor. A student failing to make normal progress will be required to withdraw from the program.

The student seeking admission should have a Bachelor's degree from an accredited institution of higher education with a cumulative grade point average of at least 3.0 out of 4.0. For success in the program the student should have the equivalent of at least one year of college mathematics which is normally calculus. A few of the graduate courses, in addition to the calculus, cover topics such as linear algebra, statistics, and discrete mathematics as prerequisites.

Students are expected to have a better than average knowledge of algorithm construction and implementation of algorithms in an object-oriented language. Students are encouraged to take CPS 501 during their first term as a graduate student.  This course counts towards the 30 graduate semester hours needed for the degree.  They should discuss this with the Graduate Program Director prior to registering for any courses.

Graduate credit from other accredited institutions of graduate learning will be reviewed by the graduate committees. Transfer of such credit may be accepted up to a maximum of six semester hours.


The degree requires thirty semester hours, as follows:

Required Core Courses:
CPS 530Algorithm Design3
or CPS 543 Advanced Concepts of Programming Languages
CPS 536Operating Systems I3
or CPS 570 Data Communications
CPS 510System Analysis3
or CPS 542 Database Management Systems
CPS Electives 115
Culminating Experience - Select one from:6
Software Engineering Project I
and Software Project II
Additional CPS courses 510 and above

 Fifteen semester hours from CPS courses numbered 510 and above.  Up to six of these semester hours can be 400-level CPS courses and must be approved by an advisor.  Up to six of these semester hours can be taken from graduate courses of other university departments (with advisor approval).

Each student's program requires the advance approval of a faculty advisor. A student failing to make normal progress will be required to withdraw from the program.


CPS 501. Advanced Programming and Data Structures. 3 Hours

A bridge course for students who already have a programming background. Covers advanced data structures and programming techniques in a high level programming language.

CPS 509. Topics in Computer Science. 1-3 Hours

Lectures in special areas of interest determined by the department. May be taken more than once for additional credit when the topics or contents change. Prerequisite(s): Permission of department chairperson.

CPS 510. System Analysis. 3 Hours

Process-oriented, data-oriented, and object-oriented approaches for systems development; comparison of various systems development life cycles; DFD methodology for systems analysis using state-of-the-art CASE (Computer Aided Software Engineering) tools; logical and event analyses of DFD specifications; tools and techniques for modeling real-time systems; data modeling; introduction to object-oriented analysis methodologies. Prerequisite(s): CPS 350.

CPS 512. System Design. 3 Hours

Principles of design, introduction to software design methodologies; issues in transition from analysis to logical and physical designs; detailed discussion of structured design methodology (Yourdon, Constantine, Myers); design guidelines; transform analysis; Warnier/Orr design methodologies; designing methodologies for real-time systems; introduction to object-oriented design; CASE tools and code generators. Prerequisite(s): CPS 510.

CPS 518. Software Engineering. 3 Hours

No description available.

CPS 520. Object-Oriented Systems Development. 3 Hours

Unified Modeling Language (UML), use cases, class diagrams, sequence diagrams, collaboration diagrams, state charts, activity diagrams, component and deployment views, design patterns, and implementation of various UML models through team projects. Prerequisite(s): CPS 350, 510.

CPS 522. Software Project Management. 3 Hours

Cost and effort estimation models for software projects, planning techniques, productivity metrics, risk management, maintenance, reuse, quality assurance, configuration management, Capability Maturity Models (CMM and P-CMM), and ISO 9001. Prerequisite(s): CPS 510 or CPS 518 or CPS 520.

CPS 530. Algorithm Design. 3 Hours

The design and analysis of computer algorithms, including order notation, sorting, dynamic programming, graph algorithms, string matching, matrix multiplication, NP-completeness. Prerequisite(s): CPS 350.

CPS 534. Distributed Computing with Big Data. 3 Hours

This course introduces students to distributed computation frameworks (such as MapReduce) associated with massive datasets. Topics focus on parallel/distributed algorithms, data mining and machine learning algorithms for processing and analyzing very large amounts of data, and data visualization. Prerequisite(s): CPS 350.

CPS 536. Operating Systems I. 3 Hours

Models and algorithms pertinent to the design of computer operating systems; concurrent processes including synchronization, communication and deadlock problems, process and device scheduling policies, design of file systems, reliability and protection. Prerequisite(s): CPS 350.

CPS 542. Database Management Systems. 3 Hours

Physical and logical organization of data files; hierarchical, network, and relational database models; data definition language and data manipulation language of a commercial database management system; query languages. Prerequisite(s): CPS 350.

CPS 543. Advanced Concepts of Programming Languages. 3 Hours

This course involves the study of advanced programming language concepts and paradigms. Possible topics, covered at the discretion of the instructor, include metalinguistic abstraction and macros, fixed-point combinators, reflection and meta-object protocols, and generative and aspect-oriented programming with emphasis on applying these concepts in practical application domains. Prerequisite(s): CPS 352.

CPS 544. Systems Programming. 3 Hours

Analysis of compilers and their construction; programming techniques discussed in the current literature; advanced computer applications in both mathematical and nonnumeric areas. Prerequisite(s): CPS 350.

CPS 552. Discrete Event Simulation Techniques. 3 Hours

Simulation models; random number generation testing, special purpose simulation languages, statistical analysis of output; regenerative models; trace-driven models. Emphasis on models related to computer operating system design and performance evaluation. Prerequisite(s): CPS 350, statistics.

CPS 560. Computer Graphics. 3 Hours

Types of graphic hardware and their characteristics. Overview of software and techniques used in computer graphics. Two- and three-dimensional graphics displays. Students registering for this course should have programming ability in a procedure-oriented language. Prerequisite(s): CPS 350.

CPS 561. Virtual Reality. 3 Hours

This course offers a broad introduction of virtual reality from fundamental theories to software/hardware technologies involved with the current state of the art in VR. Topics include 3D interaction techniques on virtual immersive systems, human pose/face/hands tracking, graphics and 3D animation collaborative networked virtual environment, augmented reality systems, and security. Some unforeseen security issues in many emerging VR systems are also addressed. Prerequisite(s): CPS 350.

CPS 562. Database Management Systems II. 3 Hours

Study of query execution and optimization, transaction management, concurrency control, recovery and security techniques. Advanced data models and emerging trends in database systems, like object-oriented database systems, distributed database systems, client-server architecture, multidatabase and heterogeneous systems. Other current database topics and emerging technologies will be discussed. Prerequisite(s): CPS 542.

CPS 566. Image Processing. 3 Hours

This course introduces students to a wide range of topics on digital image processing techniques. Topics includes image enhancement, 2D linear and nonlinear filtering, image compression and restoration, pattern recognition, big visual data analysis, and stochastic modeling on images. Prerequisite(s): CPS 350.

CPS 570. Data Communications. 3 Hours

The study of networks of interacting computers. The analysis of distributed processing and distributed databases. Prerequisite(s): CPS 350.

CPS 572. Computer Networking. 3 Hours

A unified view of the broad field of local area and long haul networks. A survey of the state of the art. Topics covered include networking theory, design approaches, standards, topologies and protocols. Prerequisite(s): CPS 536, CPS 570.

CPS 577. Computer System Design I. 3 Hours

Introduction to design and analysis of combinational and sequential circuits of MSI devices to design arithmetic and other computer functions. Analysis of a specific microcomputer architecture including usage of its machine and assembler language. Interfacing of various components with computers. Prerequisite(s): CPS 250.

CPS 580. Artificial Intelligence. 3 Hours

Presentation of theoretical concepts for artificial intelligence in the areas of knowledge representation and search techniques. These are examined in the context of applications for expert systems, semantic networks, and planning problems. Issues concerning functional programming and logic programming are also presented. Prerequisite(s): CPS 350.

CPS 581. Advanced Artificial Intelligence. 3 Hours

This course continues the studies pursued in Artificial Intelligence CPS 580. It delves more deeply into certain areas such as multiple agent systems and induction, and introduces new areas, such as neural networks and planning, not covered in CPS 580. As in CPS 580, each student shall complete a final project investigating some area of research in Artificial Intelligence. The project will encompass a literature search, paper, presentation, and implementation.

CPS 582. Automata Theory. 3 Hours

Finite automata, sequential machines. Turing machines, computability, existence of self-reproducing machines. Prerequisite(s): CPS 528.

CPS 583. Graph Algorithms. 3 Hours

Design and analysis of algorithms for problems based on graphs. Classical algorithms and efficient algorithms for restricted domains of graphs are covered. Analysis of algorithms, complexity classes P, NP, and NP-complete, traversals, bi-connectedness, strongly-connectedness, 2-SAT, planarity testing, and algorithms for restricted classes of graphs. Prerequisite(s): CPS 501.

CPS 591. Special Research Problems. 1-3 Hours

Individual readings and research in a specialized area. May be taken for at most six semester hours. Prerequisite(s): Permission of department chairperson.

CPS 592. Special Topics. 1-3 Hours

Lectures and/or laboratory experience in some areas determined by the department. Prerequisite(s): Permission of department chairperson.

CPS 595. Software Engineering Project I. 3 Hours

First of a two-course project sequence. Students, either individually or in teams, must propose a project, conduct background research, justify the adequacy of the work for a graduate project, complete analysis and design using appropriate methodologies and CASE tools, and write preliminary coding. Students are expected to write code and minimize the usage of visual or other development environments. A minimum of three class presentations is expected for project proposal, progress, and final analysis/design. Prerequisite(s): (CPS 510, CPS 530); permission of department chairperson.

CPS 596. Software Project II. 3 Hours

Continuation of CPS 595. Students are required to implement the analysis and design of their projects and make periodic presentations. Special attention needs to be given to the overall architecture of the system, usability, testing, and documentation. A minimum of two class presentations is expected for design and implementation. Prerequisite(s): CPS 595.

CPS 599. Thesis. 3-6 Hours