Date: Wed, 20 Nov 1996 21:47:32 GMT Server: NCSA/1.5 Content-type: text/html Computer Science 305 -- Fall 1996


Computer Science 305
Automata and Formal Languages

Fall 1996 Syllabus

Last modified 11/19/96


Click here for an HTML version of Homework 5, due on Tuesday, December 3.
Click here for a postscript version of Homework 5.

Click here for an HTML version of Homework 4, due on Friday, November 15.
Click here for a postscript version of Homework 4.

NOTE: be sure to fetch the attached figures below for a complete set of solutions!
Click here for an HTML version of the Homework 3 solutions.
Click here for an HTML version of the Homework 3 attached figures.
Click here for a postscript version of the Homework 3 solutions.

Click here for an HTML version of Homework 3, due on Tuesday, October 22.
Click here for a postscript version of Homework 3.

NEWS FLASH: Problem 4 cancelled in Homework #2!
Click here for an HTML version of Homework 2, due on Thursday, October 10.
Click here for a postscript version of Homework 2.

Click here for a postscript version of Homework 1, due on Thursday, September 26.
Click here for a postscript version of Homework 1 solutions. The dfa diagrams are on the bulletin board outsise my office.


Instructor

David Martin
MCS 209
353-3326
Click here to send mail to dm@cs.bu.edu.

Office Hours

Tuesday 2:10-3 pm
Wednesday 1:30-2:00pm or later
Thursday 4-5pm
and by appointment

Classroom and Meeting Times

Classes meet Tuesday and Thursday, 12:30pm - 2:00pm (i.e., 12:30pm - 1:50pm, according to standard BU conventions) in MCS B23, the basement of 111 Cummington St.

Required Textbook

Introduction to the Theory of Computation (Preliminary Edition), Michael Sipser, PWS Publishing Company, 1996. See http://www-math.mit.edu/~sipser/errata.html for an up-to-date list of errors in the book.

One copy of this book will be on reserve at the Science and Engineering library after 9/10/96. I'll put another copy on reserve if I can find one.

You will read most of the textbook in this course.

Other Useful Books

Prerequisites

To enroll in this course, you must have satisified the following course requirements. If you haven't done so but still want to remain in the course, please see me.

Topics

This course is a core requirement in undergraduate computer science curriculums at most colleges. Its purpose is threefold; first, to encourage you to investigate the nature of computation; second, to further develop your formal reasoning and writing skills; and third, to add new techniques to your programming bag of tricks.

Accordingly, we will develop several formal models of computation, each more powerful than the last. At each stage we will prove some of what our intuition suggests (and sometimes, what it denies) about these models. We will also see how most models admit two very different characterizations: one of machines that are able to recognize certain events, and another of grammars that are able to generate exactly what these machines recognize.

In particular, we will study regular languages, regular expressions, finite deterministic and nondeterministic automata, context-free grammars, pushdown automata, turing machines --- and more, if time allows.

Grading

The following breakdown is tentative but reasonably representative of how grades will be computed. I mentioned an optional project, but I haven't decided how to fit that into the scheme yet.

6 Homeworks    60%
Midterm        20%     Thursday, 10/24, 12:30-1:50pm
Final          20%     Tuesday, 12/17, 12:30-2:30 pm

Note that each test is worth 2 homeworks. The tests will be much simpler than the homeworks.

Homework Assignments

When writing up your homework, there are two goals you must keep in mind: first, to give evidence that you have put real thought into the problem, and second, to 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 must also be comprehensible to the grader.

As with any writing, the first draft of a problem 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.

Late Policy

In general, you will have at least one week to work on a homework assignment and three opportunities to attend my office hours before that assignment is due.

Assignments turned in during one of the two class periods following the due date will be graded at 60% of their face value. Assignments turned in later than that will receive no credit, but we'll still grade them for feedback purposes.

Collaboration and Plagiarism

col.lab.o.rate \k*-'lab-*-.ra-t\ \-.lab-*-'ra--sh*n\ \-'lab-*-.ra-t-iv\ 
   \-.ra-t-*r\ vi [LL collaboratus, pp. of collaborare to labor together, fr. 
   L com- + laborare to labor] 1: to work jointly with others esp. in an 
   intellectual endeavor 2: to cooperate with or assist usu. willingly an 
   enemy of one's country and esp. an occupying force 3: to cooperate with an 
   agency or instrumentality with which one is not immediately connected - 
   col.lab.o.ra.tion n

Collaboration is encouraged (primarily in the first and third senses) when working on homework problems and preparing for exams. None of the problems in this class are intended to have secret solutions; the more resourceful you are at discovering solutions, the more time you will have to write them well. Indeed, if you are stuck on a problem, I will be happy to talk with you about it during office hours. However, the solutions you turn in must be your original writing. Copying a prepared solution is not collaboration at all; it is plagiarism.

pla.gia.rize \'pla--j*-.ri-z also -je--*-\ vt : to steal and pass off as 
   one's own (the ideas or words of another) to present as one's own an idea 
   or product derived from an existing source - pla.gia.riz.er n

Plagiarizing another's words is not tolerated at Boston University. It is so disdained that there are specific procedures for accusing and punishing those who plagiarize. Do not copy another person's work and present it as your own.

(The above definitions were copied from the Webster server at BU.)

Attendance

Attendance is not an official part of the course grade, but it is your responsibility to stay informed. Some announcements will be made only in class. And, obviously, it's easier to learn things from a teacher than directly from the book. (Unless you hate the teacher.)

Mailing List

Other announcements will be made only by email. To add yourself to the course mailing list, log on to a CS cluster computer (such as csa) and type

    csmail -a cs305

The Atanasoff-Berry Computer (ABC) of 1939, claimed to be the first electronic digital computer. Photo courtesy of the History of Computing Page at Virginia Tech.


Prepared by David Martin. Click here for information on other courses.