Computer Science Graduate Course Descriptions

Computer Science

Graduate Course Descriptions

The following are the course numbers, number of credits, course titles, and course descriptions for the graduate courses offered through the Computer Science Department.

CS 5010-3. Intensive Computer Science for Graduate Students.
Intended for prospective graduate students with extensive programming experience. Covers concepts in C S 1150 and C S 1450. Can substitute for these courses in satisfying entrance requirements for M.S. in Computer Science. Does not count towards M.S. or B.S. degrees. Not open to undergraduate. Prer., Knowledge of high-level programming language.

CS 5020-5090-1 to 3. Selected Topics in Computer Science.
Topics vary.

CS 5100-3. Compiler Design.
Underlying theory and design techniques for compilers. Lexical analysis, topdown and bottom-up parsing algorithms, runtime storage management, syntax directed translation schemes, and intermediate code generation. Prer., C S 2160, C S 3160 and C S 4700/5700. Meets with C S 4100.

CS 5200-3. Computer Architecture I.
Course covers fundamentals of computer design, instruction set principles and examples, pipelining, advanced pipelining and instruction-level parallelism, memory-hierarchy design and survey of design issues in storage, interconnection network and multiprocessor systems. Prer., C S 2160. Meets with C S 4200.

CS 5220-3. Computer Communication.
The subject of transmitting information between processors is described in detail. The student is expected to have maturity with hardware and/or real-time concepts. Communication systems, from simple to asynchronous point-to-point links, to those based on complex network architectures will be studied. Material will be oriented toward the computer scientist as a user, designer and evaluator of such systems. Terminology and concepts will be emphasized rather than detailed electronic or physical theory. Prer., C S 4200/5200 and C S 4500/5500, or instructor permission

CS 5250-3. Multimedia Computing and Communications.
Design principles of multimedia authoring and communication systems. It covers the interface and characteristics of voice and video processing equipment, multimedia document architectures, media encoding/compression schemes, real-time scheduling of time critical multimedia documents, multimedia editors, multimedia communication standards and communication software. Prer., Graduate standing or instructor permission.

C S 5260-3. Advanced Internet and Web Systems.
Advanced topics in Internet and WWW systems, TCP/IP network modules in kernel, content switching, Web server technologies, Web system management, load balancing, Web security, and electronic commerce. Prer., C S 3010, C S 5220, or permission of instructor.

CS 5310-3. Software Requirements Analysis and Specification.
Techniques and tools for requirements analysis and requirements specification. Requirements languages and notations. Specification completeness and consistency. Team project in the analysis and specification of a major software system. Prer., C S 1450 or equivalent, knowledge of a modern programming language and discrete structures.

CS 5320-3. Software Design.
Covers a variety of methodologies and tools for design of sequential, parallel and distributed software systems. Design language; graphical design representations. Data abstraction, data dictionaries. Data flow design and diagrams. Object-oriented design. Documentation. Team project in the design of a major software system. Prer., C S 5310.

CS 5330-3. Formal Methods of Software Systems Engineering.
Elements of discrete mathematics. Formal mechanisms for specifying and verifying the correctness, reliability, and efficiency of software systems. State transition, regular expression, context free, and applicative models. Assertions, Hoare axioms, and weakest preconditions. State machine, algebraic, and operational specification techniques. Prer., C S 1450 or equivalent, knowledge of a modern programming language, and discrete structures.

CS 5340-3 Software Maintenance.
Discussion and application of corrective, adaptive, perfective and preventive software maintenance techniques and tools. Related topics such as software systems analysis, reverse-engineering, re-engineering, regression testing and configuration management are examined. As a project, student teams maintain an existing software system. Prer., Knowledge of modern programming language, discrete structures, C S 1450 or equivalent.

CS 5350-3. Software Project Management.
Planning, scheduling, costing of projects. Measuring progress, predicting success, controlling failure. Management tools and their use. Effectiveness and efficiency of software engineering environments. Distributed software development. Quality control standards and practices. Prer., Knowledge of modern programming, NG language, data structures and algorithms, and discrete structures.

CS 5360-3. Software Product Assurance.
Principles, techniques and tools for producing quality software systems. The first half of this course focuses on software product assurance processes. The second half covers a variety of software testing techniques. Prer., C S 5310.

CS 5370-3. Human-Computer Interfaces.
Techniques and tools for the analysis, design, implementation and testing of human-computer interfaces. Special topics such as human factors, rapid prototyping and usability testing will be studied. Term project. Prer., C S 3300 and C S 5310.

CS 5380-3. Object-Oriented Software Development.
Principles of object-oriented problem-solving, object-oriented analysis and object-oriented design. Development of class hierarchies, use of polymorphism and inheritance, criteria for good design, semester project. Prer., CS 3300 or consent of instructor.

CS 5390-3. Software Systems Engineering Project Laboratory.
Students participate in a project involving the development or maintenance of a software system intended for external distribution and use. Duties include requirements analysis, specification, design, implementation, testing, quality assurance, configuration management and documentation. Projects come from the university and from outside sources. Students are evaluated based on their project work and an oral presentation describing their work and critiquing their results. Prer., CS 5310, CS 5320, CS 5340, CS 5350, and CS 5360.

CS 5420-3. Database Systems I.
Course introduces general database concepts as well as database system technology. The course covers ER and R data models, R-algebra, SQL, data storage and indexing, query optimization, database design and security. Prer., C S 3300. Meets with C S 4420.

CS 5430-3. Database Systems II.
Course covers advanced database topics including transaction management, parallel and distributed databases, Internet databases, decision support, data mining, object and object-relational database systems, spatial data management and other current research issues. Prer., C S 4420/5420.

CS 5500-3. Operating Systems I.
Introduces concepts, terminology, and algorithms of operating systems. Describes semaphores, processes, virtual mappings, interrupts, resource allocation and management, protection, synchronization, scheduling, queuing and communication as applied to operating system design and implementation. Prer., C S 2060, C S 2080, and C S 4200/5200. Meets with C S 4500.

CS 5510-3. Distributed Systems.
Conveys insight into, and knowledge of, the principles and practice underlying the distributed systems, both Internet-based and otherwise. Describes major developments in interprocess communication, remote invocation, distributed file systems, replication and load balancing, distributed shared memory, and distributed multimedia systems. Prer., C S 4500/5500. 

CS 5520-3. Operating System Support for Security.
Covers the configuration and management of operating systems for security related applications, OS hardening, access control, security policies, security and protection mechanisms, virtual machines, the exploits related to OS and their defenses and mandatory access control and multilevel security. Prer., CS 2080 and CS 2060.

CS 5550-3. Computer Systems Performance Evaluation.
Perspectives of performance evaluation, measurement techniques; hardware, software, and firmware tools, simulation techniques, analytical techniques; workload characterization, system selection; system tuning; performance tracking, performance prediction in the design phase and cost-benefit analysis. Prer., C S 4500/5500.

CS 5600-3. Numerical Computing.
Algorithms for the solution of nonlinear equations, interpolation and approximation, differentiation, integration, systems of linear equations, ordinary differential equations and least squares. Prer., C S 1450, MATH 2350 and MATH 3130. Meets with C S 4600.

CS 5670-3. Discrete Simulation I. Examines concepts and methods of discrete event simulation. Compares major modeling methods. Discusses statistical issues including random number generation, arrival processes, analysis of simulation output, verification and validation of models and simulation programs. Describes in detail the use of a major discrete event simulation language. Discusses simulation level of detail and simplifying assumptions. Prer., C S 2080 and MATH 3810.

CS 5700-3. Computability, Automata, and Formal Languages.
Finite automata and regular expressions; context- free grammars, context-free languages, and pushdown automata; Turing machines; undecidability; the Chomsky Hierarchy of Formal Languages; computational complexity, and intractable problems. Prer., MATH 2150 and MATH 3130. Meets with C S 4700.

CS 5710-3. Evolutionary Computation.
Introduction to evolutionary computation with emphasis on genetic algorithms. Includes evolution strategies, evolutionary programming, schemata fitness functions and classifiers, current research topics, messy algorithms, adaptive landscapes. Prer., C S 2080 and MATH 3810.

CS 5720-3. Design and Analysis of Algorithms.
Design methodologies: divide-and-conquer, exhaustive search, dynamic programming. Time and space complexity measures, analysis of algorithms. Survey of important algorithms for searching, sorting, graph manipulation. Tractability: class P and NP, NP-complete problems. Prer., C S 1450 and MATH 2150. Meets with C S 4720.

CS 5750-3. Computational Geometry.
Computational complexity of geometric problems within the framework of analysis of algorithms. Stress on geometric searching, intersection problems, particularly of rectangles, and fundamental algorithms. Practical applications of concepts developed can be found in computer graphics, analysis of algorithms, spatial data structures and VLSI system design. Prer., C S 4720/5720, C S 4800/5800 or instructor's consent.

CS 5770-3. Computer Graphics Animation & Scientific Visualization Techniques.
Animation: basic principle, physically based modeling, algorithms for animation, constraint optimization, use of dynamics in animation, teleological modeling. Scientific visualization: overview, foundation and techniques, applications. Prer., C S 4800/5800.

CS 5780-3. Advanced 3-D Games and Digital Content Creation.
Populating virtual worlds with characters and objects, this course will concentrate on current technology and advance topics using graphics and VR technology. Typical topics included are graphics engines, landscape specializations, wrapping techniques, complex scenes, lighting, shadows, motion control, collision, dynamics, image based rendering, multi- player games, etc... plus advanced features from SIGGRAPH and others. Prer., C S 4800/5800 or instructor's consent. Meets with C S 4780.

CS 5790-3. Wearable Computing and Complex Systems.
Wearable computing with an emphasis on complex systems research is an important area of research. This course will cover concepts and related techniques, and state of the art issues. This course will provide an excellent basis for students who are interested in computer graphics and virtual reality research. Prer., C S 4800/5800 or consent of instructor.

CS 5800-3. Computer Graphics.
Fundamental areas of modern raster computer graphics; hardware, software, data structures, mathematical modeling, user interface and manipulation of graphical objects. A subset of the two dimensional GKS is examined and implemented with emphasis placed upon segmented display files and instance modeling. Basic to all graphic programs written are the ergonomic requirements of the user. Required programs are in the areas of animation, paint systems, polygon filling and clipping, and curve generation. Prer., C S 1450, C S 2080 and MATH 3130. Meets with C S 4800.

CS 5810-3. Topics in Computer Graphics.
Examines the mathematical and physical models used to produce realistic three dimensional images. Topics include perspective viewing, hidden surface removal, shading, fractals, and rag tracing. Prer., C S 4800/5800.

CS 5820-3. Artificial Intelligence.
Course covers the foundation of artificial intelligence: search techniques, first-order predicate calculus and knowledge representation. Also covers advanced topics such as speech and natural language processing and learning. Prer., C S 3160, C S 4820, or instructor consent for graduate students.

CS 5830-3. Artificial Intelligence II.
Covers in detail a selection of AI topics: planning, natural language processing, computer vision, robotics, expert systems, and learning. Current research topics may be covered. Students may use a programming language of their choice. Prer., C S 5820 or instructor's consent.

C S 5840-3. Computer Vision.
Representation and manipulation of digital images, Fourier analysis of images, enhancement techniques in spatial and frequency domain, segmentation procedures, digital geometry, region and boundary representation, texture processing, pattern recognition and application to robotics. Prer., MATH 2350 or consent of instructor.

CS 5850-3. Bioinformatics and Computational Biology.
Review of molecular and cell biology; bioinformatics databases; pairwise sequence alignment algorithms; Markov Chains, Hidden Markov Models; evolutionary models; Phylogenetic trees; gene recognition; protein structure prediction. Prer., MATH 3810, C S 4720, or instructor permission. Meets with C S 4850.

CS 5870-3. Introduction to Artificial Neural Networks.
The course will cover basic neural network architecture and learning algorithms. Practical applications will be surveyed. Students will learn to implement their own simulator and implement various architectures. Prer., MATH 2350.

CS 5890-3. Computational Linguistics.
Approaches to syntactic processing of natural language: issues in semantic interpretation, pragmatics or the impact of context and world knowledge of natural language understanding and generation of natural language responses. Prer., C S 5820 or consent of instructor.

CS 5910-3. Fundamentals of Computer/Network Security.
Introduction to the study of computer and network security from the view of information warfare. Topics include information system threats, vulnerabilities and defensive mechanisms (cryptography, authentication digital signatures, PKI, etc.). Prer., C S 2080 and MATH 2150.

CS 5920-3. Applied Cryptography for Secure Communication.
Basic security issues in computer communication, classical cryptographic algorithms, symmetric-key cryptography, public-key cryptography, authentication, and digital signatures. Prer., MATH 2150, MATH 3810, C S 3160, C S 5220, or instructor consent.

CS 6010-3. Technological Transfer, Patents and IP in Engineering.
Technological transfer process including discovery through invention to commercialization. Forms of IP protection including copyrights and patents. Students will read/write patent applications. Prer., Permission of instructor.

CS 6220-3. Distributed Networks.
Deals with complex communications systems in depth. Packet switching networks, local area networks, satellite systems, the open systems interconnect (OSI) reference model, and the development of communications software. Prer., C S 5220.

CS 6300-3. Topics in Software Systems Engineering.
Advanced topics and current research issues in software engineering. Possible topics include software engineering environments, requirements, design, testing, software metrics, configuration management, maintenance, software cost analysis, and distributed software. Prer., C S 5310 or C S 5350.

CS 6380-3. The Design and Modeling of Class Interfaces and Contracts.
Past and present work related to specifying the semantics of a class using assertions are examined. The BON method is presented. Prer., C S 5380.

CS 6430-3. Data Mining.
This course covers data warehousing, OLAP, association rules, cluster analysis, classification and prediction, complex data mining applications and trends in data mining. Prer., C S 4420/5420.

CS 6770-3. Virtual Reality and Computer-Human Interaction.
The course will focus on the so-called ultimate form of interaction between human and machine, creating virtual or artificial world. The basic idea and various input devices will be discussed. Several advanced papers in this area will be covered. Some of these ideas will be implemented through a term project. Prer., C S 5800 or C S 5770 or consent of instructor.

CS 6820-3. Seminar in Artificial Intelligence.
Research seminar treating contemporary results in the theory and applications of artificial intelligence. Prer., C S 5820, C S 5830 or instructor permission.

CS 6870-3. Advanced Studies in Artificial Neural Networks.
A research seminar treating contemporary results in the theory and applications of artificial neural networks. Prer., C S 5870.

CS 6910-3. Advanced System Security Design.
Advanced topics in network and system security, including firewall design, network intrusion detection, tracking and prevention, virus detection, programming language and OS support for security and wireless network security. Prer., C S 5910, C S 5920, or instructor permission.

CS 6920-3. Advanced Topics in Network Security.
Covers advanced topics in network security such as Kerberos, PGP, IPSec, VPNs, SSL, SET, Smart cards, Steganography, Watermarking and Biometric Encryption. Research papers may be discussed. Prer., C S 5920.

CS 7000-1 to 6. Masters Thesis.

CS 7010-1 to 3. Masters Project.

CS 7020-1 to 3. Graduate Internship.
Educational readings and reporting associated with a computer science internship related to students? graduate studies. Must be enrolled in a C S graduate program and have faculty sponsor.

CS 7060-1 to 6. Games and Media Integration Portfolio Development.
Completed works with interdisciplinary focus to be submitted to various animation or graphics festivals. Must be enrolled in Games and Media Integration (GMI) graduate program and have faculty sponsor. Prer., Permission of instructor.

CS 8000-1 to 15. PhD Dissertation. Prer., Acceptance into program.

CS 9600-1 to 3. Independent Study in Computer Science Graduate.

CS 9990-0. Candidate for Degree.

For further information please contact the Computer Science Department.