2023-2024 Academic Catalog

Computer Science


Michael Poor, 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.

Admission

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 a bachelor’s degree in computer science, mathematics, engineering, or one of the sciences. A bachelor’s degree in computer science or a closely related field is preferred.  

Graduate credit from other accredited institutions of graduate learning will be reviewed by the graduate committees. 

Required Core Courses
CPS 530Algorithm Design3
or CPS 543 Advanced Concepts of Programming Languages
CPS 536Operating Systems3
or CPS 570 Data Communications
CPS 510System Analysis3
or CPS 542 Database Management Systems
CPS Electives 1
Culminating Experience, select one:6
Thesis
Software Engineering Project I
and Software Project II
1

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 the Graduate Program Director.  Up to six of these semester hours can be taken from graduate courses of other university departments (with the Graduate Program Director approval).


Each student's program requires the advance approval of the Graduate Program Director. A student failing to make normal progress will be required to withdraw from the program.

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.

Assistantships

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

See http://www.udayton.edu/artssciences/computerscience_grad
for additional and recent information on the Department of Computer Science graduate program; see https://udayton.edu/artssciences/academics/computerscience/academic/msc.php  for admission requirements for the Department of Computer Science graduate program; see http://gradschool.udayton.edu/ for general information on the University of Dayton Graduate School.

Doctor of Philosophy in Computer Science (CPS)

  1. The Ph.D. coursework must include three one-credit-hour seminar courses, 12 credit hours from an approved list of 500/600-level VR and cybersecurity courses (students can choose to specialize in one of these areas and take all 12 credits from one area, or they can choose a more generalized path and take courses from both areas), and 15 credit hours from an approved list of 500/600-level elective courses. The one-credit-hour seminar courses will emphasize writing and presenting research and investigating techniques for result validations. Content will vary with the expertise of invited presenters, the concentrations of students, and advances in the field; they also may vary in format (e.g., lecture, panel) based on the subject matter. Responsibility for seminar content and planning will rotate among faculty. (See below for course of study.)
  2. The graduate program director advises on course selection until the student’s dissertation committee is formed. Once the student completes 19 credit hours of study, the student must file a request with the graduate program director to appoint a dissertation committee, which will determine the student’s remaining course of study.
  3. The course of study may include up to six credit hours of 500- and 600-level courses from academic departments other than computer science. These courses must be selected from a list approved by the Department of Computer Science graduate committee.
  4. The student must fulfill the requirements for the departmental written qualifying examination within three years of enrollment in the doctoral program.  The student’s dissertation advisor organizes and administers the qualifying examination. The advisor assigns the creation of the examination to two or three faculty members; it is to be based on three areas of concentration related to the student’s intended dissertation area. Questions will be drawn from regular 500/600-level graduate courses the student has taken at UD related to the student’s dissertation topic. The grade for the exam will be pass or fail on each subject area. If a student fails to pass any area of the written examination, a second chance will be given for the failed topic test. Students who fail the qualifying examination after two attempts will be dismissed from the Ph.D. program.
  5. No more than 15 semester hours of dissertation credit may be taken prior to the student performing an oral candidacy examination, which is an oral presentation of the dissertation proposal. Consideration for candidacy requires 1) the successful completion of at least 75 percent of the course requirements; 2) the successful passing of all qualifying exams; and 3) an oral defense of the dissertation proposal. The members of the student’s dissertation committee, with at most one exception, must judge the dissertation proposal to be satisfactory. If the proposal is deemed unsatisfactory, the committee will schedule a second opportunity. If the dissertation committee does not deem the proposal defense satisfactory after the second attempt, the committee will evaluate the student for dismissal from the Ph.D. program.
  6. A student will be officially admitted to candidacy for the Ph.D. degree after passing the oral candidacy examination and upon completion of all coursework. The student must then complete the required hours of dissertation credit, restricted to nine hours per semester. To be worthy of the Ph.D. degree, the dissertation must conform to high literary and scholastic standards and comply with all the relevant requirements of Graduate Academic Affairs as shown in the Graduate Catalog.
  7. Each candidate must give an oral defense of the dissertation to the candidate’s dissertation committee. This oral defense of the dissertation must take place at least six months after the oral candidacy exam (proposal defense). The dissertation will be accepted provided the dissertation advisor and at least two of the other three members of the committee so agree.
  8. From the dissertation, the candidate must publish (or have accepted for publication) a minimum of one article in a reputable peer-reviewed journal prior to graduating. Advisors will provide mentorship to students on publishing and acceptable journals.
  9. Degree requirements, graduation, and time limits are subject to the general guidelines of the University of Dayton.

The minimum credit hours required for the Ph.D. degree is 60 semester hours beyond the master’s degree. This includes a minimum of 30 semester hours for the dissertation and a minimum of 30 semester hours of 500/600-level coursework.

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.
 

Students seeking admission should have a Bachelor's degree in Computer Science or a closely related field from an accredited institution of higher education with a cumulative grade point average of at least 3.0 out of 4.0. Coursework equivalent to CPS 150, CPS 151 and CPS 350, demonstrating expertise in a high-level language up to and including data structures, is required. 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. CPS 501 is required for all first-semester MCS students.  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. 

Academics

The degree requires thirty semester hours, as follows:

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

Twelve 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.

Certificate in Autonomous Systems and Data Science (ASD)

Autonomous systems are largely self-governing and self-directed – though not completely so. Autonomous systems accomplish complex tasks with an element of human involvement ranging from monitoring to a virtual human-machine partnership. Achieving autonomy demands tremendous advances in fundamental and applied science since autonomous systems must respond to situations that were not anticipated when the system was built. Future autonomous systems will require innovation in machine learning, AI, image processing, command and control, cyber security, hardware and software safety, robotics, human factors, algorithms, as well as advances in legal and ethical frameworks to guide what decisions may morally be made by a machine and under what conditions. This certificate in Autonomous Systems and Data Science offers theoretical/practical coursework to facilitate the improvement of autonomous system design and the awareness of the role of such systems in society. It also provides coursework to derive data intelligence solutions.

Admission

To be considered for admission to this certificate program, students must have a bachelor’s degree in mathematics, engineering, or one of the sciences. A bachelor’s degree in computer science or a closely related field is desirable. The minimum required bachelor-level GPA is 3.0 out of 4.0.

Academics

The certificate requires fifteen semester hours1, as follows:

CPS 501Advanced Programming and Data Structures3
Select one course from the following list or equivalent courses approved by Steering Committee:3
Human Factors
Advanced Cognitive Processes
Cognitive Neuroscience
Perception
Select three courses from the list of approved courses by Steering committee:9
Distributed Computing with Big Data
Virtual Reality
Visual Computing and Mixed Reality
Advanced Computer Vision
Advanced Interactive Media
Security and Safety in Autonomous Systems
Artificial Intelligence
Advanced Intelligent Systems and Deep Learning
Total Hours15
1

Students pursuing this certificate may apply certificate coursework toward our Master of Computer Science.

Courses

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

Covering 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 501.

CPS 518. Software Engineering. 3 Hours

Covering software process models, requirements elicitation with Use Cases, Object-oriented Analysis and Design (OOA/OOD) with UML- Domain Modeling, Design concepts, CRC Cards, Sequential Diagrams and OOD (Use Case Realizations), Architectural Design, Interface Design, Software Quality Assurance and Testing, Software Metrics, Security Engineering, and Software Engineering Ethics. Prerequisite(s): CPS 501.

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. Prereqs: CPS 350, 510.

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 is CPS 450.

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 is CPS 434.

CPS 536. Operating Systems. 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 is CPS 356.

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 is CPS 430.

CPS 543. Advanced Concepts of Programming Languages. 3 Hours

The study of advanced programming language concepts and paradigms. Possible topics include continuations, reflection and meta-object protocols, generative and aspect-oriented programming, metalinguistic abstraction and macros, message-passing models and new models of concurrency, with emphasis on their application to practical application domains, including security and software engineering. Prerequisite is CPS 501.

CPS 544. Advanced UNIX/Linux Programming. 3 Hours

The study of advanced topics related to software development in the UNIX/Linux environment. Topics may include advanced interprocess communication (IPC), systems administration, virtualization and security. Prerequisite is CPS 501.

CPS 546. Advanced UNIX/Linux Programming. 3 Hours

Study of advanced tools and utilities for programming and system administration in the UNIX/Linux operating system. Graduate standing in the CPS department.

CPS 551. Advanced Emerging Programming Languages. 3 Hours

Discussion of recent trends and developments in programming languages research and practice. Topics include new concurrency and object models, type systems, functional programming, metaprogramming, multi-paradigm languages, and domain-specific languages.

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 is CPS 460.

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 is CPS 350.

CPS 563. Data Visualization. 3 Hours

The study of methodologies to visualize different kinds of data such as big data or time series data. Main topics include principal component analysis, feature selection, clustering, parallel coordinates, and different kinds of visualization charts.

CPS 564. Visual Computing and Mixed Reality. 3 Hours

The study of methodologies to comprehend and create a mixed-reality application. Main topics focus on the components of visual computing and mixed-reality applications include image filtering, feature extraction, image matching, object tracking, and rendering. Prerequisite is CPS 350.

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 is CPS 350.

CPS 568. Advanced Interactive Media. 3 Hours

A broad introduction to the concepts and common problems of digital data processing and the theoretical aspects of media and interactivity. This course uses a variety of principles and techniques to demonstrate the relationship between visual data sensing and interactivity fundamentals. Prerequisite is CPS 460.

CPS 570. Data Communications. 3 Hours

The study of networks of interacting computers. The analysis of distributed processing and distributed databases. Prerequisite is CPS 470.

CPS 572. Network Security. 3 Hours

This course explores network security. Topics include fundamentals of cryptography and their application in network security, modern network security mechanisms and protocols, analysis of security requirements and mechanisms for improving network security. Prerequisite is CPS 501.

CPS 573. Security and Safety in Autonomous Systems. 3 Hours

Advanced autonomy has unique safety and security challenges due to continuous learning. This course explores methods for evaluating learning to ensure behavior(s) remain safe and secure. This course also explores advanced episodic and semantic memory structures and the ethics of autonomous systems. Prerequisite is CPS 350.

CPS 574. Language-Based Security. 3 Hours

Language-based security course covers fundamental topics of programming language-based concepts for computer security. Application-level vulnerabilities and attacks are introduced and explored. This course covers the design and implementation of security mechanisms, and software security research in the area of programming languages and security. Together with lectures, students learn hands-on experience through practical labs, programming assignments, and a term project. Prerequisite is CPS 474.

CPS 575. Secure Application Development. 3 Hours

An introduction to secure programming principles and practices to develop robust, secure software systems that are free from vulnerabilities. Constructive secure programming techniques are integrated with modern application development technologies so that security can be built in during the design phase of the development process to avoid potential software vulnerabilities and attacks. Prerequisite is CPS 501.

CPS 576. Cyber Security Fundamentals. 3 Hours

An examination of advanced topics in cybersecurity and application of those concepts to a modern networked operating system via course lectures and a project. Analytic methods for modeling fundamental cybersecurity structures are introduced. Prerequisite is CPS 471.

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 579. Cyber Threats and Defense. 3 Hours

This course provides foundational and advanced knowledge about the threats that may exist in cyberspace. Available defense techniques to mitigate threats within a system are also discussed. Prerequisite is CPS 470.

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 is CPS 480.

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 is CPS 482.

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 is CPS 501.

CPS 584. Advanced Intelligent Systems and Deep Learning. 3 Hours

Course goal focuses on building software on machines that behave “intelligently,” enabling computer systems to “do the right thing” in complex environments so that they act optimally given limited information and computational resources available. Core topics of knowledge representation, reasoning, and learning are explored. Prerequisite is CPS 480.

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

Thesis.

CPS 622. Software Project Management. 3 Hours

A study of effort and cost estimation models for software projects, planning techniques, productivity metrics, risk management, structuring and leading software teams, CMMI, ISO, IEEE/EIA and PMBOK frameworks for managing software projects, and ethical issues. Recommended background in CPS 510 or CPS 518.

CPS 662. Database Management Systems II. 3 Hours

Exploration and discussion of advanced database topics, with an emphasis on object-oriented and distributed database management systems. Techniques for query processing and optimization, concurrency control, recovery and security are covered. The Enhanced Entity-Relationship Model is presented as an advanced conceptual modeling tool. Emerging database technologies, such as fuzzy and deductive databases are also discussed. Prerequisites: CPS 542.

CPS 663. Advanced Visual Computing. 3 Hours

An introduction to a wide range of advanced topics on visual computing techniques. Topics include image segmentation, image style transfer, image synthesis, image classification and retrieval. Coursework includes a mandatory research project. Prerequisites: CPS 564.

CPS 664. Current Topics in Virtual/Augmented Reality. 3 Hours

Discussion of current topics in virtual reality (VR) and augmented reality (AR). VR is a computer-generated environment that simulates a realistic experience. AR is a direct or indirect live view of a physical, real-world environment whose virtual objects are augmented by computer-generated perceptual information. Course topics focus on components of VR and AR applications, including VR feedback, VR interaction, object detection, object tracking, pose estimation and rendering. Prerequisites: CPS 564.

CPS 667. Advanced Computer Vision. 3 Hours

An introduction to advanced topics in computer vision including camera imaging, multi-view geometry, feature detection and recognition, and video understanding. Students develop algorithms and automated systems for object detection, motion tracking and pattern recognition. The prerequisites are CPS 501 and CPS 566.

CPS 673. Advanced System Security Analysis. 3 Hours

An examination of computer and network security using propositional and predicate logic and formal models. The course synthesizes elements from computer networking, operating systems security, and data security using access control matrices, protection models, confidentiality, integrity, representing identity, and information flow and confinement. Prerequisite(s): CPS 576.

CPS 674. Current Topics in Autonomous Systems. 3 Hours

A survey of current research articles and seminal papers in autonomy to determine the state-of-the-art in autonomous system capabilities. Prerequisite(s): CPS 573 and CPS 576.

CPS 679. Research Methods, Performance Analysis, and Experimental Design. 3 Hours

Presentation of techniques for the measurement, simulation, and analysis of computer systems, software, and communication networks. A systematic approach to performance evaluation is developed. This course introduces and applies advanced statistical methods and analysis techniques to ensure research conclusions are rigorous, defensible, and supported by the data collected. Prerequisites: CPS 501.

CPS 680. Web 3 Science: Semantics and Knowledge. 3 Hours

A presentation of current research techniques for semantic web technologies and knowledge graphs. Topics include RDF and RDFS, ontology engineering, SPARQL language, linked open data, data quality, semantic data extraction, knowledge representation and knowledge capture. Recommended background in CPS 580 or CPS 542.

CPS 682. Text Mining. 3 Hours

A combination of lecture and seminar covering topics related to text classification, clustering, vector representation and topic modeling on various types of corpora. This covers corpus collected from social media, blogs, reviews, forums, newspapers and domain-specific literature such as biomedical domain. Prerequisites: CPS 584, 580.

CPS 683. Advanced Topics in Knowledge Graph. 3 Hours

A combination of lecture and seminar covering advanced topics in information integration, reasoning, knowledge representations and knowledge management. Prerequisites: CPS 680.

CPS 684. Information Extraction. 3 Hours

A lecture-based course with the inclusion of several seminars. Core topics relate to entity extraction, entity linking, relation extraction and fact extraction. Discussion of these topics are mainly empowered by ontology-based approaches. Prerequisites: CPS 584, CPS 680.

CPS 699. Dissertation. 1-9 Hours

Research for the doctoral degree.