CS 301 Languages and Automata

Spring 2019: Call no 40574 (MWF 12 noon in LC C3) and 17422 (MWF 2pm in LC F3)

Instructor: Ajay Kshemkalyani
Email: first name @ uic.edu
Class meeting times: MWF 12:00 - 12:50pm in LC C3 and MWF 2:00-2:50pm in LC F3
Office Hours (in 915 SEO): M,W 1:00 - 1:45pm

TAs:
Nazanin Azarhooshang, Email: nazarh2@uic.edu Office Hours (in TBH 190): T 9:00 - 11:00am
Deblina Roy, Email: droy7@uic.edu Office Hours (in TBH 190): W 10:00am - 12pm
David Shumway, Email: dshumw2@uic.edu Office Hours (in TBH 190): M 10:00 - 11:30am
Trishla Shah ( undergrad TA), Email: tshah28@uic.edu Office Hours (in CS Lounge): R 8:00 - 11:00am

Recitation section time: W 8:00-8:50am in TBH 180A; TA: Debalina Roy
Recitation section time: W 9:00-9:50am in TBH 180A; TA: Debalina Roy
Recitation section time: W 9:00-9:50am in TBH 180B; TA: David Shumway
Recitation section time: W 8:00-8:50am in TBH 180E; TA: Nazanin Azarhooshang
Recitation section time: W 9:00-9:50am in TBH 180D; TA: Nazanin Azarhooshang
The recitation section meetings will begin from the third week (W, Jan 30). We may occasionally skip it in some week.

CANCELLED: Jan 30 (Wed recitation) for students registered for room TBH 180A at 9:00am: please join the sections in room TBH 180B or TBH 180D

Textbooks and other Resources

Web page: Please read it regularly. All announcements will be made here, in addition to tracking the course progress during the semester.

Course Description

This course focuses on theoretical principles. You will not be programming in this course.
This course presents some of the most fundamental results in theoretical Computer Science. These results attempt to answer, in a precise mathematical sense, the following two questions, which are of practical as well as philosophical interest: We focus on problems rather than on specific algorithms for solving problems. To answer both questions mathematically, we need to start by formalizing the notion of "computer" or "machine". So the course outline breaks naturally into three parts:
  1. Models of computation (Automata Theory) (Sipser: Chapters 1, 2, 3)
  2. What can we compute? (Computability Theory) (Sipser: Chapters 4, 5)
  3. How efficient can we compute? (Complexity Theory) (Sipser: Chapters 7, 8)
The specific contents we plan to cover are as follows.
  1. Chapter 0: Introduction, mathematical notation, proof techniques
  2. Chapter 1: Deterministic finite automata (DFA), nondeterministic finite automata (NFA); RE=NFA, nonregular languages/RE pumping lemma
  3. Chapter 2: Context-free grammars (CFG), Chomsky normal form, all RL are CFG; Pushdown automata (PDA), Non-CF languages/CFL pumping lemma
  4. Chapter 3: Turing machines (TMs), TM decidable languages, TM recognizable languages, Equivalence between multitape TMs, Equivalence between nondeterministic TMs and other models, Church-Turing thesis
  5. Chapter 4: Decidable languages, decidability RL/PDAs/RE; Decidability CFLs/CFGs, Halting problem, counting/diagonalization; Undecidability of the Halting problem, TM unrecognizable languages
  6. Chapter 5: Computation histories, examples of undecidable languages; TM computable functions, mapping reducibility
  7. Chapter 7 (we will try to cover some sections from this chapter): Time-complexity, polynomial time (P), languages in P, Strong Church-Turing thesis; Nondeterministic polynomial time (NP), SAT; Polynomial time reductions, NP-completeness, 3SAT versus CLIQUE, Cook-Levin Theorem; Proof Cook-Levin theorem, NP-completeness of SAT and 3SAT, proving NP-completeness; NP-completeness of HAMPATH, SUBSET SUM
  8. Chapter 8 (we may not have time for this chapter): Space complexity, Savitch's theorem, PSPACE, PSPACE completeness, TQBF.

Tentative Course Progress Chart and Announcements (will be updated weekly)

  1. Week 1
  2. Week 2
  3. Week 3
  4. Week 4
  5. Week 5
  6. Week 6
  7. Week 7
  8. Week 8
  9. Week 9
  10. Week 10
  11. Week 11
  12. Week 12
  13. Week 13
  14. Week 14
  15. Week 15
  • (Final): MONDAY, MAY 6, 6-8pm, in LC C4 and LC C6
    Syllabus: Midterm 1 + Midterm 2 + Chapters 4, 5.1 till bottom of page 220, 5.3, 7.1-7.3, 7.4 upto page 304 + Linked documents under "Textbooks and Other Resources" section above.

    Course Requirements

    You are expected to be familiar with all the material covered in the lectures and in the relevant sections of the textbook. Attending lectures is highly advisable, because some of the lectures and homework problems will be drawn from material not in the text, and you will be responsible for this material. There will be several (say, 6 to 8) homework problem sets, two midterm tests, and a final exam.

    Grading

    Your final grade will be based on the sum of your problem set, midterms, and final exam scores. The following is only a TENTATIVE breakup of the evaluation scheme and is subject to changes as the course progresses. The full scale of grades ("A" - "F") will be used.

    Reading Assignments

    In general there will be no specific reading assignments. However, the relevant sections from the textbook will be pointed out in class. It is recommended that you make yourself familiar with the material prior to class, and it is a good strategy to read the pertinent sections again right after class to make sure you understand them.

    It is crucial that you continuously stay on top of the material, because every new topic and every new homework builds on previous results. If you don't understand the material at the beginning, it will be difficult to catch up later. Please do not wait until the last moment to do your homework -- start thinking about the problems on the day they are handed out!

    Homework Assignments

    1. Homeworks will usually be assigned on Mondays, and the solutions are due on the Monday of the next week, at 8:00am. You are welcome to turn in your homework earlier. I anticipate we will use Gradescope to turn in homeworks. Late homeworks will not be accepted, unless there is a valid serious reason, and that will incur a late penalty. In any case, late beyond 2 days, even if you have a valid excuse, is not acceptable and I expect the TAs may discuss the solutions in the recitation section on Wednesdays.
    2. The solutions to each homework should preferably be typed, (I encourage you to use Latex). Figures (automaton, etc.) can be drawn using JFLAP. You are on your own to learn/use this software.
    3. E-Mail submissions of homeworks are not acceptable.
    4. Messy and illegible solutions may not be graded.
    5. If a problem can be interpreted in more than one way, clearly state the assumptions under which you solve the problem.
    6. In writing your homework, you are allowed to consult any book or published material. If you do so, please cite the bibliographical data of your source(s). Simply copying a proof is not sufficient; you are expected to write it up in your own words, and you must be able to explain it if you are asked to do so. Your proofs may refer to course material covered earlier, and to previous homeworks. Except for this, all results you use must be proved explicitly.
    7. The graded homeworks will be returned within two weeks by the TA, and the solutions will be discussed during the discussion sections.
    8. If you have questions about the grading, please contact the TA.

    Examinations

    There will be two in-class mid-term exams during the normal lecture time. They are tentatively scheduled for March 1 and April 8.

    The mid-terms will be cumulative, but they will concentrate on new material. The final exam will be comprehensive.

    Academic Integrity

    The work you submit in this course must be the result of your individual effort. You may discuss homework problems and general proof strategies or algorithms with other students in the course, but you must not collaborate in the detailed development or actual writing of problem sets. This implies that one student should never have in his or her possession a copy of all or part of another student's homework. It is your responsibility to protect your work from unauthorized access. In writing up your homework you are allowed to use any book, paper, or published material. However, you are not allowed to ask others for specific solutions, either in person or by using electronic forums such as newsgroups. Of course, during the administration of exams any form of cooperation or help is forbidden.

    Any dishonest behavior will be severely penalized and may lead to failure in the course. Academic dishonesty has no place in a university; it is unfair to the majority of the students. Besides, a proper grounding in firm ethical behavior is essential to being a good citizen, and the university is probably the last institution that can instill these values before you step in to the real world as an independent contributor.