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 up-to-date 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 |
978-934-3649 |
WF:
or by appointment |
|
TA |
OS 305 |
978-934-1969 |
M: 10-11: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 0-471-43960-6 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.1-1.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.1-2.4 |
Week 3 |
DFA and Regular Expressions, Closure Properties of Regular Languages, Myhill-Nerode Theorem, Minimum DFA, Pumping Lemma |
2.5-2.7 |
Week 4 |
Quiz*, Pumping Lemmas |
2.8 |
Week 5 |
Context-Free Grammas, Parsing and Ambiguity, Pushdown Automata and Context-Free Grammas |
3.1-3.5 |
Week 6 |
Pumping Lemmas for CFL, One-Tape Turing Machines |
3.6, 4.1 |
Week 7 |
Midterm exam |
|
Week 8 |
Multi-tape Turing Machines, Church-Turing Thesis,
Unrestricted Grammars |
4.1-4.5 |
Week 9 |
Primitive and Partial Recursive Functions (brief introduction), Universal Turing Machines, R.E. Sets and Recursive Sets |
4.6-4.8, 5.1-5.2 |
Week 10 |
Diagonalization, Reducibility, Rice Theorem, |
5.3-5.4, handout |
Week 11 |
Recursion Theorem, Undecidable Problems |
5.5-5.6 |
Week 12 |
Time and Space Complexity, Hierarchy Theorems, NTM’s |
6.2-6.4 |
Week 13 |
Context-Sensitive Languages, NP, Polynomial-Time Reducibility |
6.5, 7.1-7.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 4th 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 large-scale 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 Honor-Code 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 Honor-Code 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.