CS 580 Course Syllabus
Overview
This course lays the groundwork for the analytical study of modern computing.
It covers the classic fundamentals of theoretical computer science. Topics
from formal language and complexity theory are chosen to highlight the boundary
between what can and cannot be effectively computed. Subjects in
algorithmic and mathematical analysis are selected to showcase general techniques.
Prerequisite
Mathematical maturity commensurate with the successful
completion of Computer Science 311 or its equivalent.
Milestones
Countability and other preliminaries
Regular sets and finite automata
Context-free languages and pushdown automata
Turing machines and recursive enumerability
Rice's Theorem and decidability
Reducibility and complexity theory
Cook's Theorem and NP-completeness
Decision, search, optimization and self-reduction
Selected additional topics as time permits
Grading
30% Homework
35% Exam I, to be held on October 2, 2024
35% Exam II, to be held on November 20, 2024