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

Computer Science faculty

CS 551 - (3) (SI)
Selected Topics in Computer Science
Prerequisite: Admission by permission of instructor
Course content varies from year to year and depends on research interests of the instructor. See CS 751 for possible topics.

CS 571 - (3) (Y)
Translation Systems

Prerequisite: Completion of CS 208 with a grade of C- or higher
Course studies 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
This course introduces the fundamental concepts for research, design, and development of knowledge-based systems. Emphasis is on theoretical foundations of artificial intelligence, problem solving, search, and decision making with a view toward applications. Students are required to 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. Emphasis is on the practical application of parallel systems.

CS 645 - (3) (Y)
Computer Graphics
Prerequisite: Knowledge of C
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; 3D picture transformation. (This course, which is cross-listed with Electrical Engineering, may be taught by either department.) Cross-listed as EE 635.

CS 651 - (3) (SI)
Special Topics in Computer Science
Prerequisite: Permission of instructor
The material which varies from year to year 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
Comparative study of the organization and implementation of a variety of programming languages and language features. Design principles are explored and applied in a historical review of major languages. Procedural, functional, logic-based, object-oriented and parallel languages. Research issues such as polymorphism, formal semantics and verification explored in depth.

CS 656 - (3) (Y)
Operating Systems
Prerequisite: CS 654 or permission of instructor
Supervisory and control software for contemporary multiprogrammed computer systems. Processes, synchronization, interprocess communication, scheduling, memory management, resource allocation, security, system performance evaluation, virtual machines, object-oriented systems, case studies (usually including UNIX).

CS 660 - (3) (Y)
Theory of Computation
Prerequisite: CS 302 or equivalent
Formal languages, the Chomsky hierarchy, formal computation and machine models, finite automata, pushdown automata, Turing machines, Church's thesis, reduction, decidability and undecidability, NP-completeness.

CS 661 - (3) (Y)
Design and Analysis of Algorithms
Prerequisite: CS 332 or equivalent
Concepts in algorithm design, problem solving strategies, complexity and bounds, sorting and searching, graph algorithms, geometric algorithms, probabilistic algorithms, intractability and NP-completeness transformations, approximation algorithms.

CS 662 - (3) (Y)
Database Systems
Prerequisite: CS 462 or equivalent
Comparative study of hierarchical, CODASYL, and relational database models, with emphasis on the latter. Readings in theoretical database issues. Implementation of a practical database using one of the standard models. Introduction to implementation issues.

CS 682 - (3) (Y)
Digital Picture Processing
Prerequisite: Graduate standing
Basic concepts of image formation and image analysis: imaging geometries, sampling, filtering, edge detection, Hough transforms, region extraction and representation, extracting and modeling three-dimension 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
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. Registration may be repeated as necessary.

CS 696 - (1) (Y)
Computer Science Perspectives
Prerequisite: CS graduate student or permission of instructor
Students attend semi-weekly session, which consist of both lecture and hands-on experience. Lectures are given by the computer science faculty and visitors on a variety of research topics. Hands-on sessions give students experience with the wide variety of tools available to researchers.

CS 715 - (3) (SI)
Performance Analysis of Communication Networks
Prerequisites: EE 611 and permission of instructor
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
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 from year to year and depends on the interest and needs of students. Topics may be advanced combinatorics and graph theory, parallel processing, information retrieval, data communications, computer networks, etc.

CS 756 - (3) (O)
Models of Computing Systems
Prerequisites: CS 656, and either SYS 605 or EE 611
Studies of user behavior, program behavior, and selected aspects of computer systems such as scheduling, resource allocation, memory sharing, paging, or deadlocks. Mathematical models and simulation. Use of measurements in the formulation and validation of models. Performance evaluation and prediction.

CS 757 - (3) (Y)
Computer Networks
Prerequisite: CS 656 or permission of instructor
Network topologies, backbone design; performance and queuing theory; data-grams and virtual circuits; technology issues; layered architecture, standards; survey of commercial networks; local area networks, and various communication protocols; encryption; security. Cross-listed as EE 757.

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. Relationship of available techniques to the syntactic and semantic specification of languages.

CS 782 - (3) (Y)
Advanced Computer Vision
Prerequisite: CS 682 or EE 682
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. 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, 852 - (3) (SI)
Advanced Topics in Computer Science
Prerequisite: Permission of instructor
Course content varies from year to year and depends on research interests of the instructor. See CS 751 for possible topics.

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
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 will generally be chosen from one or more of the following areas: detailed case studies, distributed systems, real-time systems, object-oriented systems, security.

CS 860 - (3) (O)
Topics in Theoretical Computer Science
Prerequisite: CS 660 or permission of instructor
Formal aspects of computer science. Typical subjects include: theory of formal languages, grammars, and automata; denotational semantics and lambda calculus; complexity of algorithms; computability; decidability; and automatic theorem proving.

CS 862 - (3) (Y)
Topics in Database Systems
Prerequisite: CS 662 or permission of instructor
Implementation of database systems, concurrent and distributed access, backup, and security. Query languages and optimization of query access. Multi-attribute dependencies, 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 will vary with each semester and each instructor. In-depth studies of recent research in narrowly defined areas of computer vision/image processing is conducted. Readings from recently published articles in journals and conference proceedings will be 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 will be 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. Registration 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