Acquis d'apprentissage visés
- Master the fundamental paradigms of programming, languages, and algorithms to design and develop applications for any type of environment.
- Identify and classify problems according to their complexity (P, NP, NP-complete) and select appropriate algorithmic strategies.
Prérequis
System and Network modules and Development modules from previous semesters.
Programme
- Foundations (Alphabet, word, language, Chomsky hierarchy, finite automata, etc.) and regular languages
- Context-free languages (Context-free grammars, pushdown automata, etc.), lexical and syntactic analysis
- Computability and complexity (Turing machines, undecidability and complexity, etc.)
Modalités d'évaluation
At least two continuous assessments, practical work, and a project.
Bibliographie
"Michael Sipser — Introduction to the Theory of Computation — Cengage Learning John Hopcroft — Introduction to Automata Theory, Languages, and Computation — Pearson"
Supports
Slides, directed work sheets, and practical work sheets.