This course aims to provide students with a fundamental understanding of formal languages, automata theory, and their applications in computer science and related fields. Here are the objectives of this course:
- Understand the concept of formal languages, including regular languages, context-free languages, and context-sensitive languages
- Identify different formal language classes and their relationships.
- Understand regular languages and their properties.
- Learn to work with regular expressions for pattern matching and text processing.
- Design grammars and recognizers for different formal languages.
- Learn how to define and represent formal languages using formal grammars.
- Study finite automata, pushdown automata, and Turing machines as computational models.
- Explore the relationships between different types of automata and the languages they recognize.
- Teacher: Aida Lahouij