0% found this document useful (0 votes)
22 views24 pages

ICS221 TOC Criteria and Intro

Uploaded by

mishranikhil968
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views24 pages

ICS221 TOC Criteria and Intro

Uploaded by

mishranikhil968
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

ICS221 THEORY OF COMPUTATION Krishnendhu S. P.

Assistant Professor, CSED,


[3-1-0-4] IIIT Kottayam
SYLLABUS
 Notion of formal language
 Finite State Machine (FSM)
 Equivalence between two FSM’s
 Regular expressions, Regular Sets, Regular grammar
 Pumping lemma
 Context free grammars
 Turing machine
 Un-decidability and classes of problems
COURSE OBJECTIVES
 Course will provide a formal connection between algorithmic problem solving and
the theory of languages and automata and develop them into a mathematical (and
less magical) view towards algorithmic design and in general computation itself.
 The course should in addition clarify the practical view towards the applications of
these ideas in the engineering part of CS.
COURSE OUTCOMES
• Model, compare and analyse different computational models using combinatorial
methods.
• Apply rigorously formal mathematical methods to prove properties of languages,
grammars and automata.
• Construct algorithms for different problems and argue formally about correctness on
different restricted machine models of computation.
• Identify limitations of some computational models and possible methods of proving
them.
• Have an overview of how the theoretical study in this course is applicable to and
engineering application like designing the compilers.
TEXTBOOKS
 M Sipser, Introduction to the Theory of Computation, Second Edition, Thomson,
2005.
 Lewis H.P. and Papadimition C.H. Elements of Theory of Computation, Prentice Hall
of India, Fourth Edition, 2007.
 Peter, Linz. "An introduction to formal languages and automata." (2001).
EVALUATION CRITERIA

100 20 marks (Mid exam : 1)


marks 20 marks (Assignments : 2)
20 marks (Quiz : 4 (min.))
40 marks (End semester exam : 1)
20 MARKS ASSIGNMENT EVALUATION CRITERIA
 All topics in the course will conclude with a few questions solved in class and a handful of problems assigned for
students to solve independently.
 Students are expected to maintain clear and well-written handwritten class notes, including the dates of lectures. Notes
in any other format (such as printed, photocopied, or typed and printed) will not be considered. These notes should be
recorded either on A4 sheets or in a single notebook.
 All homework questions must be completed by the end of every week and submitted on the LMS.
 Before the end-semester examination, students are required to submit a hard copy of the weekly assignments uploaded
to the LMS for evaluation. This submission must include lecture notes and solved homework questions.
 The evaluation of assignments will be strict and adhere to plagiarism checks.
 As each individual has a unique style, the lecture notes are expected to reflect that individuality.
 Assignment 1: Lecture notes and homework questions covering portions taught until the mid-semester exam.
Assignment 2: Lecture notes and homework questions covering portions taught after the mid-semester exam.
 The hard copy will be compared with the soft copy uploaded on the LMS.
 Any discrepancies found in the submissions will result in a score of zero, with no reconsideration under any
circumstances.
 Since this information is communicated in the first class, no extensions on due dates will be entertained.
WELCOME TO
THEORY OF COMPUTATION
WHY TO STUDY THEORY OF COMPUTATION
 Compared to subjects like algorithms, data structures, machine learning, cryptography;
theory of computation just seems less practical.
 Because computer science is more than writing codes, compiling codes, debugging code, and
compiling again, and then finally going for a walk because you've more bugs to fix.
 In fact computer science is more than how your computer's processors and chips work.
 At its core, computer science is about one thing; problem solving.
 This is where theory of computation really shines.
 Going beyond codes and hardware, we try to better understand computing and answer this
one question.
"What are the fundamental capabilities and limitations of computers?".
WHY TO STUDY THEORY OF COMPUTATION
 Can we actually solve every problem in this world through computing?
 Knowing what a computer can or cannot do will help us solve problems more efficiently.
 There are problems in this world that a computer can never solve. No matter how much time
we spend coming up with an algorithm.
 Eg: To check if a problem will eventually finish running and stop or it will continue to run
forever.
 The automated test never actually runs the program. It just reads the lines of codes.
 Is it possible to test a program without actually executing it?
THEORY OF COMPUTATION

HALTING
PROBLEM
THEORY OF COMPUTATION
 In TOC, we mathematically prove that
such problems CAN or CANNOT be
solved using something called MODELS
OF COMPUTATION.
 Models of computation is an abstract
representation of a machine; not the
same kind of machine that we use
everyday.
 Any of the machines that takes an
input and computes an output, and we
can use these machines to solve problems
in computing.
TURING MACHINE
 Most popular machine is Turing
machine.
 Developed by Alan Turing to prove
how there are lot of problems in this
world that can never be solved through
computing.
APPROACH TO STUDY THEORY OF COMPUTATION
 We’ll start from the very basic models of computation.
 Understand the terminologies.
 Understand the design patterns, working, mapping
functions.
 Compare the models, understand the differences.

Practice,
practice more…,
practice more and more…..
WHAT IS COMPUTATION?
 It is the step-by-step solution to a problem.
 Examples:
 Multiplication of two numbers
 To search for a word in the dictionary.
 Given a graph G. If s and t are two vertices in G, how to find out whether there
is a path from s to t?
 Can a graph be coloured using three colours?
 The step-by-step procedure, known as algorithm, helps us to solve these questions
either positive or negative.
COMPUTATIONAL PROBLEMS
 Problem 1: I have a program P. If P will execute and terminate properly for an
input I.
 Case 1: Runs, terminates and outputs the corresponding output
 Case 2: Loops infinitely.
 Problem 2: Is graph G three colourable?
 Problem 3: Shortest path from home to IIITK.
COMPUTATIONAL PROBLEMS
 One of the problem is easy.
 One is hard.
 One is impossible.
 Which problem?
 What computers can do and what cannot be done by computers!
 Use computational models
COMPUTATIONAL MODELS
 What kind of computational models/devices we use to solve these problems?
 Calculator, cell phones, computers, pen and paper.
 What are the power and limitations of computational devices.
 What kind of problems cannot be solved.
 The first kind of computational model is finite automata.
FINITE AUTOMATA
 A computational model which has states and number of states is finite.
 Does not depends on the input size.
 Examples:
 Electric switch
 Fan regulator
BRANCHES OF THEORY OF COMPUTATION
 Automata Theory: Studies abstract machines and the problems they solve.
 Computability Theory: Explores what problems can be solved on a model of
computation.
 Complexity Theory: Focuses on the resources required to solve computational
problems.
AUTOMATA THEORY
 Studies abstract machines (automata) and the computational problems they can
solve.
 Key Concepts:
 Finite State Machines: Simple models used in parsing and control systems.
 Pushdown Automata: Used to understand context-free languages, like
programming language syntax.
 Turing Machines: The foundation of computability, used to define what it
means for a function to be computable.
 Applications:
 Designing compilers and parsers.
 Regular expressions in text processing.
 Understanding patterns in string matching and linguistics.
COMPUTABILITY THEORY
 Explores what problems can or cannot be solved using a computational model.
 Key Concepts:
 Decidability: Determines whether a problem can be solved by an algorithm.
 Undecidability: Problems like the Halting Problem, which cannot be solved
algorithmically.
 Recursive and Recursively Enumerable Languages: Classes of problems based on
their solvability.
 Applications:
 Identifying the limits of automated systems.
 Understanding problems in cryptography and formal verification.
COMPLEXITY THEORY
 Examines the resources (time, space) required to solve computational problems.
 Key Concepts:
 Time Complexity: How the number of steps grows with input size (e.g., polynomial
time problems).
 Space Complexity: Memory requirements for computation.
 P vs NP Problem: The question of whether every problem whose solution can be
verified quickly can also be solved quickly.
Applications:
 Optimizing algorithms.
 Determining the feasibility of large-scale computations.
 Cryptographic security (e.g., RSA relies on factoring being computationally hard).
HOW THEY ARE RELATED?
 Automata Theory lays the groundwork by defining models of computation.
 Computability Theory determines what problems those models can solve.
 Complexity Theory focuses on how efficiently these problems can be solved.

You might also like