9: School of Graduate Engineering and Applied Science

General Information | Degree Programs | Program Descriptions | Course Descriptions | Faculty

Aerospace Engineering | Applied Mathematics | Applied Mechanics | Biomedical Engineering
Chemical Engineering | Civil Engineering | Computer Science | Electrical Engineering
Engineering Physics | Materials Science and Engineering | Mechanical and Aerospace Engineering
Nuclear Engineering | Systems Engineering

Computer Science

CS 551 - (3) (SI)
Special Topics in Computer Science

Prerequisite: Permission of instructor
Course content varies from year to year based on students’ interest and needs. See CS 751 for possible topics.

CS 571 - (3) (Y)
Translation Systems

Prerequisite: Completion of CS 308 with a grade of C- or higher
Study of the theory, design, and specification of translation systems. Translation systems are the tools used to translate a source language program to a form that can be executed. Using rigorous specification techniques to describe the inputs and outputs of the translators and applying classical translation theory, working implementations of various translators are designed, specified, and implemented.

CS 616 - (3) (Y)
Knowledge-Based Systems

Prerequisite: Graduate standing
Introduces the fundamental concepts for research, design, and development of knowledge-based systems. Emphasizes theoretical foundations of artificial intelligence, problem solving, search, and decision making with a view toward applications. Students develop a working knowledge-based system in a realistic application domain. Cross-listed as SYS 616.

CS 644 - (3) (Y)
Introduction to Parallel Computing

Prerequisites: CS 308, CS 414 and CS 415, or permission of instructor
Introduces the basics of parallel computing. Covers parallel computation models, systems, languages, compilers, architectures, and algorithms. Provides a solid foundation on which advanced seminars on different aspects of parallel computation can be based. Emphasizes the practical application of parallel systems. There are several programming assignments.

CS 645 - (3) (Y)
Computer Graphics

Prerequisite: Knowledge of C
Analysis of display devices, line and circle generators; clippings and windowing; data structures; 2-D picture transformations; hidden line and surface algorithms; shading algorithms; free form surfaces; color graphics; 3-D picture transformation. Cross-listed as EE 635 and may be taught by either department.

CS 651 - (3) (SI)
Special Topics in Computer Science

Prerequisite: Permission of instructor
The material varies from year to year and is selected to fill special needs of graduate students.

CS 654 - (3) (Y)
Computer Organization

Prerequisite: CS 308 or proficiency in assembly language programming
Study of representative digital computer organization with emphasis on control unit logic, input/output processors and devices, asynchronous processing, concurrency, and parallelism. Memory hierarchies.

CS 655 - (3) (Y)
Programming Languages

Prerequisite: CS 415 or equivalent
Examines modern and non-imperative languages, the theoretical techniques used to design and understand them, and the implementation techniques used to make them run. Topics include functional languages, object-oriented languages, language safety and classification of errors, type systems, formal semantics, abstraction mechanisms, memory management, and unusual control-flow mechanisms. Example languages include Standard ML, Modula-3, CLU, Scheme, Prolog, and Icon.

CS 656 - (3) (Y)
Operating Systems

Prerequisite: Undergraduate course in OS; CS 654 or permission of instructor
Covers advanced principles of operating systems. Technical topics include: support for distributed OSs; microkernels and OS architectures; processes and threads; IPC; files servers; distributed shared memory; object-oriented OSs; reflection in OSs; real-time kernels; multiprocessing; multimedia and quality of service; mobile computing; and parallelism in I/O.

CS 660 - (3) (Y)
Theory of Computation

Prerequisite: CS 302 or equivalent
Analysis of formal languages, the Chomsky hierarchy, formal computation and machine models, finite automata, pushdown automata, Turing machines, Church’s thesis, reductions, decidability and undecidability, and NP-completeness.

CS 661 - (3) (Y)
Design and Analysis of Algorithms

Prerequisite: CS 332 or equivalent
Analysis of concepts in algorithm design, problem solving strategies, proof techniques, complexity analysis, upper and lower bounds, sorting and searching, graph algorithms, geometric algorithms, probabilistic algorithms, intractability and NP-completeness, transformations, and approximation algorithms.

CS 662 - (3) (Y)
Database Systems

Prerequisite: CS 462 or equivalent
Study of new database systems, with particular emphasis on database design and related system issues. Selected advanced topics such as object-oriented and real-time database systems, data warehousing, data mining, and workflow are explored. Makes use of either commercial or research database systems for in-class projects.

CS 682 - (3) (Y)
Digital Picture Processing

Prerequisite: Graduate standing
Topics include the basic concepts of image formation and image analysis: imaging geometries, sampling, filtering, edge detection, Hough transforms, region extraction and representation, extracting and modeling three-dimensional objects. Exploration of these concepts through analytical and programming assignments. Cross-listed as EE 682.

CS 685 - (3) (Y)
Software Engineering

Prerequisite: CS 340 or equivalent
Analysis of project management, software tools, requirements and specification methods; top-down, bottom-up, and data-flow design; structured programming, information hiding, programming language issues, and coding standards; software development environments, fault tolerance principles, and testing.

CS 693 - (Credit as arranged) (SI)
Independent Study

Detailed study of graduate course material on an independent basis under the guidance of a faculty member.

CS 695 - (Credit as arranged) (SI)
Supervised Project Research

Formal record of student commitment to project research under the guidance of a faculty advisor. May be repeated as necessary.

CS 696 - (1) (Y)
Computer Science Perspectives

Prerequisite: CS graduate student or permission of instructor
This “acclimation” seminar helps new graduate students become productive researchers. Faculty and visitors speak on a wide variety of research topics, as well as on tools available to researchers, including library resources, various operating systems, UNIX power tools, programming languages, software development and version control systems, debugging tools, user interface toolkits, word processors, publishing systems, HTML, JAVA, browsers, Web tools, and personal time management.

CS 715 - (3) (SI)
Performance Analysis of Communication Networks

Prerequisites: EE 611 or permission of instructor
Analysis of the topologies arising in communication networks; queuing theory; Markov Chains and ergodicity conditions; theory of regenerative processes; routing algorithms; multi-access and random-access transmission algorithms; mathematical methodologies for throughput and delay analyses and evaluations; performance evaluation; performance monitoring; local area networks (LANs); interactive LANs. Cross-listed as EE 715.

CS 716 - (3) (Y)
Artificial Intelligence

Prerequisite: CS 616 or SYS 616
In-depth study of a few major areas historically considered to be part of artificial intelligence. In particular, detailed coverage is given to the design considerations involved in the following applications: automatic theorem proving, natural language understanding, and machine learning. Cross-listed as SYS 716.

CS 751, 752 - (3) (SI)
Selected Topics in Computer Science

Prerequisite: Permission of instructor
Content varies based on the interest and needs of students. Topics may include advanced combinatorics and graph theory, parallel processing, information retrieval, data communications, computer networks, real-time computing, distributed multimedia systems, electronic commerce, and safety critical systems.

CS 756 - (3) (O)
Models of Computing Systems

Prerequisites: CS 656, and either SYS 605 or EE 611
Explores studies of user behavior, program behavior, and selected aspects of computer systems such as scheduling, resource allocation, memory sharing, paging, or deadlocks. Analyzes mathematical models and simulation, the use of measurements in the formulation and validation of models, and performance evaluation and prediction.

CS 757 - (3) (Y)
Computer Networks

Prerequisite: CS 656 or permission of instructor
Introduction: switching methods, network services, layered protocol architectures, OSI reference model; Physical Layer: transmission media, modulation, encoding; Data Link Layer: framing, error detection and correction, ARQ protocols, data link layer protocols, multiplexing; Local Area Networks: multiple access protocols, local network topologies, CSMA/CD, token bus, token ring, FDDI, DQDB; Network Layer: packet switching, routing algorithms, traffic control, internetworking, network protocols; Transport Layer: transport services, connection management, transport protocols; Special topics such multimedia, ATM, and protocol design and verification.

CS 771 - (3) (Y)

Prerequisites: CS 660, CS 655, or equivalents
Study of techniques used in the implementation of assemblers, compilers, and other translator systems. Analyzes the relationship of available techniques to the syntactic and semantic specification of languages.

CS 782 - (3) (Y)
Advanced Computer Vision

Prerequisite: CS 682
Analysis of advanced topics in automated reconstruction of imaged objects and computer interpretation of imaged scenes; techniques for three-dimensional object reconstruction; computing motion parameters from sequences of images; computational frameworks for vision tasks such as regularization, and stochastic relaxation; approaches for autonomous navigation. Depth image analysis; novel imaging techniques and applications;. and parallel architectures for computer vision. Cross-listed as EE 782.

CS 793 - (Credit as arranged) (SI)
Independent Study

Detailed study of graduate course material on an independent basis under the guidance of a faculty member.

CS 851 - (3) (SI)
Advanced Topics in Computer Science

Prerequisite: Permission of instructor
The exact syllabus for the seminar depends on the interests of the participants. Quick review of the fundamental technologies: parsing, generating IR or bytecodes, interpretive systems in general, and run-time support, especially memory management. Analysis and classification of existing embedded languages according to the language paradigms used and the features included, without reference to the implementations. Analysis of the implementations of existing embedded languages.

CS 854 - (3) (Y)
Topics in Computer Architecture

Prerequisite: CS 654 or permission of instructor
Study of selected advances in the architecture of computer systems. Possible areas of study include distribution processor systems, memory hierarchies, and secondary storage management schemes.

CS 855 - (3) (Y)
Topics in Programming Languages

Prerequisite: CS 655 or permission of instructor
Study of selected advanced topics in design, definition, and implementation of programming languages. Typical recent topics: parallel language design; formal semantics of programs. May be repeated for credit when the topics vary.

CS 856 - (3) (Y)
Topics in Operating Systems

Prerequisite: CS 656 or permission of instructor
Topics covered are generally chosen from one or more of the following operating system research areas: detailed case studies, distributed systems, global computing, distributed shared memory, real-time systems, object-oriented systems, security, multimedia, and mobile computing.

CS 860 - (3) (O)
Topics in Theoretical Computer Science

Prerequisite: CS 660 or permission of instructor
Study of selected formal topics in computer science, including computational geometry, advanced searching techniques, proximity and intersection problems, interconnection problems, VLSI CAD, amortized complexity analysis, approximation algorithms, zero-knowledge proofs, biological computing, and quantum computing.

CS 862 - (3) (Y)
Topics in Database Systems

Prerequisite: CS 662 or permission of instructor
Analyzes the implementation of database systems, concurrent and distributed access, backup, and security; query languages and optimization of query access; multi-attribute dependencies and retrieval.

CS 882 - (3) (Y)
Special Topics in Computer Vision/Image Processing

Prerequisite: Permission of instructor
For M.S. and Ph.D. students conducting research in image processing and machine vision. The contents vary with each semester and each instructor. An in-depth study of recent research in narrowly defined areas of computer vision/image processing. Readings from recently published articles in journals and conference proceedings are assigned. Cross-listed as EE 882.

CS 885 - (3) (O)
Topics in Software Engineering

Prerequisite: CS 685 or permission of instructor
A special topics course in software engineering. Topics covered are determined by the individual instructor, but might include: software reliability; engineering real-time systems; managing large software projects; resource estimation; validation and verification; or advanced programming environments.

CS 897 - (Credit as arranged) (S)
Graduate Teaching Instruction

For master’s students.

CS 898 - (Credit as arranged) (SI)

Formal record of student commitment to master’s thesis research under the guidance of a faculty advisor. May be repeated as necessary.

CS 997 - (Credit as arranged) (S)
Graduate Teaching Instruction

For doctoral students.

CS 999 - (Credit as arranged) (SI)

Formal record of student commitment to doctoral research under the guidance of a faculty advisor. Registration may be repeated as necessary.

Continue to: Electrical Engineering Courses
Return to: Chapter 9 Index