CPS500. Computer Graphics . 3 Credits.
Graphics software and hardware, representation of points, lines, and surfaces in three dimensions, windowing, clipping, hidden surfaces and lines, shading.
CPS501. Computer Systems . 3 Credits.
A study of computer systems covering both software and hardware. Topics include number systems, machine language, assembly language, linking and loading, digital electronics, microprogramming, and computer architecture.
CPS505. Computer Simulation . 3 Credits.
Use of the computer as a simulation tool, discrete and continuous simulation techniques, simulation languages, selected applications such as queuing theory, financial analysis, and simulation of computer systems.
CPS515. Programming Languages . 3 Credits.
A critical evaluation of the design and implementation of programming languages. Topics include: history of programming languages, syntax and semantics, data and control structures, expressions, subprograms, scope and visibility, data abstraction, and exception handling.
CPS520. Concurrent Programming . 3 Credits.
Mutual exclusion, Dekker's algorithm, semaphores, languages for concurrent programming, applications in operating systems.
CPS522. Operating Systems . 3 Credits.
A comprehensive investigation of Operating Systems concepts, including the following topics: Process Management, Memory Management, File Management, Input/Output, and Deadlocks. Examples of these concepts will be illustrated using the Unix operating system.
CPS524. Parallel Computation . 3 Credits.
Efficient parallel algorithms on arrays, trees, hypercubes, and PRAMS for a variety of problems. Structural properties of various network architectures and their relationships.
CPS526. Advanced Data Structures . 3 Credits.
In-depth study of methods for organizing, retrieving, and modifying data in digital computers, as well as mathematical analysis of these techniques.
CPS528. Algorithms . 3 Credits.
Algorithms for a variety of applications. Various design and analysis techniques. Probabilistic and approximation algorithms.
CPS530. Computer Networks . 3 Credits.
Network topology and communication media, resource sharing, performance analysis, protocols, local networks.
CPS532. Theory of Computation . 3 Credits.
Computability by Turing machines, grammars, and recursive functions. Uncomputability and computational complexity.
CPS535. Formal Languages . 3 Credits.
Phrase-structure languages, automata and their languages, applications of formal languages to pattern recognition.
CPS540. Artificial Intelligence . 3 Credits.
Basic problem solving methods, game playing, knowledge representation using first order logic, knowledge representation using other logics, theorem proving, pattern recognition, symbolic processing.
CPS545. Advanced Operating Systems . 3 Credits.
The study of modern operating systems. Process, memory, device, and file management; virtual machines, distributed systems, security, reliability, performance analysis.
CPS550. Software Engineering . 3 Credits.
Program development tools, structured design and programming methodologies, software testing and validation, managing software development.
CPS552. Object Oriented Programming . 3 Credits.
The concepts of object oriented programming -- encapsulation, aggregation, inheritance, constructors, destructors, polymorphism, and templates. Various choices for design and implementation. Writing programs is typically a major component of this course.
CPS554. User Interface Programming . 3 Credits.
Introduction to methodologies, techniques, libraries, interfaces, and tools to design and implement window-based graphical user interfaces. The course is typically a programming intensive course.
CPS555. Advanced Database Principles . 3 Credits.
Recovery, integrity, concurrency, data models, extended relational model, distributed databases, database machines.
CPS560. Cryptography . 3 Credits.
Transposition ciphers, substitution ciphers, algebraic systems, block ciphers, public key systems, data encryption standard.
CPS565. Compiler Design . 3 Credits.
Compiler design and implementation using top-down and bottom-up parsing. Scanner and parser generators.
CPS567. Compiler Optimizations . 3 Credits.
An overview of the evolving field of compiler optimizations. Internal program representations, local and global optimizations, control flow analysis, data flow frameworks, static single assignment form, control dependence analysis, automatic parallelization, interprocedural analysis, pointer alias analysis, loop transformations.
CPS570. Systems Programming . 3 Credits.
Systems programming in assembly and/or high-level language. Students will write several systems programs, such as a RAM disk and a virus detection program.
CPS575. Advanced Computer Architecture . 3 Credits.
Study of current trends in computer architecture with topics selected by instructor. Among these may be parallel processing, capability-based systems and microprocessor architecture.
CPS580. Functional Programming . 3 Credits.
The functional language mode, lambda calculus, functional programming in one or more languages, the design and implementation of an interpreter for a functional programming language.
CPS590. Thesis in Computer Science . 3-6 Credits.
Preparation and writing of a thesis under the guidance of graduate faculty. Required form available in the Records and Registration Office.
CPS593. Computer Science Selected topic. 3-12 Credits.
CPS594. Fieldwork Comp Science. 1-12 Credits.
CPS595. Indep Study Comp Science. 1-12 Credits.
CPS599. Comprehensive Exam Workshop. 0 Credits.
CPS693. Computer Science Selected Topic. 3-12 Credits.
CPS793. Computer Science Selected Topic. 3-12 Credits.
CPS795. Indep Study Comp Science. 0 Credits.
CPS799. Continued Registration. 1 Credit.