FSU Seal

    COURSE SYLLABUS

    CGS 5429/COT 4420
    Theory of Computation

    Spring 2014


Prerequisites:

MAD 3105: Discrete Math II. This pre-requisite will not be waived. You will also need to write some simple programs and have basic familiarity working in a Unix/Linux environment.

Class Schedule:

Activity Day Time Location
Lecture MWF 9:05 am - 9:55 am LOV 103

Contact information:

Instructor: Ashok Srinivasan
Office hours: M 10 am - 11am, W 11 am - 12 noon. I am also usually available in my office, and you can feel free to meet me when I am there. Alternatively, you may schedule an appointment, either by email or by phone.
Office: 169, Love Building
Phone: 644-0559
Email: asriniva AT cs.fsu.edu

Course material:

Required Material:
Computer accounts:

Course rationale:

Computers have changed much over their short history and we can expect similar, rapid, evolution in the future. You would also have used a variety of computers and programming languages in the course of your undergraduate studies. You may have found certain systems more convenient to use than others. However, is there any inherent difference in the capability of these computers? Can current computers solve problems which were impossible to solve on earlier computers? If past trends continue, then will computers of the future be able to solve problems which are impossible on current computers. We will study abstract models for computers and see that computers of the future and past are equivalent in their inherent capabilities. These models will enable us to discover inherent capabilities and limitations of computers. You will get an understanding of the underlying unity behind the diversity of computers and programming environments.

Course description:

From a mathematical perspective, limitations on the inherent capability of computers arise from the fact that there are fewer programs than there are problems we would like to solve. Of course, there are an infinite number of programs, but it turns out that infinity comes in different sizes, and the number of programs is a smaller sized infinity than the number of problems we wish to solve. We will start out with a counting argument to show inherent limitations on computers, and end up with examples of specific problems that computers cannot solve. In order to accomplish this, we will need a formal model of what a computer is. We will start out with simpler models, with limited power, and progress to models with greater power. We will first discuss deterministic automata, which are equivalent to regular expressions, which you may have used with Unix utilities, such as grep. We will then progress to Context Free Languages, and then conclude with Turing machines. The latter model the power of real computers.

Learning objectives:

At the end of this course, you should be able to accomplish the objectives given below.

Your responsibilities:

Deadlines and Instructions

Following the same professional guidelines that you will encounter at work, there are strict deadlines, and instructions that must be followed. Please read instructions carefully, and schedule your activities so that you submit assignments well in time. You should check your FSU email account and the class web page regularly, and note other announcements, on-line and in class.

Class Participation, Reading Assignments, and Review Questions

After each lecture, you will be given a reading assignment pertaining to that lecture. If you learn only the material discussed during the lecture, then you will likely fail the course. You should learn material from the reading assignment. You will also be given review questions related to the reading assignment. You need to turn in a hardcopy of your answers to these questions at the beginning of the next lecture. This will count toward your class participation grade, as will other activities, such as offering insightful comments in class or on the discussion board on blackboard.

Note that new material builds on the old ones. So, if you have trouble with some material, please get help through the discussion board on Blackboard, or from me, before the next class. I expect that you will need to spend between one and two hours studying, for each lecture.

The following learning components are important, and you may want to verify if you do satisfactorily on these, after studying the material.

Assignments

You will have three major homework assignments. The assignments will be announced on the Blackboard course web site under the "Assignments" tab. They will primarily be theoretical, but may involve some programming components too. A hardcopy of the theoretical component needs to be submitted at the beginning of class on the date due. A tar file of the programming component needs to be submitted on blackboard by end of day on the date due. The assignments may be more difficult than what you are used to, and require substantially more time and effort. Please start working on the assignments as soon as they are announced, if you wish to complete them on time!

Course calendar:

Week Lecture Lecture topics Assignments
1 6 Jan 1. Introduction
8 Jan 2. Mathematical preliminaries: section 1.1
10 Jan 3. Languages, grammars, and automata: section 1.2, 1.3
2 13 Jan 4. Deterministic finite acceptors: section 2.1
15 Jan 5. Nondeterministic finite acceptors: section 2.2
17 Jan 6. Equivalence of DFA and NFA: section 2.3
3 20 Jan No class - Martin Luther King Day
22 Jan 7. Regular expressions and languages: section 3.1, 3.2
24 Jan 8. Regular grammars: section 3.3
4 27 Jan 9. Regular grammars: section 3.3 Assignment 1 announced Jan 27
29 Jan 10. Closure properties of regular languages: section 4.1
31 Jan 11. Elementary questions about regular languages: section 4.2
5 3 Feb 12. Identifying nonregular languages: section 4.3 Assignment 1 due Feb 3
5 Feb 13. Identifying nonregular languages: section 4.3
7 Feb Midterm 1 review
6 10 Feb Midterm 1
12 Feb 14. Context free languages: chapter 5
14 Feb 15. Context free languages: chapter 5
7 17 Feb 16. Simplification of context free grammars: chapter 6
19 Feb 17. Simplification of context free grammars: chapter 6
21 Feb 18. Nondeterministic pushdown automata: section 7.1
8 24 Feb 19. Pushdown automata and context free languages: section 7.2 Assignment 2 announced Feb 28
26 Feb 20. Deterministic pushdown automata: section 7.3
28 Feb 21. Two pumping lemmas: section 8.1
9 3 Mar 22. Two pumping lemmas: section 8.1 Assignment 2 due Mar 7
5 Mar 23. Closure properties for context free languages: section 8.2
7 Mar 24. The standard Turing machine: section 9.1
10 10 Mar Spring Break
12 Mar Spring Break
14 Mar Spring Break
11 17 Mar 25. The standard Turing machine: section 9.1
19 Mar 26. Combining Turing machines and Turing's thesis: section 9.2, 9.3
21 Jan Midterm 2 review
12 24 Mar Midterm 2
26 Mar 27. Variations on Turing machines: section 10.1, 10.2
28 Mar 28. Nondeterministic Turing machines: section 10.3
13 31 Mar 29. A universal Turing machine: section 10.4
2 Apr 30. A universal Turing machine: section 10.4
4 Apr 31. Linear bounded automata: section 10.5
14 7 Apr 32. Recursive and recursively enumerable languages: section 11.1
9 Apr 33. The Chomsky hierarchy: section 11.4
11 Apr 34. Problems that cannot be solved by Turing machines: section 12.1
15 14 Apr 35. Efficiency of computation: section 14.1, 14.2 Assignment 3 announced Apr 14
16 Apr 36. Complexity classes: section 14.3, 14.4
18 Apr 37. Some NP problems: section 14.5
16 21 Apr 38. Polynomial time reductions: section 14.6 Assignment 3 due Apr 21
23 Apr 39. NP completeness: section 14.7
25 Apr Final exam review
2 May 7:30 am Final Exam

Grading criteria:

Your overall grade will be based on your performance on (i) exams - two midterms and a final, (ii) class participation and review questions, and (iii) three homework assignments, with weights as given in Table 1.

Your weighted average on the exams should be at least 70% for you to get a course grade of C or better. If you meet this constraint, then the final grade will be determined using Table 2.

    Table 1: Course Points
    Item Weight
    Midterms 2x15 = 30
    Final 30
    Class participation and review questions 10
    Homework assignments 3x10 = 30
    Table 2: Letter Grades
    Points Grade
    92.0 - 100.0 A
    90.0 - 91.9 A-
    88.0 - 89.9 B+
    82.0 - 87.9 B
    80.0 - 81.9 B-
    78.0 - 79.9 C+
    72.0 - 77.9 C
    70.0 - 71.9 C-
    0 - 69.9 F

NOTE: Your weighted average on the exams should be at least 70% for you to get a course grade of C or better. For example, if you obtain a total of 79%, but exam average of only 65%, then you will not get a C+. Instead, you will get a C-, because that is the highest grade for which you will be eligible without meeting the exam cutoff.

Homework Assignment Assessment

You must understand your assignment work. If you are asked to explain your work, and you are unable to do so, you may be assigned a grade of zero.

Course policies:

Attendance Policy:

The university requires attendance in all classes, and it is also important to your learning. The attendance record may be provided to deans who request it. If your grade is just a little below the cutoff for a higher grade, your attendance will be one of the factors that we consider, in deciding whether to "bump" you up to the higher grade. Three or fewer unexcused absences will be considered good attendance.

Excused absences include documented illness, deaths in the immediate family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. Accommodations for these excused absences will be made and will do so in a way that does not penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.

You should let me know in advance, when possible, and submit your documentation. You should make up for any materials missed due to absences.

Missed exam Policy:

A missed exam will be recorded as a grade of zero. We will follow the university rules regarding missed final exams (see http://registrar.fsu.edu/dir_class/spring/exam_schedule.htm), for the midterms too.

Late Submission Policy:

In order to enable us to provide timely solutions to assignments, we have the following policy regarding late submissions. Late submissions will incur the following penalties.

Grade of 'I' Policy:

The grade of 'I' will be assigned only under the following exceptional circumstances:

Professional ethics:

You will gain confidence in your ability only when you do the work yourself. On the other hand, one does learn a lot through discussions with ones peers. In order to balance these two goals, I give below a list of things that you may, and may not, do.

Things you may not do: You should not discuss theoretical components of the homework with others until after the assignments have been submitted. You should not copy code from others. This includes directly copying the files, replacing variable names in their code with different names, altering indentation, or making other modifications to others' code, and submitting it as your own. (You may also wish to note that many of the modifications that make codes look very different in a higher level language, yield lower level representations that are very close, and are hence easy to detect.) Furthermore, you should take steps to ensure that others cannot copy code from you -- in particular, you should have all permissions on assignment files and directories set off for others.

Things you may do: You may discuss specific problems related to use of the computer, useful utilities, and some good programming practices, with others. For example, you may ask others about how to submit your homework, or how to use the debugger or text editor.

Honor Code: The Florida State University Academic Honor Policy outlines the University's expectations for the integrity of students' academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process. Students are responsible for reading the Academic Honor Policy and for living up to their pledge to be honest and truthful and [to] strive for personal and institutional integrity at Florida State University. (Florida State University Academic Honor Policy can be found at academichonor.fsu.edu/policy/policy.html.)

Plagiarism:

Plagiarism is "representing another's work or any part thereof, be it published or unpublished, as ones own. For example, plagiarism includes failure to use quotation marks or other conventional markings around material quoted from any source" (Florida State University General Bulletin 1998-1999, p. 69). Failure to document material properly, that is, to indicate that the material came from another source, is also considered a form of plagiarism. Copying someone else's program, and turning it in as if it were your own work, is also considered plagiarism.

SYLLABUS CHANGE POLICY:

Except for changes that substantially affect implementation of the evaluation (grading) statement, this syllabus is a guide for the course and is subject to change with advance notice.


Last modified: 15 Apr 2014