## IT422 - Models of Computation

(MOC)

__Models of Computation__

(lectures -- 3 hours per week)

__Course objectives __:

This course aims to familiarize students with the basic models of computation, their properties, and the interrelationships between models. A study of these models provides the student with an insight into the process of ‘computation’ and the various methods of establishing properties of computations. A conceptual understanding of what is meant by a ‘computation’ should surely be expected from any Computer Scientist. Also, in practice, it is hoped that knowledge of these models and their properties would allow a student to model and verify the correctness of a proposed solution to a computational problem, before proceeding to its implementation in hardware and/or software.

__Course contents __:

Review of basic concepts: Countable and uncountable sets; relations and closure. Regular expressions, regular languages, deterministic and non-deterministic finite automata, and their properties. Context free languages, push down automata, parsing. Turing machines and their variants; non-determinism; Universal Turing machine and undecidability. Computational complexity, the classes P and NP, polynomial reductions and NP-completeness.

__Reference books __:

‘Elements of the Theory of Computation’, by Lewis & Papadimitriou, Pearson Education .

‘Introduction to Automata Theory, Languages and Computation’, by Hopcroft, Motwani & Ullman, Pearson Education.

‘The Theory of Computation’, by Bernard Moret, Pearson Education.

‘Introduction to Languages and the Theory of Computation’, by John Martin, McGraw Hill.

- Course Instructor: Naresh Jotwani
- Student: Raunak 200601075
- Student: Prateek Agarwal
- Student: Amit Dravid
- Student: Somya Garg
- Student: Nilay Khatri
- Student: Anand Kumar
- Student: amith manepu
- Student: Nisha Sharma