20440 Automata Theory and Formal Languages 1
Credits: 4 intermediate credits in Computer Science
Prerequisites: none
Required: Introduction to Computer Science Using Java,2 Discrete Mathematics: Set Theory, Combinatorics and Graph Theory3
Recommended: Infinitesimal Calculus I, Linear Algebra I
Authors: Shmuel Zaks, Nissim Francez
This is one of a series of courses that introduces the theoretical foundations of Computer Science and discusses the mathematical problems on which Computer Science is based. It acquaints students with basic computational models, compares their computational power and discusses the basic families of formal languages.
Topics: Basic concepts; Deterministic finite automata; Non-deterministic finite automata; Regular expressions; Properties of regular languages; Algebraic characterization of regular languages; Grammars; Abstractions and normal forms of context-free grammars; Pushdown automata; Properties of context-free languages.
1There is some overlap in the content of this and other courses. For details, see Overlapping Courses.
2or both Introduction to Computer Science Using Java I (20453) and Introduction to Computer Science Using Java II (20454).
3or Discrete Mathematics: Set Theory, Combinatorics and Logic (20283), which is no longer offered.