# Syllabus

This is a basic course on Automata Theory and Formal Languages ​​aimed at students of the Computer Science Degree . The common competences of the course to Computer Science are to acquire the knowledge and application of basic algorithms and procedures of Computer Science to design solutions to problems, and analyze the suitability and complexity of the proposed algorithms. The course is also focused on the application of basic techniques and principles of intelligent systems and their practical application.

UNIT 1. Introduction to the Theory of Automata and Formal Languages
1.1. Why study Automata Theory. History and origins
1.2. Relationship with others areas of knowledge
1.3. Machines, Languages and Algorithms

UNIT 2. Automata Theory
2.1. Introduction and Definitions
2.2. Mathematical model of an automaton
2.3. Automata and algorithms
2.4. Discrete, continuous, and hybrid automata. Classes of automata
2.5. Formal Languages: Introduction and Definitions
2.6. Operations with words. Operations with languages

UNIT 3. Finite Automata
3.1. Definition and Representation of Deterministic Finite Automata (DFA)
3.2. DFA as recognition devices
3.3. Equivalence and minimization of DFAs
3.4. Theorems of DFAs
3.5. Definition and Representation of Nondeterministic Finite Automata (NFA)
3.6. The Language of a NFA
3.7. Equivalence of DFAs and NFAs

UNIT 4. Languages and Formal Grammars
4.1. Operations with languages. Derivations
4.2. Concept of grammar. Formal grammar
4.3. Chomsky Hierarchy and equivalent grammars
4.4. Context-free grammars
4.5. Language of a context-free grammar. Parse Trees
4.6. Well-formed grammars
4.7. Chomsky Normal Form. Greibach Normal Form

UNIT 5. Regular Languages
5.1. Definition of regular languages
5.2. DFA for a regular grammar
5.3. Equivalence of regular expressions
5.4. Kleene's Theorem
5.5. Characteristic equations
5.6. Synthesis Problem: Recursive algorithm
5.7. Derivatives of regular expressions

UNIT 6. Pushdown Automata
6.1. Definition of Pushdown Automata (PDA)
6.2. Transitions, Movement and Instantaneous Description in PDA
6.3. Acceptance by Empty Stack. Acceptance by Final State
6.4. Language Accepted by a PDA
6.5. Equivalence of PDA by Empty Stack and PDA by Final State
6.6. From Context-Free Grammar to Push-Down Automata
6.7. From Pushdown Automata to Context-Free Grammar

UNIT 7. Turing Machine
7.1. Definition of a Turing Machine
7.2. Variations of Turing Machines
7.3. Universal Turing Machine

UNIT 8. Computational Complexity
8.1. Complexity Theory
8.2. Complexity of algorithms
8.3. P versus NP problems
8.4. Defining complexity classes
8.5. Time complexity
8.6. Hierarchy theorems
8.7. Non-computational problems
8.8. Limits of Computability

Citation: BARRES, D. G., MIGUEL, A. S. D., LORENTE, M. P. S., ESPINO, A. L., WEBER, J. M. A. (2007, October 29). Syllabus. Retrieved December 15, 2019, from OCW - UC3M Web site: http://ocw.uc3m.es/ingenieria-informatica/formal-languages-and-automata-theory/syllabus.
Copyright 2015, UC3M. This work is licensed under a Creative Commons License. 