CS 154 (Section 1): Formal Languages and Computability, Spring 2008

David Scot Taylor
212 MacQuarrie Hall
Assistant Professor
Dept. of Computer Science
San Jose State University
Phone: (408) 924-5124 (email works better)
Email: taylor "at" cs.sjsu.edu

My office hours for Spring 2008 : Tue/Thur 8:30-9:00, (the last 10 minutes in MH222), 11:50-13:30 (the last 10 minutes in MH223)
Note: I will be on leave until March 17.

Section 1: MH 223, Tue/Thur 13:30-14:45

Special for Spring 2008

David Taylor will be on leave for the first few weeks of the semester. Section 2 will be taught by Adel Atta until his return. Professor Atta may have his own modifications to make to this greensheet, and each will be creating their own assignments until after the first midterm examination. David Taylor will return to teach in mid March.

Course Website

The course website can be found at http://www.cs.sjsu.edu/faculty/taylor/term/spring08/CS154/. This site contains a link to this greensheet, a schedule of classes thus far, and a tentative schedule of future class topics, along with other information and announcements.

Course Goal and Description

Goal: To introduce students to the basic concepts of theoretical computer science, and to show them that many of the origins of these questions came from some very practical considerations.

Topics covered will include regular and context-free grammars, finite automata, minimization, regular expressions, pumping lemmas, closure properties, nonequivalence of deterministic and non-deterministic PDA's, Turing machines, and recursive, recursively enumerable, and undecidable languages.

Prerequisite Courses

You must show me that your prerequisite courses have been satisfied in office hours. If you do not show me by January 31 (the second week of classes, the last class meeting before drop date), you may be dropped from the course. Further, I will not give out any add codes without first seeing prerequisite proof. You should show me grades for CS46B, and Math42, or their equivalents on a departmental course equivalence form. You must have a C- or better in each course. Students hoping for an exception must discuss their situation with me. CS46A is implicitly required, because it is a prerequisite for CS46B. Prerequisite courses and relevant topics covered:
CS46B: Recursion, Big-O notation.
Math42: Sets, logic, proofs, induction, combinatorics, and equivalence classes.

Textbooks

The book is:
An Introduction to Formal Languages, and Automata (Fourth Edition)
Peter Linz
ISBN: 0-7637-3798-4, Jones and Bartlett Publishers, 2006.

You can find errata (bug reports) for the book at http://computerscience.jbpub.com/catalog/0763737984/.

We will cover most of the first nine chapters, plus parts of chapters 10, 11, and 12. Other topics may be added depending on time. The course website has a link to a tentative course schedule with more precise readings from the book.

Course Objectives

Student Learning Outcomes

Upon successful completion of this course, students should be able to:

Class Participation

Class partiticipation and feedback are very important to keep the course interesting. If I am covering material too slowly or quickly, or if I am not clearly explaining things, you must let me know. I prefer an interactive learning environment. If you disagree with something I say, speak up. Argue with me in front of the class. It will make the class better, and right or wrong, constructive interaction will not not hurt your grade. If you are correct, clearly my mistake should be corrected. If you are incorrect, probably I have not explained something clearly anyway, and at least half of the class is confused by it. Point it out right then and there. I reserve the right to improve a student's grade by up to 1/3 grade due to class participation.

Grading

Homework: Homework will be regularly assigned, and will include reading assignments and written problem assignments (which may involve programming for various automata models).

Reading assignments: Reading assignments will regularly be for the next class. Ideally, students will do the reading to get an idea of what the class will be about, then attend class, and then re-read the material with intuition gained from class. At the very least, assignments should be read before or after class. Due to possible unannounced quizzes on the reading, reading the material before class is preferred for cases when there is only time for one reading.

Written assignments: Unless otherwise specified, written assignments may be done in groups of up to three, with one homework turned in per group, and all names on the front page. Each of you should feel confident that you understand everything on your group's submission. (If you understand a question best among your group, nothing will make you understand the material as well as teaching it to others.) The lowest 1/6 of (homework plus quiz) grades for each person will be dropped for the semester.

You are encouraged to start each written problem independently, and spend some time on each question. Then, get together with your group, discuss all questions, and write them up together. Your group may change from homework to homework. No group should be larger than 3. Most of your discussion should be with people in your group. You may generally discuss problems with other students as well, but not to the point of working out specific answers. Therefore, I don't expect that any group answer will look too similar to another group's answer.

Besides the given course textbook and your instructors, all sources used to help in the homework (other texts, other people) must be referenced properly. Failure to properly reference is considered cheating. When you discuss programming assignments with people, this should be referenced on your written assignments too. Please do not use web-sites to help you with your homework or programming assignments, other than to find other references (papers, texts). I realize that there are worthwhile sites on the web, but I have sometimes found that students get into trouble, "borrowing" a bit too much from other sites. So, please do not use other websites as references. (If you think that you have good reason to, please discuss it with me first.) You absolutely may not use the web to directly find solutions to assigned questions.

Not all homework questions will be graded. The homework is a tool for you to learn the material. It is given to help you prepare for the tests, and for future classes. Some questions will be graded as just "attempted" or "not attempted", others will be graded more completely, and others not at all. In total, the written assignments will be worth 25% of your grade. This is enough to help raise your grade, but not enough to risk cheating. The difference in your homework grade from doing it honestly vs. cheating is probably not worth the risk of being caught, as people have been caught before, and they have failed the course. Your course performance will improve if you make a real attempt at the homework. Each homework will be graded on a 0-5 scale.

Homework solutions for problems from the textbook will not be posted on the website. It is generally considered inappropriate to post solutions to textbook exercises without the blessings of the textbook authors. We have no such blessings.

Late homework policy: Please submit homework on time. If you have a real reason why the homework is late, and I have not yet discussed solutions or handed back homework, I will accept late homework, but once we have had solution discussions, homework solutions are distributed, or graded homework is returned, it is too late.

Students should attend all meetings of their classes, not only because they are responsible for material discussed therein, but because active participation is frequently essential to insure maximum benefit for all members of the class. Furthermore, unannounced quizzes may be given during any class meeting (other than the ones with scheduled exams). Attendance per se shall not be used as a criterion for grading.

Please do not ask me ahead of time if I will be passing out solutions in a given class. I do not want to encourage anybody to not turn in homeworks when due, I only want to encourage people to work on homework in general. As of right now, I plan to have solutions ready for every due date.

Quizzes: Unannounced quizzes may be given during class, each taking about 5 minutes total. These will generally be problems from the homework, or very similar to something assigned on the homework, or something which was very plainly covered in the assigned reading. In the former two cases, the quiz will be graded instead of the homework. In the latter case, the quiz may be given in addition to collecting and grading of the homework. Quizzes will be graded as homework (on a 0-5 scale), and thus, 1/6 (rounded up) of all graded homework and quiz grades combined will be dropped in calculating a homework average.

Tests: There will be two tests during the semester, the first worth 15% of your grade, the second 20%. Each test question will have a point value and a ''default'' value of 30%. If the question is left blank (or the default value clearly circled and the question crossed out), you get the default value. The goal is to allow you to spend your time correctly answering questions which you can best answer, and concentrating on the questions which you find to be difficult but not impossible. It will also help to avoid the practice of writing as much random material for a question in hopes that the grader will pick out the correct parts and give ''pity points'': answers with no structure which seem nonsensical will receive 0%, even if somewhere in them there is some partially correct statement. The default option may be used for at most a specific maximum number of points (30%-50% range), as specified at the time of the test. Note, the instructors for the first midterm will make their own exams, with their own rules, so this policy may not apply for the first midterm.

Final:
For Section 1, the final exam will be Thursday, May 15, at 12:15 p.m.
The final exam will be worth 40% of your grade. If you ace the final, it is worth 100% of your grade, subject to having enough working programs to qualify for that grade. Do not count on this option: the final will be more difficult than the other exams, and will be normalized to have a lower average than the midterms. You still need to get your programs running, as discussed above in the programming assignments section.

Course grade: Your tests will all be normalized to have a standard deviation of 10. Midterms will be normalized to a mean of 55/100, and the final to 50/100. Homework (including quizzes) will not be normalized, and will be worth 25% of your weighted average. Your final numerical grade will be the maximum of this weighted average, and just your normalized final exam grade.

After computing numerical grades for each student, letter grades are assigned on a curve. I generally look for gaps in which no student has a grade to make changes to the letter grades assigned, to avoid situations where just a few extra points over the entire semester would change the grade of a student. I reserve the right to improve a student's grade by up to 1/3 grade due to class participation.

Academic Honesty

No homework assignment answers should be gotten from the web, or from previous courses. All collaboration must be reported. Students caught cheating may fail the course and should expect to be reported appropriately.

If you would like to include in your homework any material you have submitted, or plan to submit, for another class, please note that SJSU's Academic Integrity policy S04-12 requires approval by instructors.

For further greensheet information please see http://www.cs.sjsu.edu/greensheetinfo/index.html