Objectives. The objective of the Formal Languages course is to introduce and study the basic abstract models of computation, namely finite state machines, push down machines, and formal grammars, and their relationships to formal languages encoding problems. It is also discussed how the abstract computing devices are used to process languages, and hence to solve problems that are of practical relevance. A second objective is to get the student acquainted to a formal, rigorous approach in computer science.
Prerequisites. There are no prerequisites in terms of courses to attend. Students should be familiar with the basic notions of mathematics and set theory as taught in the mathematics courses of the first year.
Teaching material
[M1] Introduction to Automata Theory, Languages, and Computation (3rd edition). J.E. Hopcroft, R. Motwani, J.D. Ullman. Addison Wesley, 2007.Further reading material for interested students
[M2] Lecture Notes for Formal Languages. Diego Calvanese. 2008. Available on the course web page as scanned pages in pdf.
See also RIS
calendar for changes.