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.


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://www.udayton.edu/academics/graduate/index.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.
 

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.

Academics

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
Thesis
Software Engineering Project I
and Software Project II
Additional CPS courses 510 and above

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.  Students enrolled in our CPS Master's program may also apply for this certificate program; no additional admission requirements are needed.

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

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

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

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 567. Advanced Computer Vision. 3 Hours

An introduction to computer vision including fundamentals of image formation, camera imaging geometry, feature detection and matching, and scene understanding. Students develop basic methods for applications that include finding known models in images, depth recovery from stereo, and pattern recognition.

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.

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

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.

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(s): 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.

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(s): 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(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 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.

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