91.502 Foundations of Computer Science Fall 2004 
Finding This Document
Course Goals
Time and Place
Course Personnel and Office Hours
Prerequisites
Course Texts
Course Outline
Homework
Exams
Grading Policy
The class Web page is http://www.cs.uml.edu/~wang/cs502. Note that this page is a ``living document'' and extra information is expected to be added during the semester. For uptodate contents please refer to this Web page.
This course has two goals. The first goal is to give students a solid understanding of various basic computation models and fundamental concepts of computation. The second goal is to give each student a deeper sense of how to reason formally about computing, how to prove theorems about computation, and how to solve problems using rigorous mathematical methods.
The class meets Mondays
Person 
Role 
Office 
Office Phone 
Office Hours 
Email 
Jie Wang 
Instructor 
OS 201 
9789343649 
WF:
or by appointment 

TA 
OS 305 
9789341969 
M: 1011:30 or by appointment 
Prerequisites: 1) 91.500 or 92.322, 2) 91.404 or 91.583, and 3) at least one computer programming course or significant programming experience. This course is highly mathematical. This course is not for you if you miss any one of these three prerequisites.
Du and Ko, Problem Solving in Automata, Languages, and
Complexity, Wiley, 2001. ISBN 0471439606 Errata
Quantum computing handout (optional topic)
Date 
Topic 
Reading 
Week 1 
Administrative Matter. Mathematical Preliminaries; Strings and Languages; Regular Languages and Regular Expressions Note: If you find Sections 1.1 and 6.1
difficult, then this course is not for
you. 
1.11.2, 6.1 
Week 2 
Deterministic Finite Automata (DFA), Checker method of constructing DFA, Product automata method and complement automata method of constructing DFA, NFA, Equivalence of NFA and DFA 
2.12.4 
Week 3 
DFA and Regular Expressions, Closure Properties of Regular Languages, MyhillNerode Theorem, Minimum DFA, Pumping Lemma 
2.52.7 
Week 4 
Quiz*, Pumping Lemmas 
2.8 
Week 5 
ContextFree Grammas, Parsing and Ambiguity, Pushdown Automata and ContextFree Grammas 
3.13.5 
Week 6 
Pumping Lemmas for CFL, OneTape Turing Machines 
3.6, 4.1 
Week 7 
Midterm exam 

Week 8 
Multitape Turing Machines, ChurchTuring Thesis,
Unrestricted Grammars 
4.14.5 
Week 9 
Primitive and Partial Recursive Functions (brief introduction), Universal Turing Machines, R.E. Sets and Recursive Sets 
4.64.8, 5.15.2 
Week 10 
Diagonalization, Reducibility, Rice Theorem, 
5.35.4, handout 
Week 11 
Recursion Theorem, Undecidable Problems 
5.55.6 
Week 12 
Time and Space Complexity, Hierarchy Theorems, NTM’s 
6.26.4 
Week 13 
ContextSensitive Languages, NP, PolynomialTime Reducibility 
6.5, 7.17.2 Handout 
Week 14 
Bounded halting, Bounded tiling, and Cook’s Theorem 
Handout 
TBA 
Final Exam 

*The quiz is designed to screen your mathematical preparation.
Homework assignments are due on Mondays at the beginning of class. Homework handed in after 8:15pm will be considered late, and no late homework assignments will be accepted. However, since occasional emergencies may occur, each student is allowed one extension of 48 hours to turn in his/her homework. This amount of time cannot be divided among assignments: It applies to one assignment only.
Midterm and final exams will be given. Both exams are closed book. No early exams will be given. Exams may be taken after a scheduled date ONLY for documented emergencies. Students are responsible to obtain appropriate written documentation. A quiz with emphasis on prerequisite courses will be given in the 4^{th} week to help you determine whether you should stay on the course. Again, if you miss any of the listed prerequisites or you find it difficult to understand Section 1.1 and Section 6.1 on your own, then this course is not for you.
The approximate weights of the three components are
Homework 
10% 
Quiz 
10% 
Midterm 
40% 
Final 
40% 
Class attendance is important. You are responsible for all scheduling and announcements made in class if you miss class. The likelihood of failing the course is subsequently increased if you fail to attend class.
Students should be aware of, and adhere to, the University’s rules on academic dishonesty. These rules appear in the Graduate/Undergraduate Catalogs. The basic presumption is that the work you do is your own. Occasionally, especially when working on difficult homework problems (but never on quizzes or exams!), it may be necessary to ask someone for help. You are permitted to do so, provided you meet the following two conditions.
2. You understand the work that you hand in, so that you could explain the reasoning behind the parts of the work done for you by another.
Please note that I will not deduct credit for small amounts of acknowledged assistance in your homework assignments. Even working as a team on one of several problems in a homework problem set may not hurt your grade, as long as all members of the group acknowledge their collaboration. Such shared interest can be beneficial to all concerned. I do reserve the right to give less than full credit in circumstances where it appears that there has been largescale division of labor, and you are not getting as much learning out of the assignment as you should. However, as long as you acknowledge your sources, you will not get into HonorCode trouble. Again, this policy only applies to homework assignments.
Any other assistance by another person constitutes a violation of the honor code and will be treated as such. You will automatically receive a zero grade for your work on the first HonorCode violation and receive a zero for the entire course on the second violation.
If you have any questions about what this policy means, please discuss the matter with the instructor now.