Computer Science 620: Theory of Computation
Tuesdays & Thursdays 4:00  5:15pm in Y44110
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 email.
Also note that we use Piazza for discussions.
Last updated on May 14, 2019
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 220 or permission of the instructor.
Evaluation:
There will be six homework assignments. A midterm exam will take place on
Thursday, March 21, while the final exam we be scheduled for the regular
final exam period (see syllabus below). Your final grade will be computed as
follows:
Homework:
18% (average of the 5 highest homework scores)
Midterm Exam: 37%
Final Exam:
45%
Assignment/Exam (PDF) 
Posted/Given on 
Due Date 
Sample Solution & Other
Information 
February 12  February 21  
February 26  March 5  
March 7  March 19  
March 16  March 19  
Midterm Exam 
March 21 


April 13  April 23  
April 30  May 7  
May 7  May 14  
May 9  May 14  
Final Exam 
May 23, 3:00pm  5:30pm 


Software: cs620_1.hs mult.l isequal.l sqrt.l universal_program.zip cs620_turing_code.hs
(note: PDF files are in grayscale for better printing  PPTX files are for playing around with)
Session Dates 
Topic 
Chapter 
Slides 

Tuesday, 
Introduction and Preliminaries 

1 
[PDF] [PPTX] 
Thursday, 
Programs and Computable Functions I 

2.1, 2.2 
[PDF] [PPTX] 
Tuesday, 
The Haskell Programming Language 

Online 
[PDF] [PPTX] 
Thursday, 
Programs and Computable Functions II 

2.3, 2.4 
[PDF] [PPTX] 
Tuesday, 
Snow Day! 



Thursday, 
Programs and Computable Functions III 

2.5 
[PDF] [PPTX] 
Tuesday, 
No Class! 



Thursday, 
Primitive Recursive Functions I 

3.1  3.4 
[PDF] [PPTX] 
Tuesday, 
Primitive Recursive Functions II 

3.5  3.8, 4.1 
[PDF] [PPTX] 
Thursday, 
A Universal Program I 

4.2, 4.3 
[PDF] [PPTX] 
Tuesday, 
A Universal Program II 

4.4 
[PDF] [PPTX] 
Thursday, 
A Universal Program III 

4.5 
[PDF] [PPTX] 
Tuesday, 
Spring Break! 


Thursday, 
Spring Break! 


Tuesday, 
Midterm Review 



Thursday, 
Midterm Exam 



Tuesday, 
A Universal Program IV 

4.6 
[PDF] [PPTX] 
Thursday, 
A Universal Program V 

4.7 
[PDF] [PPTX] 
Tuesday, 
A Universal Program VI 

4.8 
[PDF] [PPTX] 
Thursday, 
Calculation on Strings I 

5.1, 5.2 
[PDF] [PPTX] 
Tuesday, 
Calculation on Strings II 

5.3 
[PDF] [PPTX] 
Thursday, 
Calculation on Strings III 

5.4 
[PDF] [PPTX] 
Tuesday, 
Calculation on Strings IV 

5.5 
[PDF] [PPTX] 
Thursday, 
Calculation on Strings V 

5.6 
[PDF] [PPTX] 
Tuesday, 
Turing Machines I 

6.1 
[PDF] [PPTX] 
Thursday, 
Turing Machines II 

6.2, 6.3, 6.4 
[PDF] [PPTX] 
Tuesday, 
Turing Machines III 

9.1 
[PDF] [PPTX] 
Thursday, 
Turing Machines IV 

9.3 
[PDF] [PPTX] 
Tuesday, 
Turing Machines V 

9.3 
[PDF] [PPTX] 
Thursday, 
Turing Machines VI 

9.3 
[PDF] [PPTX] 
Tuesday, 
Final Review & 



Thursday, 
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, M1401, (6172877430). 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. 4445, and 4852. The Code is available online at: http://www.umb.edu/student_services/student_rights/code_conduct.html