School of Electronic Engineering and Computer Science

ECS421U Automata and Formal Languages

Module code: ECS421U

Credits: 15
Semester: SEM2

Automata and languages are among the most fundamental concepts in Computer Science. Any device interacting with the outside world, whether a simple program or a complex system, requires well-defined input and output languages.

The aim of this module is to teach you different representations of languages, including grammars, which are crucial in programs reading input data. You will gain fluency in building new grammars, and analysing/understanding existing ones.

Topics covered include:

  • foundational concepts of computing, such as finite automata, regular languages, and grammars.
  • the connections and translations between these concepts, as well as their basic algorithms.
  • apply concepts in programming exercises to understand their use in computer programs.

By the end of the module you will be able to explain the relation between certain forms of finite automata and formal languages. You should understand what makes up a grammar and its language, how expressions are parsed, how to build a new grammar, and the central position of languages in computing.

Level: 4