Academic Catalog

Computer Science

Courses

CPS 107. Introduction to Computer Science. 3 Hours

An introduction to the field of Computer Science, covering computers and society, the internals and externals of computer hardware and software, as well as some exposure to advanced topics of artificial intelligence, computer forensics, and databases. Intended for science and engineering students.

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.

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.

Study of the elements of computer design. Design of combinatorial and sequential logic circuits using current integrated circuit devices. Discussion of encoders, decoders, registers, counters, etc. as applied to design and use of control, arithmetic, logic, and storage units. Instruction set, addressing modes and CPU design. Laboratory experiments with these devices.
Prerequisite(s): CPS 250, CPS 341.

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.

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

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.

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.

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.

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.

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.

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.

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.