CSCE 428/828: Automata, Computation and Formal Languages

Table of Contents

Meetings: MWF 12:30PM - 01:20PM, Avery 106 

Instructor: ThanhVu (Vu) Nguyen
Email: tnguyen at cse.unl.edu
Office Hours: M 4:00PM - 6:00PM, Avery 261

TA: Paul Quint
Email: pquint at cse.unl.edu
Office Hours: WF 2:30PM - 3:30PM, Student Resource center

Schedule (Tentative)

Topics Dates1 Assignments/Notes                
Syllabus / Ch.0: Introduction (1) Jan Read Ch.0                
Ch.1: Regular Languages (8) Jan-Feb Read Ch.1                
    Quiz 1 (sols) (in class, Jan 23 Mon)                
    HW1 (sols) (due in class, Feb 3 Fri)                
    HW2 (sols) (due in class, Feb 13 Mon)                
Midterm 1 (covers chapter 1) (1) Feb 20 Mon MT1 (sols)                
Ch.2: Context-Free Languages (8) Feb Read Ch.2                
                     
Project   DFA Simulation.                
    Due dates: Part 1, Fri 3/10 Fri and Part 2, Wed 4/19 Thurs                
Ch.3: Turing Machines (7) Feb - March Read Ch.3                
    TM Examples                
    Qui2 1 (sols) (in class, Feb 28 Mon)                
    HW3 (sols) (due in class, March 13 Mon)                
    HW4 (sols) (due in class, April 5 Wed)                
Midterm 2 (covers chapters 2 and 3) (1) April 10 Mon MT2 (sols)                
Ch.4: Decidability (6) Mar - April Read Ch.4                
                     
Ch.5: Reducibility (7) Apr Read Ch.5                
    HW5 (sols) (due in class, April 24 Mon)                
Final Exam (covers everything) (1) May ??                  
                     

Note: no regular classes on these days

  • 1/16: MLK day
  • 3/20 - 3/24: Spring break
  • 4/24 - 4/28: I'll be out of town so we will have guest lectures.

Syllabus

This class covers fundamental topics in computer theory including automata, languages, Turing machines, and other models of computation. We will also learn about decidable and undecidable classes of problems in computation complexity.

Note: the prerequisites are (1) Data Structure and Algorithms (CSCE 310) or equivalent and (2) Introduction to Discrete Structures (CSCE 235) or equivalent.

Textbook

Introduction to the Theory of Computation, 3rd edition, 2012, by Michael Sipser.

This book presents two fundamental problems of computer science: (1) computability theory: problems that are solvable using different models of computations and (2) complexity theory: the time and space required to solve a problem. We will focus on the computability theory in this course (complexity is covered in CSCE 423/823 and CSCE 424/824).

Specifically, we will cover the following chapters in the textbook:

Chapter 0 Introduction
Chapter 1 Regular Languages
Chapter 2 Context-Free Languages
Chapter 3 The Church-Turing Thesis
Chapter 4 Decidability
Chapter 5 Reducibility
Chapter 6 Advanced Topics (depending on the progress)

Important: reading the textbook is mandatory. You should do the reading assignments before class. This gives you ideas on what the lecture will be about and helps you understand better.

Assignments and Grading

  Percent
Homework 25
Project 5
Quiz 5
Midterm 1 20
Midterm 2 20
Final 25
Total 100

Homework

  • All homework assignments (except perhaps figures) must be typed and printed out. I strongly recommend you to learn and use LaTeX for all assignments.
  • You can work with others. But you must clearly state the people you work with, cite all sources (e.g., materials found online), and write your own solutions.
  • Your hws (and test) answers should have these properties:
    • Clarity: If we can't follow, we can't grade. Also, start every problem on a new page.
    • Completeness: show all sufficient intermediate steps leading to the final answer. We want to understand how you solve the problem and to give you partial credits.
    • Succinctness: long enough to convey your ideas, but short enough to be digested quickly. Clearly indicate your final answer (circle, underline, etc).
  • No late homework

Project

  • One project.
  • For programming, you can use any language as long as it can be run on the department server cse.unl.edu.
  • Individual project. You must work on every project by yourself.
  • No late project

Quizzes

  • Some unannounced, in-class pop quizzes.
  • Most quizzes are based on the textbook reading (i.e., make sure you understand important definitions and the examples in the text).
  • No book/note/laptop/ipad/cellphone/calculator.
  • No make-up quiz. If you have a valid excuse (e.g., illness with a doctor's note, job interview, attending conference, military service), your quiz score will be replaced by your final exam score.

Midterms

  • Two in-class midterm exams:
    • Midterm 1 covers Chapter 1
    • Midterm 2 covers Chapters 2 and 3
  • The exact exam date will be announced at least one week before an exam.
  • All exams are open book and open notes. But no laptop/ipad/cellphone/calculator.
  • No makeup midterm exam. If you have a valid excuse, your exam score will be replaced by your final exam score.

Final

  • Accumulative, and covers everything from the first class to the last class.
  • Open book and open notes. But no laptop/ipad/cellphone/calculator.
  • If you need a makeup exam for the final exam for a valid reason, send me your request in writing as early as possible.

Scale

For CSCE428 students, letter grades will be assigned based on the following scale:

A+ ≥ 96% A ≥ 92% A- ≥ 89%    
B+ ≥ 86% B ≥ 82% B- ≥ 79%    
C+ ≥ 76% C ≥ 72% C- ≥ 69%    
D+ ≥ 66% D ≥ 62% D- ≥ 60% F < 60%

For CSCE828 students, letter grades will be assigned based on the following scale:

A+ ≥ 97% A ≥ 93% A- ≥ 90%    
B+ ≥ 87% B ≥ 83% B- ≥ 80%    
C+ ≥ 77% C ≥ 73% C- ≥ 70%    
D+ ≥ 67% D ≥ 63% D- ≥ 60% F < 60%

Useful links

  • JFLAP: a graphical tool to learn about formal languages and automata.

Research

Your class work might be used for research purposes. For example, we may use anonymized student assignments to design algorithms or build tools to help programmers. Any student who wishes to opt out can contact the instructor or TA to do so after final grades have been issued. This has no impact on your grade in any manner.

Students interested in considering undergraduate or graduate research should make an appointment to talk about it. I am happy to discuss independent study projects, senior theses, paid research work over the summer, research work for credit, and graduate school.

Additional Information

  1. It is CSE Department policy that all students in CSE courses are expected to regularly check their email so they do not miss important announcements.
  2. All homework assignments, quizzes, exams, etc. must be your own work. No direct collaboration with fellow students, past or current, is allowed unless otherwise stated. The Computer Science & Engineering department has an Academic Integrity Policy. All students enrolled in any computer science course are bound by this policy. You are expected to read, understand, and follow this policy. Violations will be dealt with on a case by case basis and may result in a failing assignment or a failing grade for the course itself.
  3. The CSE Department has an anonymous contact form that you may use to voice your concerns about any problems in the course or department if you do not wish to be identified.
  4. Consider the Student Resource Center in Avery 12 for additional help (e.g., TA's, tutorings, etc)
  5. Students with disabilities are encouraged to contact the instructor for a confidential discussion of their individual needs for academic accommodation. It is the policy of the University of Nebraska-Lincoln to provide flexible and individualized accommodations to students with documented disabilities that may affect their ability to fully participate in course activities or to meet course requirements. To receive accommodation services, students must be registered with the Services for Students with Disabilities (SSD) office, 132 Canfield Administration, 472-3787 voice or TTY.

Acknowledgements

Thanks Lisong Xu and Westley Weimer for letting me reuse and adapt course materials from their courses.

Footnotes:

1

(n) is the number of days we plan to spend on the topic.