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

### Linguistics

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

### Mathematics

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 |

### Philosophy

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 |

### Psychology

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 |

### Statistics

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.

#### 01:198:110

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.

#### 01:198:111

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.

#### 01:198:112

Data Structures (4)

Prerequisite: 01:198:111.

Queues, stacks, trees, lists, graphs, and recursion; sorting and searching; comparison of algorithms.

#### 01:198:205

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.

#### 01:198:206

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.

#### 01:198:211

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.

#### 01:198:221

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.

#### 01:198:230

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.

#### 01:198:314

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.

#### 01:198:323

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.

#### 01:198:324

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.

#### 01:198:336

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.

#### 01:198:344

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.

#### 01:198:352

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.

#### 01:198:405

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.