Undergraduate · NUST
The mathematical foundations of computation — finite automata, formal languages, and the limits of what machines can decide.
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