Graduate Course Information

Taking Courses as a CS Graduate Student

The following pages contain descriptions of the courses that are available in the Graduate Program in Computer Science. For each course, it is indicated in which term (Fall and/orSpring) the course is usually given, and the number of credits provided. Note that more advanced graduate courses are usually not given every year.

The first courses listed are 300 and 400 level courses and are, strictly speaking, undergraduate courses. However, the Graduate Program in Computer Science has approved of them (and only them) for credit toward a graduate degree; at most two undergraduate courses can be taken for credit towards a graduate degree in computer science. Some of these courses are recommended to students whose background in computer science is weak.

Any 300 and 400 level courses for which the student wishes to have graduate credit must be registered with a G-prefix; write `G' under `credit hour prefix' on the registration card. A student registering for an undergraduate course other than from the approved list must register with an E-prefix: write `E' under `credit hour prefix' on the registration card; this means that the student does not receive graduate credit.

Other special credit registrations: A student who is a Teaching Assistant registers for 6 credits of 198:877 with an E-prefix. A student who is a Graduate Assistant registers for 6 credits of 198:866 with an E-prefix. A student registering for Matriculation Continued registers for 198:800 and no special prefix. The N-prefix means that the course is taken `not for credit' and no exam or grades are given.

Important! Whether or not it is expressly stated in the prerequisites of each 500 level course, it is assumed that the student has had the background required for admission. These will be referred to as `entrance requirements'. Prerequisites are to be taken as strong guidelines that should help a student to decide whether to register in a specific course at a given time in the course of his studies. Normally, students taking a course should satisfy the course prerequisites. However, if a student is unclear about the prerequisites of a course or if he has doubts about his qualifications for the course, he should consult the instructor in charge. Although special cases will be considered individually by the instructor, students who have not had the prerequisites should not expect to be allowed to take the course.


Another important point is about the maximum number of credits for which you are allowed to register. See the sections on Course Load for those constraints. The total number of credits for which you register includes all courses. Thus, your TAship or GAship credits, your PALS credits and your regular courses are all counted.

List of courses available for Graduate Credit

The description of all courses available for graduate credit can be found at the Course Synopses section.

Some Relevant Courses in Other Departments

Before taking a course outside the Department of Computer Science, the student needs to consult with his advisor and receive his approval.

Normally an M.Sc. student may take no more than 6 credits outside the department. (Please note that the courses listed here may have prerequisites that are not listed here.)

Analytics and Information Management (MBA Curriculum)

960:641 Analytics for Business Intelligence

Applied Mathematics

642:516 Applied Partial Differential Equations
642:527,8 Methods of Applied Mathematics
642:550 Linear Algebra and Applications
642:551 Applied Algebra
642:575 Numerical Solutions of Partial Differential Equations
642:577,8 Selected Topics in Systems Theory
642:581 Applied Graph Theory
642:582,3 Combinatorics I, II
642:587 Selected Topics in Discrete Mathematics
642:588 Introduction to Mathematical Techniques in Operations Research
642:589 Topics in Mathematical Techniques in Operations Research
642:591,2 Topics in Probability and Ergodic Theory
642:611 Special Topics in Applied Mathematics

Biomedical Engineering

526:520 Neuroelectric Sytems
125:526 Brain Dynamics
125:610 Advanced Topcs in Computers in Biomedical Engineering
125:620 Neural Networks and Neurocomputing

Cognitive Science

185:500 Cognitive Science Proseminar

Electrical and Computer Engineering

332:505,6 Control Systems Theory I,II
332:526 Robotics Systems Engineering
332:527 Digital Speech Processing
332:529 Image Coding and Processing
332:539 Advanced Topics in Digital Signal Processing: Introduction to Functional Neuroimaging, Methods and Data Analysis
332:542 Information Theory and Coding
332:543,4 Communication Networks I,II
332:553 Wireless Access to Information Networks
332:560 Computer Graphics
332:561 Machine Vision
332:562 Visualization and Advanced Computer Graphics
332:563,4 Computer Architecture I,II
332:565 Neurocomputer System Design
332:566 Parallel and Distributed Computing
332:568 Software Engineering Web Applications (3)
332:570 Robust Computer Vision
332:571 Virtual Reality Technology
332:574 Computer Aided Digital VLSI Design
332:575 VLSI Array Processors
332:576 Testing of Ultra Large Scale Circuits
332:588 Integrated Transistor-Circuit Design

Industrial Engineering

540:515 Stochastic Models
540:525 Applied Queuing Theory
540:540 Computational Methods
540:575 Advanced Engineering Economics
540:585,685 Systems Reliability Engineering I, II


615:510/1/4 Syntax I,II and Topics
615:520/1/4 Phonology I,II and Topics
615:530/1/4 Semantics I,II and Topics.


640:551 Abstract Algebra
640:561 Mathematical Logic
640:566 Axiomatic Set Theory
640:567 Model Theory
640:569 Selected Topics in Logic

Operations Research

711:513 Discrete Optimization
711:553 Boolean and Pseudo-Boolean Functions
711:556 Queueing Theory 
711:558 Convex Analysis and Optimization  


730:513 Logic and Natural Language
730:550 Seminar in Epistomology
730:570 Seminar in the Phil. of Language
730:575 Seminar in the Phil. of Mind
730:650 Advanced Topics in Epistomology
730:670 Advanced Topics in the Phil. of Language
730:675 Advanced Topics in the Phil. of Mind
730:676 Advanced Topics in the Phil. of Psychology
730:678 Advanced Topics in Decision Theory
730:679 Topics in Logic


830:514 Sensation and Perception
830:515 Computational Vision
830:535 Language and Communication
830:540 Mathematical Models of Learning, Perception, and Cognition
830:546 Memory and Attention
830:547 Computational Models of Cognition
830:550 Language Development
830:602 Psycholinguistics
830:611 Seminar in Perception
830:635 Selected Topics in Learning
830:637 Seminar: Cognition
830:641 Seminar: Thinking


960:553 Categorical Data Analysis
960:554 Applied Stochastic Processes
960:555 Nonparametric Statistics
960:563 Regression Analysis
960:565 Applied Time Series Analysis
960:576 Survey Sampling
960:580 Basic Probability
960:582 Introduction to the Methods and Theory of Probability
960:583 Methods of Statistical Inference 
960:586 Interpretation of Data I 
960:587 Interpretation of Data II 
960:588 Data Mining 
960:590 Design of Experiments 
960:591 Advanced Design of Experiments 
960:592 Theory of Probability 
960:593 Theory of Statistics 
960:595 Intermediate Probability
960:652/3 Advanced Theory of Statistics
960:654 Stochastic Processes
960:681/2 Advanced Probability Theory
960:690 Bayesian Analysis
960:668 Bayesian Data Analysis

Analytics and Information Management (MBA Curriculum)

960:641 Analytics for Business Intelligence

Short Descriptions of Other Undergraduate Courses

A more complete and up-to-date version is available from the Undergraduate>Course Synopses section of this site.


Principles of Computer Science (3)
Not for major credit. Students planning further study in CS should take 01:198:111.
A general survey about what computers are and how they are used, including an introduction to computer programming. 


Introduction to Computer Science (4)
An intensive introduction to computer science. Writing, debugging, and analyzing programs. Algorithms for sorting and searching. Introduction to data structures. For students in science, mathematics, and engineering.


Data Structures (4)
Prerequisite: 01:198:111.
Queues, stacks, trees, lists, graphs, and recursion; sorting and searching; comparison of algorithms.


Introduction to Discrete Structures I (4)
Prerequisites: 01:198:111 and CALC.
Sets, propositional and predicate logic, relations and their properties, and definitions and proofs by induction with applications to the analysis of loops of programs.


Introduction to Discrete Structures II (4)
Prerequisites: 01:198:205.
Credit will not be given for both 01:198:206 and 01:640:477.

Counting (binomial coefficients, combinations), methods of finding and solving recurrence relations, discrete probability, regular expressions and finite automata, basic graph theory.


Computer Architecture and Assembly Language (4)
Prerequisite: 01:198:112. Credit not given for both this course and 14:330:337.
The levels of organization in digital computer systems; assembly language programming techniques; comparative machine architectures; assemblers, loaders, and operating systems. Programming assignments in assembly language.


Numerical Problems and Computer Programming (4)
Prerequisites: CALC2 or the equivalent.
An introductory numerical analysis course similar to 01:198:323, but designed for nonmajors. FORTRAN taught in recitation.


Introduction to Information Systems (4)
Prerequisite: 01:198:110 or 111.
Not for Major credit. Introduction to databases and file structures, and to network access tools for information storage and retrieva.


Principles of Programming Languages (4)
Prerequisites: 01:198:112, 205.
Syntax, semantics, names and values, control structures, data types, procedures and parameters, scope rules; procedural, functional, pnkect-oriented and logic-programming paradigms.


Numerical Analysis and Computing (4)
Prerequisites: 01:198:111, CALC2, and 01:640:250.
Credit will not be given for both 01:198:323 and 01:640:373.
Approximation, interpolation, numerical differentiation, integration; numerical solution of nonlinear equations, linear algebraic systems, and ordinary differential equations.


Numerical Methods (4)
Prerequisites: 01:198:323 or 01:640:373.
Credit will not be given for both 01:198:324 and 01:640:374.
Computational methods for linear algebraic systems, eigenvalues and eigenvectors, approximation of functions, splines; numerical solution of initial and boundary value problems for differential equations.


Principles of Database Management Systems (4)
Prerequisites: 01:198:112 and 01:640:205
Provides an introduction to the concepts and design principles used in database management systems.


Design and Analysis of Computer Algorithms (4)
Prerequisites: 01:198:112 and 01:198:206.
Study of algorithms. Techniques for efficiency improvement. Analysis of complexity and validity for sorting (internal, external), shortest path, spanning tree, cut points, connected components, and pattern matching. NP completeness.


Internet Technology (4)
Prerequisites: 01:198:211
Provides a practical understanding of computer networks with respect to system architectures, protocols, and client-server interaction. These objectives are accomplished through extensive laboratory exercises.


Seminar in Computers and Society (3)
Prerequisites: At least one computer science course and one course in sociology, political science, anthropology, or philosophy.
Study and discussion of the impact of computers on man and society. For all students interested in exploring the social consequence of computer developments.