2023-2024 Academic Catalog

Computer Science

Courses

CPS 111. Introduction to Personal Computers. 3 Hours

Emphasis on use of operating system, particularly file organization, and applications: word processor, spreadsheet, database and presentation software.

CPS 132. Computer Programming for Engineering & Science. 3 Hours

Fundamentals of computer programming including algorithms, program structure, library routines, debugging, and program verification. Calculus-based computer solutions of problems from science and engineering using C++. Corequisite(s): MTH 168.

CPS 144. Introduction to Computer Programming. 3 Hours

Fundamentals of computer programming including algorithms, program structure, library routines, debugging, and program verification. Computer solutions of problems from social sciences using a suitable compiler language such as Visual Basic.

CPS 149. Creative Media Applications. 3 Hours

Multidisciplinary, project-driven learning process courses that encourages students to develop problem solving and teamwork skills while fostering creativity and logic. The goal is not only to provide students with some “programming maturity,” but to also engage them through working in small teams on existing projects related to their discipline and interest. Projects may include creative animations and games, mobile app developments, or avatars.

CPS 150. Algorithms & Programming I. 4 Hours

Introduction to computers and programming using a high-level, structured language. Topics include problem solving, algorithms, programming constructs, data representation, stepwise refinement, and debugging.

CPS 151. Algorithms & Programming II. 4 Hours

Algorithms and Programming II covers object-oriented design and development, data abstraction, exception handling, linked lists, stacks, queues, binary trees, and recursion using a high level, structured language. Prerequisite(s): CPS 150.

CPS 242. Web Application Development. 3 Hours

Web application development using the state-of-the-art environments such as markup languages, scripting languages, dynamic web pages, server side technologies, and database access. Prerequisite(s): CPS 151.

CPS 249. Programming and Data Structures in Python. 3 Hours

This course will introduce the core data structures of the Python programming language. We explore fundamental data structures, their design, implementation, and effective use in solving problems. Topics include data structures such as trees, search trees, queues, and graphs. Prerequisites: CPS 149.

CPS 250. Computer Organization and Architecture. 3 Hours

Machine and assembly language instructions, and writing assembly programs. Design of basic logic circuits needed in constructing a computer. Design of circuits for information encoding, arithmetic units, and transferring and storing information. Data path and control unit for a simple processor. Multiprocessing and alternative parallel systems. Prerequisite(s): CPS 151.

CPS 309. Topics in Computer Science. 1-4 Hours

Lectures or laboratory work in areas of current interest. May be taken more than once. Does not count as upper level credit for majors/minors.

CPS 310. Systems Analysis. 3 Hours

Methodologies for developing software, software development life cycles, data flow approach for system development, data dictionary, process specification, input/output design, E-R diagrams, normalization, and introduction to object-oriented analysis. Prerequisite(s): CPS 151.

CPS 312. Systems Design. 3 Hours

Software design process; developing structured design (e.g., structure charts) from data flow approach using coupling, cohesion, and other design guidelines; fine-tuning object-oriented analysis model to design using design patterns, and implementation. Prerequisite(s): CPS 310.

CPS 341. Discrete Structures. 3 Hours

Propositional logic, Boolean algebra, predicate logic, logical deductions, proof techniques, sets, combinatorics, recurrences, functions, relations, discrete structures such as graphs, digraphs, and associated algorithms. Prerequisite(s): CPS 150.

CPS 343. Comparative Languages. 3 Hours

Language design issues, formal syntax specification, data types and storage methods, activation records and procedural object oriented, functional, and logic programming paradigms. Prerequisite(s): CPS 350.

CPS 349. Data Science. 3 Hours

Design and implementation of systems for data analytics. Topic includes supervised/unsupervised machine learning, regression analysis, neural network, statistical analysis, and data visualization. Prerequisites: CPS 249.

CPS 350. Data Structures & Algorithms. 3 Hours

Dynamic nonlinear data structures including trees, binary trees, search trees, balanced search trees, priority queues, and graphs, with an emphasis on their implementation, uses, and associated algorithms. Analysis of the computational complexity of algorithms related to these structures. Prerequisite(s): CPS 151.

CPS 352. Concepts and Implementation of Programming Languages. 3 Hours

Study of programming language concepts through the implementation of interpreters and assessment of the conceptual differences in the resulting languages. Concepts covered include syntax and semantics, regular and context-free grammars, parsing, binding, scope, parameter passing, lazy evaluation, types, currying, and continuations. A comparative survey of the imperative, functional, logical, and object-oriented paradigms of programming is presented. Prerequisite(s): CPS 350.

CPS 353. Numerical Methods I. 3 Hours

Study of the algorithms of numerical mathematics with emphasis on interpolation, the solution of nonlinear equations, and linear systems of equations including matrix methods; analysis of errors associated with the algorithms. Prerequisite(s): (CPS 132 or CPS 150); MTH 169.

CPS 356. Operating Systems. 3 Hours

Introduces the theoretical and practical concepts underlying an operating system's structure and operation. Topics include process and thread creation and management, scheduling, concurrent, multi-threaded programming and synchronization, deadlock, memory management, virtual memory, and computer security. Prerequisite(s): (CPS 250 or ECE 314) and CPS 350.

CPS 410. User Interface Design and Development. 3 Hours

Addresses the practical problems of designing interfaces for modern software as well as other interactive media. Topics include interaction framework and styles, design principles, design models, new interactive technologies, usability testing and facets of interaction. Group activities and project work is an integral part of this course. Prerequisite(s): CPS 350.

CPS 415. Software Testing and Security Analysis. 3 Hours

Detailed examination of the software testing and security analysis process. Topics include testing methodologies, code analysis techniques, and secure programing principles and practices. Prerequisite(s): CPS 350.

CPS 420. Software Engineering. 3 Hours

Provides an overview of the software engineering discipline. Topics include software processes, requirements engineering, system modeling, architectural design, software testing, dependability and security, software reuse, distributed software engineering, project planning, quality management, configuration management, and process improvement. Prerequisite(s): CPS 350.

CPS 422. Software Project Management. 3 Hours

Introduction to software project management. Topics include process models for software development, project planning techniques, estimation techniques, measuring and controlling work products and processes, managing project risk, teams and communication, and organizational issues. Prerequisite(s): CPS 310.

CPS 430. Database Management Systems. 3 Hours

Physical and logical organization of databases: the entity-relationship model; relational database model; the data definition and data manipulation language of a commercial database management system; integrity constraints; conceptual database design. Prerequisite(s): CPS 350.

CPS 432. 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, the client-server architecture, multidatabase and heterogeneous systems. Other current database topics and emerging technologies will be discussed. Prerequisite(s): CPS 430.

CPS 433. Cyber Forensics. 3 Hours

Preserving, recovering, and analyzing digital evidence found in physical and virtual worlds. Topics include data and information retrieval; computer/media forensic analysis, techniques, and tools; and basic criminal law concepts. Prerequisite(s): CPS 356.

CPS 434. Big Data and Cloud Computing. 3 Hours

Focuses on technologies to make intelligent decisions for scientific and business applications. Topics include semantic web, knowledge representation languages for expressing metadata, machine learning, data visualization, data integration, and predictive models. Prerequisites: CPS 350.

CPS 437. System Architectures & Networking. 3 Hours

Issues and techniques used in the physical design of computer-based information systems. Basic operating systems, hardware architecture and networking prinicples. Intended for students majoring in MIS; not open to students majoring in CPS, CIS, or PCS. Prerequisite(s): MIS 380, MIS 385.

CPS 444. UNIX/Linux Programming. 3 Hours

Prepares students for developing software in the UNIX/Linux environment using the C programming language. Topics include system libraries and system calls, shells, system structures and internals, interprocess communication (pipes and signals), network programming (client-server model and sockets), pattern matching and filters, shell programming, automatic program generation, and GUI programming. Prerequisite(s): CPS 356.

CPS 449. Cloud-based Intelligent Application Development. 3 Hours

State-of-art techniques in building intelligent applications on the cloud that can be applied in various domains. Prerequisites: CPS 249 or CPS 350.

CPS 450. Design and Analysis of Algorithms. 3 Hours

Introduction to order notation and algorithm analysis. Emphasis will be on learning algorithm design techniques such as divide and conquer, greedy approach, and dynamic programming through exposition of classical algorithms from domains such as sorting, string matching, and graph algorithms. Hardness of problems and introduction to the complexity classes P, NP, and NP-complete. Topics also include impact of computing techniques to the improvement or welfare of society as a whole. Prerequisite(s): CPS 341, CPS 350.

CPS 452. Emerging Programming Languages. 3 Hours

Exploration 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. Prerequisite(s): CPS 350.

CPS 455. Computer Architecture and Design. 3 Hours

Provides a foundation for understanding and evaluating the design principles incorporated in modern computers. Topics include history and classification of computers, instruction-level, data-level, and thread-level parallelism. Prerequisite(s): CPS 250, CPS 350.

CPS 460. Computer Graphics. 3 Hours

Introduction to primitives and interactive graphics software development. Topics include transforms, clipping, modeling, rendering, texture, animation, and ray tracing. Prerequisite(s): CPS 350.

CPS 465. Interactive Media. 3 Hours

Provides an exposure to the capabilities of new digital tools to create new experiences. Topics include tools/techniques for collecting, analyzing, and visualizing 3D data; interactive audio/video using motion/light detectors; mobile interfaces; animation; smart rooms; and social networks. Prerequisite(s): CPS 350.

CPS 470. Computer Networks and Security. 3 Hours

Computer Networks and Security focus on Internet protocols and secure protocols. Topics include the web, domain name systems, reliable data transfer, flow control, congestion control, routing, wireless networks, secure computing, Internet vulnerability and security. Prerequisites: CPS 350.

CPS 471. Fundamentals of Cyber Security. 3 Hours

This course introduces the student to the theoretical basis of cyber security and provides practical experience in hardening a system against cyber attacks. The course explains the essential concepts of cyber security and applies those concepts to a modern networked operating system via course lectures and a project. Prerequisite(s): CPS 341.

CPS 472. Computer and Network Security. 3 Hours

Computer and Network Security covers information protection. Topics includes techniques for security in multi-user and distributed systems, principles of secure design, cryptography, authentication, access-control, intrusion detection and viruses, firewalls, wireless security, cracking WEP keys, and VPN security. Prerequisite(s): CPS 356.

CPS 473. Reverse Code Engineering. 3 Hours

Study theories on the application of cyber power to achieve certain objectives. Topics includes cyber policy, tracing strategy, targeting, cyber intelligence, measuring effects, and legal and ethical issues. Prerequisite(s): CPS 350.

CPS 474. Software Security. 3 Hours

Introduction to the fundamental topics of software vulnerabilities and attacks together with the countermeasures to prevent the attacks. Covered concepts include vulnerability taxonomies such as CVE, race conditions, buffer overflows, privilege escalation attacks, input validation issues, trust relationships, web security, mobile security, and cutting-edge security research. Prerequisite(s): CPS 341 and CPS 350.

CPS 475. Secure Application Development. 3 Hours

This course introduces 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 in the development process to avoid potential software vulnerabilities and attacks. Prerequisite(s): CPS 341 and CPS 350.

CPS 477. Honors Thesis. 3 Hours

First of two courses leading to the selection, design, investigation, and completion of an independent, original Honors Thesis project under the guidance of a faculty research advisor. Restricted to students in the University Honors Program with permission of the program director and department chairperson. Students pursuing an interdisciplinary thesis topic may register for three semester hours each in two separate disciplines in consultation with the department chairpersons. Prerequisite(s): Approval of University Honors Program.

CPS 478. Honors Thesis. 3 Hours

Second of two courses leading to the selection, design, investigation, and completion of an independent, original Honors Thesis project under the guidance of a faculty research advisor. Restricted to students in the University Honors Program with permission of the program director and department chairperson. Students pursuing an interdisciplinary thesis topic may register for three semester hours each in two separate disciplines in consultation with the department chairpersons. Prerequisite(s): Approved 477; approval of University Honors Program.

CPS 480. Artificial Intelligence. 3 Hours

Fundamentals concepts and techniques of intelligent systems. Topics includes knowledge representation, search strategies, predicate logic, and expert systems. Prerequisites: CPS 350 or CPS 249.

CPS 481. Intelligent Systems and Machine Learning. 3 Hours

State-of-art techniques in building intelligent systems. Topics include soft computing, agents and multiagent systems, and machine learning. Prerequisite(s): CPS 350.

CPS 482. Automata Theory. 3 Hours

Formal languages (regular, context-free, recursive, and recursively enumerable), machine models (deterministic and non-deterministic finite automata, push down automata, Turing machines), grammars (regular, context-free, and unrestricted), interplay among these concepts, Church-Turing thesis, and undecidability. Prerequisite(s): CPS 341.

CPS 483. Graph Algorithms. 3 Hours

Design and analysis of algorithms for problems based on graphs. Classical algorithms and efficient algorithms for restricted domains of graphs will be 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 341, CPS 350.

CPS 485. Evolutionary Computation. 3 Hours

The history and use of Evolutionary Computation (EC) are explored. Popular approaches to EC (genetic algorithms, genetic programming, evolution strategies, evolutionary programming) are defined and discussed. Coursework includes implementation of evolutionary techniques and review and analysis of literature in the field. Prerequisite(s): CPS 350.

CPS 490. Capstone I. 3 Hours

Examination of principles, practices, and methodology for development of large software systems using data flow and object-oriented methodologies. User interface design, software testing, and software project management. Selecting and planning a team project; this involves team formation, project selection, project planning, and proposal writing and presentation. Prerequisite(s): CPS 350.

CPS 491. Capstone II. 3 Hours

An exercise in the design, implementation, documentation, and deployment of a group project culminating in a presentation to the computer science faculty and industry representatives. Prerequisite(s): CPS 490.

CPS 496. Cooperative Education. 1-3 Hours

Computer science cooperative education work experience in an approved organization. Not open to students with credit in CPS 497. Credit does not apply to major requirements. Repeat to a maximum of three semester hours. Prerequisite(s): Twelve hours of upper-level CPS courses with a GPA of 3.0; total ninety semester hours with a GPA of 2.75; permission of the department in advance of the work.

CPS 497. Internship. 1-3 Hours

Computer science work experience in an approved organization. Not open to students with CPS 496 credit. Credit does not apply to major requirements. Repeat to a maximum of three semester hours. Prerequisite(s): Twelve semester hours of upper-level CPS courses with GPA of 3.0; total ninely semester hours and 2.75 GPA; permission of department in advance of the work.

CPS 498. Problems in Computer Science. 1-4 Hours

Individual readings and research in a specialized area. (See CPS 499.) By arrangement. May be taken more than once for additional credit. Prerequisite(s): Permission of department chairperson.

CPS 499. Special Topics in Computer Science. 1-4 Hours

Lectures or laboratory work in advanced topics from the various areas of computer science. By arrangement. May be taken more than once. Prerequisite(s): Permission of department chairperson.

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.