Skip to content Skip to navigation

Graduate Courses in DCS

6.1 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 as discussed in Section 3.1 of this brochure. 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.


6.2 List of courses available for Graduate Credit

The description of all courses available for graduate credit can be found at (the ending slash is necessary).


6.3 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.)

     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   

     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: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: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    

6.4 Short Descriptions of Other Undergraduate Courses

A more complete and up-to-date version is available from the Undergraduate Secretary in Room Hill 390.

Introduction to Computers and Their Applications (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.