This is an introductory course on Theory of Computation intended for undergraduate students in computer science. In this course we will introduce various models of computation and study their power and limitations. We will also explore the properties of the corresponding language classes defined by these models and the relations between them. We will assume the student is comfortable in analytical reasoning and has preferably done a course on Data Structures and Algorithms.
Week 1: Finite Automata – deterministic and nondeterministic, regular operations Week 2: Regular Expression, Equivalence of DFA, NFA and REs, closure properties Week 3: Non regular languages and pumping lemma, DFA Minimization, Week 4: CFGs, Chomsky Normal Form Week 5: Non CFLs and pumping lemma for CFLs, PDAs, Equivalence of PDA and CFG Week 6: Properties of CFLs, DCFLs, Turing Machines and its variants Week 7: Configuration graph, closure properties of decidable languages, decidability properties of regular languages and CFLs Week 8: Undecidability, reductions, Rice's Theorem, introduction to complexity theory
MOOCs stand for Massive Open Online Courses. These arefree online courses from universities around the world (eg. StanfordHarvardMIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you. They also have student discussion forums, homework/assignments, and online quizzes or exams.