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 December 11, 2009.

Instructor

Course Description

Textbook

Evaluation (assignments are posted here)

Software

Syllabus (PowerPoint slides are posted here)

Accommodations

Student Conduct

 



Instructor:   Marc Pomplun
                    Office: S-3-171
                    Office Hours: Tuesdays 17:30 - 19:00, Thursdays 14:30 - 16:00
                    Office Phone: (617) 287-6443
                    Lab: S-3-135
                    Lab Phone: (617) 287-6485
                    e-mail: marc@cs.umb.edu
                    Homepage: http://www.cs.umb.edu/~marc

       

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.


Textbook:  Martin D. Davis, Ron Sigal & Elaine J. Weyuker: Computability, Complexity, and Languages. Fundamentals of Theoretical Computer Science. Elsevier Science, 2nd Edition 1994. ISBN: 0122063821.

This book is available at the UMB Bookstore, although you might save some money by ordering it on the web.


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 December 2 December 10 Assignment #4 Sample Solution
Practice Exam December 8 December 10 Practice Exam Sample Solution
Final Exam December 17    

 


 

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.

 


Syllabus

(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,
September 8

Introduction and Preliminaries

1

[PDF]

[HTML]

[PPT]

Thursday,
September 10

Programs and Computable Functions I

2.1, 2.2

[PDF]

[HTML]

[PPT]

Tuesday,
September 15

Programs and Computable Functions II

2.3, 2.4

[PDF]

[HTML]

[PPT]

Thursday,
September 17

Programs and Computable Functions III

2.5

[PDF]

[HTML]

[PPT]

Tuesday,
September 22

Primitive Recursive Functions I

3.1, 3.2, 3.3

[PDF]

[HTML]

[PPT]

Thursday,
September 24

Primitive Recursive Functions II

3.4, 3.5, 3.6

[PDF]

[HTML]

[PPT]

Tuesday,
September 29

Primitive Recursive Functions III

3.7

[PDF]

[HTML]

[PPT]

Thursday,
October 1

Primitive Recursive Functions IV

3.8, 4.1

[PDF]

[HTML]

[PPT]

Tuesday,
October 6

A Universal Program I

4.2, 4.3

[PDF]

[HTML]

[PPT]

Thursday,
October 8

A Universal Program II

4.4

[PDF]

[HTML]

[PPT]

Tuesday,
October 13

A Universal Program III

4.5

[PDF]

[HTML]

[PPT]

Thursday,
October 15

Midterm Review

 

 

Tuesday,
October 20

Midterm Exam

 

Thursday,
October 22

No Class!
(Recovery from Midterm)

 

Tuesday,
October 27

A Universal Program IV

4.7

[PDF]

[HTML]

[PPT]

Thursday,
October 29

A Universal Program V

4.8

[PDF]

[HTML]

[PPT]

Tuesday,
November 3

A Universal Program VI

4.8

[PDF]

[HTML]

[PPT]

Thursday,
November 5

A Universal Program VII

4.8

[PDF]

[HTML]

[PPT]

Tuesday,
November 10

Calculation on Strings I

5.1, 5.2

[PDF]

[HTML]

[PPT]

Thursday,
November 12

Calculation on Strings II

5.3, 5.4

[PDF]

[HTML]

[PPT]

Tuesday,
November 17

Calculation on Strings III

5.5

[PDF]

[HTML]

[PPT]

Thursday,
November 19

Calculation on Strings IV

5.6

[PDF]

[HTML]

[PPT]

Tuesday,
November 24

Turing Machines I

6.1

[PDF]

[HTML]

[PPT]

Thursday,
November 26

Thanksgiving -
No Classes

 

 

Tuesday,
December 1

Turing Machines II

6.2, 6.3, 6.4

[PDF]

[HTML]

[PPT]

Thursday,
December 3

Turing Machines III

9.1

[PDF]

[HTML]

[PPT]

Tuesday,
December 8

Turning Machines IV

9.3

[PDF]

[HTML]

[PPT]

Tuesday,
December 10

Final Review  &
Practice Exam

   

Thursday,
December 17,
6:30pm - 9pm

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


Back to Marc Pomplun's Home Page