Computer Science and Engineering Graduate Courses
Graduate Foundation Courses
- CPSC 500: Fundamentals of Computer Science (3 credit hours)
A foundation course presenting the material covered in Fundamentals of Computer Science (150) and Data Structures and Program Design (160) at an accelerated rate. Graded S/NC. Prerequisites: Math 151/152 and 161/162, or equivalents. Credit not applied to MS Computer Science degree.
- CPSC 501: Structuring Programs and Data (3 credit hours)
A foundation course presenting the material covered in Data Structures (312) and Software Design and Development (261) at an accelerated rate. Graded S/NC. Prerequisites: CPSC 500 and Math 303 or equivalents. Credit not applied to MS Computer Science degree.
- CPSC 502: Computing Systems (3 credit hours)
A foundation course presenting the material covered in Digital Logic and Introduction to Computer Hardware (305) and Introduction to Operating Systems (251) at an accelerated rate. Graded S/NC. Prerequisites: CPSC 500 or equivalent. Credit not applied to MS Computer Science degree.
- CPSC 503: Systems Programming (3 credit hours)
A foundation course presenting the material covered in Computer System Organization and Assembly Language Programming (306) and Systems Programming (351) at an accelerated rate. Graded S/NC. Prerequisites: CPSC 502 or equivalent. Credit not applied to MS Computer Science degree.
Graduate Core Courses
- CPSC 510: Theory of Computer Programming Languages (3 credit hours)
Theory and design of computer language systems including the formal theory of syntax, semantics of algorithmic languages, language classification, and a survey of producedure and problem orientated computer programming languages. Prerequisites: CPSC 503 or equivalent and knowledge of two high level languages.
- CPSC 526: Client Server Systems (3 credit hours)
The design of digital computer networks. Topics covered include the theory, design, engineering installation, and performance analysis of networks to connect digital computers. The course will prepare students to plan, implement, and evaluate a network. Also includes peer-to-peer networks, the client-server model, network operating systems, and an introduction to wide-area networks. The network and implementation tools may vary to meet current development trends. Prerequisites: CPSC 502 and 503 or equivalents.
- CPSC 532: Advanced Topics in System Software (3 credit hours)
Current topics drawn from the areas of modern operating systems, parallel software, and distributed computing systems. Topics covered may include the theory, design, programming, security and performance analysis of particular computer systems software. Prerequisites: CPSC 502 and 503 or equivalents.
- CPSC 533: Advanced Computer Architecture (3 credit hours)
An advanced course inc omputer architecture. Topics may include classical uniprocessor architecture, parallel processing architectures, computer arithmetic, instruction sets, control unit design, instruction and arithmetic pipelines, CISC, RISC, superscalar and superpipelined architectures, memory hierarchies, cache and virtual memory mechanisms, and I/O operations. Prerequisites: CPSC 502 and 503 or equivalents.
- CPSC 550: Design and Analysis of Computer Algorithms (3 credit hours)
Algorithm design techniques including divide and conquer, greedy method, dynamic programming, search and traversal, backtracking, branch and bound, graph algorithms. Introduction to the theory of NP-completeness and to methods of coping with NP-complete problems. Introduction to parallel algorithms. Prerequisites: CPSC 501 or equivalent
Graduate Electives
- CPSC 420: Computer Graphics Applications and Algorithms (3 credit hours)
Computer graphics systems, system software, data structures for graphics devices and display processors, representational algorithms and packaged graphics software. Prerequisite: CPSC 312 with grade of C or better.
- CPSC 430: Topics in Simulation (3 credit hours)
Digital simulation. A study of simulation languages and simulation techniques for solving many types of research problems for management, engineering, and science, simulation of large systems, design of simulation experiments for optimization; applications using simulation languages. Prerequisite: CPSC 312 with a grade of C or better and an approved course in statistics.
- CPSC 435: Database Management Systems (3 credit hours)
Concepts and methods in the definition and management of databases; physical and logical database design; data modeling techniques; programming in a database environment; topics in database security, integrity, recovery, and concurrence. Prerequisite: CPSC 335 with grade of C or better or Senior standing in Computer Science and approval of instructor.
- CPSC 445: Automata, Complexity, and Computability (3 credit hours)
An introduction to the classical and contemporary theory of computation including automata, formal languages, Turing machines, recursive functions, computability and incomputability, complexity, and the classes of P and NP. Prerequisites: CPSC 160 and mathematics 303 with grades of C or better.
- CPSC 450: Software Engineering (3 credit hours)
Study of techniques used in the definition, specification, design, implementation and testing of large software systems. The course will include team efforts to identify and define the requirements of a large software product. The development of this product will continue in CPSC 490. Prerequisites: CPSC 261 or CPEN 261, Mathematics 303, and English 277 or 278 with grades of C or better.
- CPSC 480:Introduction to Artificial Intelligence (3 credit hours)
Artifical intelligence; simulation of cognitive behavior and self-organizing systems; heuristic programming including the use of list processing languages; data representation, pattern matching structures; applications in symbolic mathematics; survey of examples from representative application areas. Prerequisites: CPSC 312 with a grade of C or better.
- CPSC 515: Advanced Database Systems (3 credit hours)
An in-depth investigation of both relational and distributed database management systems including approaches to distributed query processing, concurrency control, and database reliability. Prerequisites: CPSC 435 and Math 303 or equivalent.
- CPSC 520: Software Project Management (3 credit hours)
Analysis and design of projects including implementation, justification, personnel and resources allocation, management using project scheduling. Prerequisites: CPSC 501 or equivalent.
- CPSC 530: Compiler System Design (3 credit hours)
A study of compilers and their relationships with their host computer systems, icnluding the design of compilers themselves, the format of object programs, the nature of run time or object support systems, and the specific phases and techniques for implementation of compilers including scanning, lexical analysis, parsing, storage assignment, code generation, and error handling. Prerequisites: CPSC 502 and 503 and Math 303 or equivalent.
- CPSC 535: Microcomputer Systems Architecture (3 credit hours)
A study of representative microprocessor-based computer systems including basic concpets, software architecture, programming, memory, interfacing, and system design. Prerequisites: CPSC 533 or equivalent.
- CPSC 536: Computer Data Communications (3 credit hours)
The study of data communication networks including characteristics of common carrier facilities, encoding and line conditioning techniques for transmission and error control and line and computer interfaces, security and remote processing. Prerequisites: CPSC 533 and Math Math 307 or ENGR 222, or ENEE 473 or equivalent.
- CPSC 537: Internetworking (3 credit hours)
Coverage includes high speed Ethernets; switching at layers 2,3, and 4; routing and routing protocols, access and and congestion control; routing and security; the next generation Internet; emerging multicast protocols; performance evaluation and networking tools. The course will prepare students to design, plan, implement and evaluate interconnections between networks. The networks and implementation tools may vary to meet current development trends. Prerequisites: CPSC 426 or 526 and CPSC 536 or permission of instructor.
- CPSC 538: Real-Time Embedded Systems (3 credit hours)
Microcontroller systems architecture, I/O programming concepts, advanced real-time signal interfacing techniques, real-time realization of digital signal processing and filtering techniques. Projects included. Prerequisites: CPSC 502 and 503 or equivalents.
- CPSC 540: Design of Distributed Systems (3 credit hours)
The design of information systems which provide services using client/server computing over a network. Topics covered include design methodologies, implementation languages and tolls, performance evaluation, and security. The network and implementation tools may vary to meet current development trends. Prerequisite: CPSC 501 or equivalent.
- CPSC 541: Design of Web Interfaces (3 credit hours)
The principles of human interaction with computers, with application to the design of Web interfaces. Basic user interface principles, client-side scripting, server-side scripting. Java and Java toolkits. Prerequisite: CPSC 440 or CPSC 540.
- CPSC 542: Structured Data Exchange (3 credit hours)
Survey of XML and the application of XML. Coverage includes the XML document structure, Document Type Definitions, Extensible Stylesheet Language, how DTDs and XML schemas can be used to frame data and connect XML documents and the information they access, and data connection objects. The languages and implementation tools may vary to meet current development trends. Prerequisites: CPSC 440 or 540 and CPSC 541 or permission of instructor.
