Through the learning of the formal languages and automata theory, students will build up a foundation of knowledge for the learning and understanding of the principle of compilers and the formal methods in softwares.
Through the learning of the computability theory, students will understand what are computable and what are incomputable, and will be able to answer the questions such as what is a computation, and will build up a concept of algorithm.
Through the learning of the computational complexity theory, students will understand what are tractable and what are intractable, and will be able to answer the questions such as what is an efficient computation, and will build up a concept of efficient algorithm.
Through the exposing to the advanced topics in computing theory, students will understand the current developments and be inspired to learn more deep results.
Topics include formal languages and automata, computability and computational complexity.