Computer Science 620: Theory of Computation
Fall 2009
Tuesdays & Thursdays 19:00 - 20:15 in M-1-620 (Tuesdays) and M-3-407 (Thursdays)
Welcome and congratulations on taking this course! Theory of Computation is the most fundamental subject in computer science; what you learn in this course applies to all computers and all programming languages that will ever exist. I promise that the insight you gain by taking CS 620 will be very useful to you. Please come back to this page regularly during the semester to check for updates on assignment deadlines, office hours etc. Most importantly, all PowerPoint slides etc. I use in class will be uploaded and available from the syllabus table at the bottom of this page. I will upload the slides immediately after each class, to make classes more surprising and exciting ;-). If you have any questions whatsoever, please don't hesitate to send me an e-mail.
Last updated on November 20, 2009.
Evaluation (assignments are posted here)
Syllabus (PowerPoint slides are posted here)
|
|
![]() |
Course Description: Functions computable by programs. Recursive functions and Turing machines; simulation and diagonalization. Universality and unsolvable problems. Kleene's hierarchy and the recursion theorem. Abstract complexity. Formal languages and classes of automata.
Prerequisites: CS 320 or permission of the instructor.
Evaluation: There will be four homework
assignments. A midterm exam will take
place on Tuesday, October 20, while the final exam is scheduled for the period of
December 16-22 (see syllabus below). Your final grade will be computed as follows:
Homework: 20%
(5% for each assignment)
Midterm Exam: 35%
Final Exam:
45%
| Assignment/Exam (PDF) | Posted/Given on | Due Date | Sample Solution & Other Information |
| Assignment #1 | September 23 | October 6 | Assignment #1 Sample Solution |
| Assignment #2 | October 8 | October 15 | Assignment #2 Sample Solution |
| Practice Midterm | October 13 | October 15 | Practice Midterm Sample Solution |
| Midterm Exam | October 20 | ||
| Assignment #3 | November 13 | November 24 | Assignment #3 Sample Solution |
| Assignment #4 | Assignment #4 Sample Solution | ||
| Practice Exam | Practice Exam Sample Solution | ||
| Final Exam |
Software: linter.zip Linter - The Interpreter for L Programs, written in Java by Alex Hwang in 2004. Please look at readme_assignment.txt and readme.txt.
(note: PDF files are in grayscale for better printing - HTML files are in color for better on-screen viewing - PPT files are for playing around with)
|
Session Dates |
Topic |
Chapter |
Slides |
|
|---|---|---|---|---|
|
Tuesday, |
Introduction and Preliminaries |
![]() |
1 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Programs and Computable Functions I |
![]() |
2.1, 2.2 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
Programs and Computable Functions II |
![]() |
2.3, 2.4 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Programs and Computable Functions III |
![]() |
2.5 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
Primitive Recursive Functions I |
|
3.1, 3.2, 3.3 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Primitive Recursive Functions II |
![]() |
3.4, 3.5, 3.6 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
Primitive Recursive Functions III |
![]() |
3.7 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Primitive Recursive Functions IV |
![]() |
3.8, 4.1 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
A Universal Program I |
![]() |
4.2, 4.3 |
[PDF] [HTML] [PPT] |
|
Thursday, |
A Universal Program II |
![]() |
4.4 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
A Universal Program III |
![]() |
4.5 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Midterm Review |
![]() |
|
|
|
Tuesday, |
Midterm Exam |
![]() |
|
|
|
Thursday, |
No Class! |
![]() |
|
|
|
Tuesday, |
A Universal Program IV |
![]() |
4.7 |
[PDF] [HTML] [PPT] |
|
Thursday, |
A Universal Program V |
![]() |
4.8 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
A Universal Program VI |
![]() |
4.8 |
[PDF] [HTML] [PPT] |
|
Thursday, |
A Universal Program VII |
![]() |
4.8 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
Calculation on Strings I |
![]() |
5.1, 5.2 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Calculation on Strings II |
![]() |
5.3, 5.4 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
Calculation on Strings III |
![]() |
5.5, 5.6 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Turing Machines I |
![]() |
6.1 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
Turing Machines II |
![]() |
6.2, 6.3, 6.4 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Thanksgiving - |
![]() |
|
|
|
Tuesday, |
Turing Machines III |
![]() |
9.1, 9.3 |
[PDF] [HTML] [PPT] |
|
Thursday, |
Regular Languages |
![]() |
10.1, 10.2 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
Context-Free Languages |
![]() |
10.8, 10.9 |
[PDF] [HTML] [PPT] |
|
Tuesday, |
Final Review & |
![]() |
||
|
Some day between |
Final Exam |
![]() |
||
Accommodations: Section 504 of the Americans with Disabilities Act of 1990 offers guidelines for curriculum modifications and adaptations for students with documented disabilities. If applicable, students may obtain adaptation recommendations from the Ross Center for Disability Services, M-1-401, (617-287-7430). The student must present these recommendations and discuss them with each professor within a reasonable period, preferably by the end of Drop/Add period.
Student Conduct: Students are required to adhere to the University Policy on Academic Standards and Cheating, to the University Statement on Plagiarism and the Documentation of Written Work, and to the Code of Student Conduct as delineated in the catalog of Undergraduate Programs, pp. 44-45, and 48-52. The Code is available online at: http://www.umb.edu/student_services/student_rights/code_conduct.html