# CSCE 428/828: Automata, Computation and Formal Languages

## Table of Contents

Meetings: MWF 12:30PM - 01:20PM, Avery 19 Instructor: ThanhVu (Vu) Nguyen Email: tnguyen at cse.unl.edu Office Hours: Thurs 2:00PM - 4:00PM, Avery 261 TA: Paul Quint Email: pquint at cse.unl.edu Office Hours: MW 3:30PM - 4:30PM, Student Resource center

### Catalog Description

Introduction to the classical theory of computer science. Finite state automata and regular languages, minimization of automata. Context free languages and pushdown automata, Turing machines and other models of computation, undecidable problems, introduction to computational complexity.

### Course Objectives

- Mastery of theory of finite state machines and grammars.
- Familiarity with decidability problems, proofs by reduction, limits of computability.
- Exposure to a couple advanced topics such as recursion theorem, information theory.

### Prerequisites

- Data Structure and Algorithms (CSCE 310) or equivalent
- Introduction to Discrete Structures (CSCE 235) or equivalent.

### Textbook

Introduction to the Theory of Computation, 3^{rd} 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. Otherwise 10% penalty. I*strongly*recommend you to learn and use LaTeX for all assignments. - All homework assignments must be submitted as pdfs on Canvas.
- Late homework is penalized 10% per day. No homework will be accepted 2 days after the due date.

- 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).

#### Project

- One project.
- Late project is penalized 10% per day. No project will be accepted 2 days after the due date.
- Individual project. You must work on every project by yourself. For project, you cannot copy from somewhere (e.g., Internet, friends etc).
- For programming, you can use any language as long as it can be run on the department server
`cse.unl.edu`

.

#### 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).
- Open book and open notes. But no 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.
**No book/laptop/ipad/cellphone/calculator**. You are allowed to use 1 cheat sheet (2-sided,**handwritten only**).**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.
**No book/laptop/ipad/cellphone/calculator**. You are allowed to use 1 cheat sheet (2-sided,**handwritten only**).- 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

- 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.
- 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.
- 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.
- Consider the Student Resource Center in Avery 12 for additional help (e.g., TA's, tutorings, etc)
- 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.