ToA - Lecture 01 02 - Introduction
ToA - Lecture 01 02 - Introduction
Introduction
My Introduction
• Education
• BS(CS) & MS(CS) from COMSATS University Islamabad
• Work Experience
• Teaching Associate (CS, CUI) [Apr 2016 – Sep 2021]
• Tier 2 Site Administrator (CUI-CERN)
• Faculty Advisor (IEEE Computer Society CUI)
• Data Science Research Associate (AAIP) [Jun 2020 – Dec 2021]
• Lecturer (CS, NUML Rawalpindi) [Sep 2021 – Present]
• Remote R Shiny App Developer (Technical University of Munich, Germany) [Jul 2023 - Present]
• Want to Connect?
• [email protected]
• +92 333 020 2222 [Text Only – No Calls Please]
Your Introduction
• Tell me a bit about yourself
• Name
• Hobbies
• What career do you want to make?
• What do you expect from this course?
Class Rules (Actually Life Ethics)
• Be attentive
• Make yourself open for learning
• Class participation
• Expect surprised assessments
• Keep a nice tone (This should be followed in everyday life)
• Be honest to yourself, ultimately you will be honest to everyone.
• Know your responsibilities
• Don’t Cheat, Strive to Learn
• Respect others at all times
Course Material
• Textbooks
• Daniel I. A. Cohen, Introduction to Computer Theory (2nd edition)
• Elaine Rich, Automata, Computability and Complexity: Theory and Applications (latest edition)
• Peter Linz, An Introduction to Formal Languages and Automata (4th edition)
• S. P. Eugene, Kavier, Theory of Automata, Formal Languages and Computation (latest edition)
• John Hopcroft and Jeffrey Ullman, Introduction to Automata Theory, Languages, and Computation
(2nd edition)
• John C. Martin, Introduction to Languages and the Theory of Computation (latest edition)
• Slides
• Mostly will be from the main textbook
• Will be provided but it is good to note down important things in class.
Grading Criteria
Evaluation Marks
Mid-Term Exams 25
End-Term Exams 50
Assignments 5 – 10
Total 100
Course Contents (First 8 Weeks)
Week Topic
2 Regular Expressions
4 Transition Graphs, TG to RE
7 Regular languages vs Non regular languages, Properties of regular languages, Pumping Lemma
16 Revision
Course Learning Outcomes
• Design and derivation of regular languages using mathematical models
• Design and derivation of non-regular languages using mathematical models
• Design of Turing Machine.
Theoretical Computer Science
• Theoretical computer science – a scientific field on the border between computer science
and mathematics
• Investigation of general questions concerning algorithms and computations
• Study of different kinds of formalisms for description of algorithms
• Study of different approaches for description of syntax and semantics of formal languages (mainly
programming languages)
• A mathematical approach to analysis and solution of problems (proofs of general mathematical
propositions concerning algorithms)
Theoretical Computer Science
• Examples of some typical questions studied in theoretical computer science:
• Is it possible to solve the given problem using some algorithm?
• If the given problem can be solved by an algorithm, what is the computational complexity of this
algorithm?
• Is there an efficient algorithm solving the given problem?
• How to check that a given algorithm is really a correct solution of the given problem?
• What kinds instructions are sufficient for a given machine to perform a given algorithm?
Algorithms and Problems
• Algorithm
• Mechanical procedure that computes something (it can be executed by a computer)
• Algorithms are used for solving problems.
• An example of an algorithmic problem:
• Input: Natural numbers x and y.
• Output: Natural number z such that z = x + y.
Algorithms and Problems
• Algorithm
• Mechanical procedure that computes something (it can be executed by a computer)
• Algorithms are used for solving problems.
• An example of an algorithmic problem:
• Input: Natural numbers x and y.
• Output: Natural number z such that z = x + y.
• A particular input of a problem is called an instance of the problem.
• An example of an instance of the problem given above is a pair of numbers 728 and 34.
• The corresponding output for this instance is number 762.
Problems
• When specifying a problem, we must determine:
• What is the set of possible inputs
• What is the set of possible outputs
• What is the relationship between inputs and outputs
Problem - Sorting
• Input: A sequence of elements .
• Output: Elements of the sequence ordered from the least to the greatest.
• Example
• Input: 8, 13, 3, 10, 1, 4
• Output: 1, 3, 4, 8, 10, 13
Decision Problems
• The problems, where the set of outputs is are called decision problems.
• Decision problems are usually specified in such a way that instead of describing what the
output is, a question is formulated.
• Example:
• Input: A natural number n.
• Question: Is n a prime?
Optimization Problems
• Those problems where for each input instance there is a corresponding set of feasible
solutions and where the aim is to select between these feasible solutions that is some
respect minimal or maximal (or possibly to find out that there are no feasible solutions), are
called optimization problems.