The following courses have been added or changed as a result of the
November 2006
new graduate degree
requirements and are now part of the department's
Graduate
Regulations.
Note that the old course CS 524 has been removed, and replaced by CS
5084.
Please see Prof. Dougherty's
short discussion of the differences between CS 503 and CS 5003.
CS 503. Foundations of Computer Science
(Modified Description)
This is the study of mathematical foundations of computing. Topics
include finite automata and regular languages, pushdown automata and
context-free languages, Turing machines and decidability, and an
introduction to computational complexity. Prerequisites: Knowledge of
discrete mathematics and algorithms at the undergraduate level, and
some facility with reading and writing mathematical proofs.
CS 5003. Foundations of Computer Science: an Introduction
(New Course)
This is the study of mathematical foundations of computing, at a
slower pace than that of CS 503 and with correspondingly fewer
background assumptions. Topics include finite automata and regular
languages, pushdown automata and context-free languages, Turing
machines and decidability, and an introduction to computational
complexity. Prerequisite: an undergraduate course in discrete
mathematics.
CS 584. Algorithms: Design and Analysis
(New Course)
This covers the same material as CS5084 though at a more advanced level.
As background, students should have experience writing programs in a
recursive, high-level language and should have the background in
mathematics that could be expected from a BS in Computer Science.
CS 5084. Introduction to Algorithms: Design and Analysis
(Modified Description)
This course is an introduction to the design, analysis and proofs of
correctness of algorithms. Examples are drawn from algorithms for many
areas. Analysis techniques include asymptotic worst case and average case,
as well as amortized analysis. Average case analysis includes the
development of a probability model. Techniques for proving lower bounds on
complexity are discussed, along with NP-completeness. Prerequisites: an
undergraduate knowledge of discrete mathematics and data structures.
Note: students with a strong background in design and analysis of computer
systems, at the level equal to a BS in computer science, should not take
CS 5084 and should consider taking CS 504 or CS 584.