← Back to Teaching

Undergraduate · NUST

CS-352 — Theory of Automata and Formal Languages

The mathematical foundations of computation — finite automata, formal languages, and the limits of what machines can decide.

Credit hours: 3
Prerequisite Course(s): Discrete Structures
Office hours: By appointment

Course Description

This course introduces the formal models used to describe computation and language: finite automata and regular languages, regular expressions, context-free grammars and pushdown automata, and Turing machines as a model of general computation. Students learn to construct and minimize automata, prove properties of languages using tools such as the pumping lemma, and understand the boundary between decidable and undecidable problems.

These foundations underpin much of computer science — compiler design, formal verification, parsing, and complexity theory all build directly on the models introduced in this course.

Course Outcomes / Objectives

Text Books