[UMN logo]

CSci 4011: Formal Languages and Automata Theory
Fall 2008


Exam Dates and Times

First Mid Term: October 2, 2008, 2:30 -- 3:45 p.m.

Second Mid Term: November 6, 2008, 2:30 -- 3:45 p.m.

Final Exam: December 17, 2008, 1:30 -- 3:30 p.m.


News Flash: Online discussion using Phorum

New Information

      11/25/2008

      11/20/2008

      11/14/2008

      Earlier items (before 10/29/2008)


Table of Contents


Contact Information


Course Prerequisites

The formal prerequisite for this course are CSci 1902 and 2011. The way to understand these prerequisites is as follows. We will look abstractly at the idea of computation in this course and for you to feel comfortable with such discussions it will be useful and necessary to have exposure to programming, the ideas of procedural and data abstraction and an understanding of recursion as you may get from CSci 1902. The course will also have significant mathematical content. To be at home with this kind of discussion, you need to have already seen topics in discrete structures, to understand the basics of functions, relations, graphs, etc and also know what is meant by a proof. This is the kind of exposure you get from CSci 2011. This second requirement is quite fundamental. Ascertain that you have a complete grip on the kind of material you find in Chapter 0 of the text as soon as is possible. If this material is not easy pickings for you already, you will likely have trouble with this course as the term progresses.


Course Text

We will follow the required text Introduction to the Theory of Computation by Michael Sipser (ISBN 0-534-95097) closely. Note that this is a new, second edition of the book.


Course Description and Objectives

This course is intended to provide an exposure broadly to two topics. First, we will try to understand what is meant by the notion of computability. Second, we will try to characterize what is meant by complexity in this context, i.e. how we can categorize specific computations as possibly being more or less difficult than others. The idea of computability is usually understood by describing an abstract model of a machine or computer and then analyzing what can or cannot be done by a machine so described. There is actually a hierarchy of machine models with increasing capabilities that have been found useful abstractly in understanding computability and practically in solving specific problems within Computer Science. We will spend time understanding these different models. These models have associated with them classes of formal languages that themselves are quite useful. As specific examples, we have regular languages that underlie regular expressions that you may have used in string based searching within editors or at the command level in a Unix system and context-free languages that are used to characterize the syntax of programming languages and to build parsers for them. We will spend time understanding these languages and their properties as well.


Syllabus

We will follow the text closely. As you will see from the table of contents, the book has three parts: Automata and Languages, Computability Theory and Complexity Theory. The plan is to cover the first two parts completely. For the third part, we intend to cover at least the topic of time complexity in some depth. The other topics will be discussed as time permits.

Concretely, the above comments mean that we will cover at least Chapters 1-7 in detail in the course and the later chapters only to the extent time permits.


Required Work and Grading

Readings will be assigned periodically from the text. The lectures will cover the important aspects of the topics assigned but it will of course be impossible to discuss every little detail that appears in the text. The expectation will be that you will familiarize yourselves with these on your own and will ask questions as needed to complete your understanding; these questions may be asked during lectures, recitations, office hours or on the appropriate Phorum bulletin board. When deciding on the medium to use to get your question addressed, please also think of the best one to use. Some questions are of general interest and posting them to one of the Phorum bulletin boards can elicit a quicker response and may also clear up collective doubts efficiently.

Note that questions on any part of the assigned reading, and not just on what is discussed in class, will be fair game in exams and homeworks.

Half the grade for the course will be determined by homework assignments and the other half by exams.

Homework assignments will be given roughly every other week. These must be completed and turned in on the due date before the start of class. Late homeworks will, in general, not be accepted. The weightage for each homework will be determined towards the end of the term, depending on the relative difficulty of each. While each homework will contribute a specific amount to the final grade, you are expected to turn in all of them and exhibit reasonable effort on each to obtain a passing grade in the course.

There will be three exams, two mid terms and a final. The mid term exams are scheduled for October 2, 2008 and November 6, 2008, respectively. The final exam will take place on December 17, 2008 from 1:30 to 3:30 p.m. Each mid term will count for 15% and the final will count for 20% of the overall grade. Please note the times for these exams in your calendar right away: there will be no make-up dates for missed exams. The conversion of the weighted aggregate of scores in homeworks and exams into a letter grade will not be based on an absolute scale but on overall class performance. This is not intended to put you in competition with each other but, rather, to allow for interesting questions and for a scaling if some of these turn out to be too difficult for the class as a whole.

Homeworks and exams will generally have mathematical content. Clarity of presentation, mathematical precision and conciseness of expression are aspects that will be important in the grading of such work. Please be certain to understand what is meant by mathematical precision from the very beginning of the course. For instance, as the book explains on page 17, evidence plays no role in a mathematical proof and what is required is in fact a demonstration beyond any doubt. Please realize that if you are penalized for lack of precision in your work, then this will not be because the TA or the instructor want to be whimsical but, rather, because they will be failing in their teaching responsibility if they do not do this. In addition to exposing you to new technical material, one of the goals of this course is to give you practice with the lessons concerning mathematical arguments that you would have learned in CSci 2011.

You are encouraged to participate in discussions, both in class and using Phorum. While no specific role is assigned to this in grade determination, it could have an intangible effect, such as in settling borderline cases.

And a word about collaboration and outside help. Insofar as this serves in improving your understanding of the course material, it is actually encouraged. However, you are expected to do all the work that counts towards your grade completely independently.

Finally some comments on the spirit with which to approach this course. You will be learning new things in it that may be challenging because they are somewhat abstract but that will, nevertheless, be useful to many practical things you will want to do later in Computer Science. You may feel diffident at times about grappling with such material---all of us have an initial desire to stay with conceptually easy and familiar things---but be assured that the effort that you put into learning the things in this course will be rewarded in the end. When it comes to dealing with abstract material, pay special heed to what the text says on page 18. Our understanding of such material is eventually grounded in concrete things, so always look for examples to understand definitions, get a gut level feeling for why something has to be true before trying to prove it or even accepting someone else's proof for it, etc. Make sure to challenge the TA and the instructor on these kinds of points where relevant. Remember that they are there to help you in the learning process and that any question that you might have is a real question. Of course, you should also be responsible in this process. In particular, you must spend effort trying to understand the topic concerned yourself before you ask for help; otherwise the help will not be very useful to you and you may also be wasting class time.


Academic Honesty

At the outset, I encourage all of you to discuss material in the course with each other. Using Phorum will be a great way to do this. Discussions of this sort benefit everyone: it can clear up bottlenecks in understanding and explaining things to others also sharpens your own understanding.

This being said, I expect the work that each of you turn in for a grade to be representative of your independent thinking. You may discuss assignments with each other to the extent that this clarifies your understanding of what is being asked, but this discussion must stop before it gets anywhere near the details of a solution. If you need help at this point, you should seek this from me or the TAs and we can decide what is and is not appropriate. In a similar vein, it is not acceptable to simply reproduce solutions to problems that you obtain from someone outside of class.

There will be penalties for breaches of this policy, ranging from no credit for the work in question to a failing grade in the course. On a more personal note, this kind of dishonesty interferes seriously with your own ability to learn and so there is no benefit to it in the long run.

One final comment on a related point. For those of you who seem to be understanding the material in the course well and are enthused by this, I would like to encourage your being helpful to others. However, please be aware that there is a point beyond which such help can become detrimental to someone else's learning. As one specific example, when you respond to queries on Phorum, give thought to whether or not you will be letting out solutions to problems that your colleagues should have a chance to think through for themselves. The TAs and I will try to monitor such aspects too but,without your help and cooperation, it will become difficult to do this effectively.


Last modified: August 27, 2008. Page maintained by gopalan atsign cs dot umn dot edu.