What is this course about?
Formal Languages and Automata provide the basis for analyzing user input from addresses in web forms to complex Java code. This 3-part course provides the basics of the theory. It also shows the limits of each machine model and finally the limits of computability in general.
This course, building on the previous two, discusses Turing machines and problems of decideabiliy and complexity.
What do you learn in this course?
With the help of this course, we want you to achieve the following learning outcomes:
- You can describe basic principles of Turing machines.
- You can discuss the problem of undecidability and name multiple examples.
- You can distinguish between undecidable and semi-decidable problems.
- You can describe the idea of the time complexity classes P and NP.
- You can elaborate on the basic idea of space complexity.
How is the course structured?
- Organization
- Turing machines
- Undecideable Problems
- Semi-decideable Problems
- Time Complexity
- Space Complexity