|
UMass Lowell 91.304 Foundations of Computer
Science Fall 2007 |
Finding This Document
Catalog Description and Course Goals
Course Outcomes
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/cs304. Note that this page is a “living document.” Updates will occur during the semester; the ``official'' contents are what is in the on-line version.
Catalog description: A survey of the mathematical foundations of Computer Science. Finite automata and regular languages. Stack Acceptors (pushdown automata) and Context-Free Languages. Turing Machines, recursive and recursively enumerable sets. Decidability. This course involves no computer programming. Prerequisite: 92.322 (Discrete Structures II).
Course goals: There are two purposes to this course. One is to give you an understanding of fundamental concepts in computing, including common models for computation such as finite automata and Turing machines. There will be some effort to convince you that this technology is important for implementing a variety of the latest types of systems and software. The other goal is to give you a sense of how to reason formally about computing, how to prove theorems about computation, and how to tell rigorous proof from wishful thinking.
To be successful in this course, you must be able to perform the following tasks:
|
Person |
Role |
Office |
Phone |
Office Hours |
Email |
Jie Wang |
Instructor |
OS 313 |
934-3649 |
MW 11:00am-noon or by appointment |
wang@cs.uml.edu |
|
TA |
OS 305 |
934-1969 |
W: 9:00am-10:00am or by appointment |
zfang@cs.uml.edu |
The class meets TR 1:00pm - 2:15pm, Olsen 403.
Discrete Math I (92.321) and Discrete Math II (92.322). You are expected be to know how to use various basic proof techniques, including proof by contradiction, proof by cases, and mathematical induction. You will most likely find this course difficult if you have insufficient mathematical preparations.
Although no programming in any particular programming language will be involved in this course, programming experience is necessary to take this course.
Many students find this course challenging and demanding. It covers a lot of material, and should not be taken during a busy semester. I will be happy to help you evaluate your preparedness for this course.
John Hopcroft, Rajeev Motwani, and Jeffrey Ullman. Introduction to Automata Theory, Languages, and Computation. 3rd edition. Addison-Wesley, ISBN 0-321-45536-3.
|
Week |
Date |
|
Topics |
|
1 |
09/06 |
1.2-1.4 |
Formal proofs |
|
2 |
09/11 |
1.4, 1.5. 2.2 |
Administrative trivia; induction proofs; central concepts of automata theory; deterministic finite automata |
|
|
09/13 |
2.3-2.4 |
nondeterministic finite automata; an application: text search |
|
3 |
09/18 |
2.5 |
NFA with epsilon-transitions |
|
|
09/20 |
3.1-3.2 |
regular expressions and DFAs; regular expressions |
|
4 |
09/25 |
3.3-3.4 |
Applications of regular expressions; algebraic properties of regular expressions |
|
|
09/27 |
4.1 |
pumping lemma |
|
5 |
10/02 |
4.2 |
closure properties of regular languages; decision properties of regular languages; |
|
|
10/04 |
4.4 |
equivalence and minimization of DFA’s; |
|
6 |
10/09 |
|
Quiz 1 (cover everything taught so far) |
|
|
10/11 |
5.1-5.2 |
Context-free grammars; parse trees and ambiguity |
|
7 |
10/16 |
5.3-5.4 |
Applications of context-free grammars |
|
|
10/18 |
6.1-6.2 |
Pushdown automata; the language of a PDA |
|
8 |
10/23 |
6.3-6.4 |
Equivalence of PDA’s and CFG’s; deterministic pushdown automata |
|
|
10/25 |
7.1-7.2 |
Normal forms for context-free grammars; the pumping lemma for context-free grammars |
|
9 |
10/30 |
7.3-7.4 |
Closure properties of context-free languages; decision properties of CFL’s |
|
|
11/01 |
8.1-8.2 |
Problems that computers cannot solve; Turing machines |
|
10 |
11/06 |
8.3-8.4 |
Programming techniques for Turing machines; extensions to the basic Turing machines |
|
|
11/08 |
|
Quiz 2 (cover everything taught so far from Quiz 1) |
|
11 |
11/13 |
8.5-8.6 |
Restricted Turing machines; Turing machines and computers |
|
|
11/15 |
|
Monday schedule |
|
12 |
11/20 |
9.1 |
A language that is not recursively enumerable; an undecidable problem that is r.e. |
|
|
11/22-11/23 |
|
Thanksgiving
holidays |
|
13 |
11/27 |
9.2 |
A language that is not recursively enumerable; an undecidable problem that is r.e. |
|
|
11/29 |
9.3 |
Undecidable problems about Turing machines; |
|
14 |
12/04 |
9.4 |
Other undecidable problems, The classes P and NP |
|
|
12/06 |
9.5 |
Rice’s theorem. |
|
15 |
12/11 |
9.5 |
Post’s Correspondence Problem |
|
|
12/13 |
review |
review |
|
16 |
12/19 8:00am |
OS 402 |
Final exam (cover
the entire course) |
Homework assignments are primarily “paper-and-pencil” assignments. Most of the assignments will be carried out through the online gradiance system. Go to http://www.aw.com/gradiance to register with gradiance. The class token is 05620F28. Written assignments will also be given.
You must keep the following two goals in mind when writing up your homework assignments, quizzes, and exams: Give evidence that you have put real thought into the problem, and convince the reader that your solution is correct and that you know why.
As a programmer, you have some experience with this sort of writing: an effective program must be written for both a compiler and a human reader. Similarly, solutions to your problems must be correct in the sense of solving the stated problem, but they also have to be comprehensible to the grader.
As with any writing, the first draft of your solution is usually unpresentable. All of the pieces may be there, but they tend to be chaotically assembled. The single most important thing you can do to make your solutions presentable is to rewrite them after you have discovered why they are correct, and then to throw away (or at least tuck away) your initial draft. Remember, scratch paper is cheap.
Be careful to realize that this emphasis on presentation has nothing to do with whether English is your native language or whether you prefer to write your solutions with pencil, pen, quill, or word processor. A well-written solution starts by stating assumptions and then works towards a clearly defined goal, emphasizing the overall direction and omitting the superfluous.
Homework assignments will generally be due on Tuesdays at the beginning of class. Work handed in after 2:15pm will be considered late, and see below...
No late homework assignments will be accepted. However, since there are occasional emergencies, each student is allowed one extension to the coming Thursday in class. This amount of time cannot be divided among assignments; it applies to one assignment only.
There will be two quizzes and one final exam. No early quizzes or exam will be given. Quizzes or exam may be taken after a scheduled date ONLY for documented emergencies. It is the student's responsibility to obtain appropriate documentation. No Incomplete grades will be given.
Grades measure accomplishment, not effort or enthusiasm. You may find that your will have to work very hard for your grades, while others won’t.
Your grade in this course will be made up of written assignments, quizzes, and the final exam.
The approximate weights of the four components are
|
Homework |
20% |
|
Quiz 1 |
20% |
|
Quiz 2 |
20% |
|
Final exam (given during the final exam week) |
40% |
Class attendance is important. You are responsible for all scheduling and other announcements made in class. The likelihood of failing the course is subsequently increased if you fail to attend class regularly. The format of this course will be lectures, peppered with questions as they arise. The lectures will include working through sample problems. Certain course material will only appear during lectures, and most announcements will only be made in class.
Students should be aware of, and adhere to, the University’s rules on academic dishonesty. These rules appear in the Undergraduate Catalog.
The basic presumption is that the work you do is your own.
Occasionally, especially when working on difficult problems or writing programs (but never on quizzes or exams or projects!), it may be necessary to ask someone for help. You are permitted to do so, provided you meet the following three conditions.
Any other assistance by another person constitutes a violation of the honor code and will be treated as such. This applies to the providers as well.
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.