|
COURSE
SYLLABUS |
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:
- Text book: An Introduction to Formal languages and Automata, 5th Edition, Peter Linz, Publisher: Jones and Bartlett Learning, 2011, ISBN-13: 978-1449615529.
- Online course web page: available through Blackboard (http://campus.fsu.edu).
Computer accounts:
- You will need a computer account in the Computer Science department. Please follow the procedure outlined in http://www.cs.fsu.edu/sysinfo/newstudent.html to obtain an account, if you do not have one already.
- Class email will be sent to your FSU account (@fsu.edu). So please obtain an FSU account, if you do not have one already. If you use another email account (such as yahoo), then you must forward your FSU email to that account.
- The subject line in any email you send me should start with
COT 4420
.- You will need to use Blackboard (http://campus.fsu.edu).
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.
- Define terminology commonly used in the theory of computing.
- Describe common automata, grammars, and languages, such as deterministic finite automata, regular languages, context free grammars, and Turing machines.
- Develop automata and grammars for specific languages.
- Prove that certain problems cannot be solved by computers and prove that certain automata cannot be constructed for specific languages.
Your responsibilities:
Deadlines and InstructionsFollowing 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.
- Knowledge: Do you understand the terminology used? Given an automaton and its input, can you describe the steps carried out by the automaton and also its output?
- Understanding: If some aspect of an automaton were modified, can you analyze its impact on the language accepted by the automaton? If some aspect of an automaton were modified, can you prove or disprove its correctness? In order to answer these questions, you need to understand how each component of an automaton influences the language it accepts. After you learn about what an automaton does (and have, thus, acquired "knowledge"), it will be useful for you to think of different things that can be changed, and see how these will affect the correctness.
- Application: Given a real life, or artificial, problem, can you decide on suitable automata from those we have studied, to solve that problem?
- Creativity: Can you construct an automaton to accept some language that you are given? Can you prove the correctness of your automaton? Can you prove that specific problems are impossible for computers to solve?
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.
- Material turned in no more than 24 hours late will be scored with a 10% penalty.
- Material turned in no more than 48 hours late will be scored with a 20% penalty.
- Material turned in more than 48 hours late will receive the score of zero, though we will review it and comment on it.
Grade of 'I' Policy:
The grade of 'I' will be assigned only under the following exceptional circumstances:
- Due to an extended illness or other extraordinary circumstance, with appropriate documentation, the student is unable to participate in class for an extended period. In this case, arrangements must be made to make up the missed portion of the course prior to the end of the next semester.
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.
ADA: Students with disabilities needing academic accommodation should: (1) register with and provide documentation to the Student Disability Center, and (2) bring a letter to the instructor indicating the need for accommodation and what type. This should be done during the first week of class. This syllabus and other class materials are available in alternative format upon request. For more information about services available to FSU students with disabilities, contact:
Student Disability Resource Center
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.eduSYLLABUS 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