Course: Formal Languages and Automata

« Back
Course title Formal Languages and Automata
Course code KMI/FJ
Organizational form of instruction Lecture + Exercise
Level of course Bachelor
Year of study 1
Semester Summer
Number of ECTS credits 6
Language of instruction Czech
Status of course Compulsory, Compulsory-optional
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Masopust Tomáš, doc. RNDr. Ph.D., DSc.
  • Balun Jiří, Mgr.
Course content
Basic notions: formal language, hierarchy of grammars and languages. Finite automata: deterministic and nondeterministic finite automata, their extension, mutual relationship, and applications. Regular grammars and languages: relationship to finite automata, closure properties of regular languages, criteria of regularity, minimization of automata. Regular expressions and their applications: standard and extended regular expressions, application for text processing, selected topics. Context-free languages: definition and properties, derivation trees, properties of context-free languages and their relationship to regular languages Pushdown automata: variants, relationship to context-free languages, top-down syntactic analysis, bottom-up syntactic analysis, deterministic pushdown automata.

Learning activities and teaching methods
Lecture, Demonstration
  • Preparation for the Course Credit - 10 hours per semester
  • Preparation for the Exam - 35 hours per semester
Learning outcomes
The students become familiar with basic concepts of formal languages.
1. Knowledge Describe basic generative and analytical formalisms for languages.
Prerequisites
unspecified

Assessment methods and criteria
Oral exam, Written exam

Active participation in class. Completion of assigned homeworks. Passing the oral (or written) exam.
Recommended literature
  • Hopcroft J. E., Motwani R., Ullman J. D. (2006). Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Boston.
  • LAWSON. (2003). Finite Automata. Chapman & Hall/CRC.
  • Linz, P. (2016). An Introduction to Formal Languages and Automata. Jones and Bartlett Publishers, Inc.
  • Melichar, B. (2003). Jazyky a překlady. Skriptum, přepracované 2. vydání. Vydavatelství ČVUT, Praha.
  • Simovici D. A., Tenney R. L. (1999). Theory of Formal Languages with Applications. World Scientific, Singapore.
  • Sipser M. (1997). Introduction to the Theory of Computation. PWS Publishing Company, Boston, MA.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester
Faculty: Faculty of Science Study plan (Version): Bioinformatics (2021) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Summer
Faculty: Faculty of Science Study plan (Version): Mathematics (2023) Category: Mathematics courses 1 Recommended year of study:1, Recommended semester: Summer
Faculty: Faculty of Science Study plan (Version): Computer Science (2020) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Summer
Faculty: Faculty of Science Study plan (Version): Computer Science - Specialization in Programming and Software Development (2021) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Summer
Faculty: Faculty of Science Study plan (Version): Computer Science for Education (2024) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Summer
Faculty: Faculty of Science Study plan (Version): Computer Science - Specialization in General Computer Science (2021) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Summer