Theory of Computation - Syllabus
Embark on a profound academic exploration as you delve into the Theory of Computation course (TOC) within the distinguished Tribhuvan university's CSIT department. Aligned with the 2074 Syllabus, this course (CSC257) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60 + 20 + 20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.
This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.
Course Description: This course presents a study of Finite State Machines and their languages. It
covers the details of finite state automata, regular expressions, context free grammars. More, the
course includes design of the Push-down automata and Turing Machines. The course also includes
basics of undecidabilty and intractability.
Course Objectives: The main objective of the course is to introduce concepts of the models of
computation and formal language approach to computation. The general objectives are to,
introduce concepts in automata theory and theory of computation, design different finite state
machines and grammars and recognizers for different formal languages, identify different formal
language classes and their relationships, and determine the decidability and intractability of
computational problems.
Units
Key Topics
-
Review of Set Theory, Logic, Functions, and Proofs
BA-1.1Review of fundamental concepts in set theory, logic, functions, and proofs, including set operations, propositional and predicate logic, function definitions, and proof techniques.
-
Automata, Computability, and Complexity
BA-1.2Introduction to automata theory, computability theory, and complexity theory, including the study of automata, Turing machines, and complexity classes.
-
Basic Concepts of Automata Theory
BA-1.3.1Foundational concepts in automata theory, including alphabets, power of alphabet, Kleene closure, positive closure, strings, empty strings, substrings, concatenation, languages, and empty languages.
Key Topics
-
Introduction to E-commerce
IN-1Overview of E-commerce and its significance in the digital age.
-
E-business vs E-commerce
IN-2Understanding the differences between E-business and E-commerce.
-
Features of E-commerce
IN-3Key characteristics and benefits of E-commerce.
-
Pure vs Partial E-commerce
IN-4Types of E-commerce models and their applications.
-
History of E-commerce
IN-5Evolution and development of E-commerce over time.
-
E-commerce Framework
IN-6Understanding the components of E-commerce framework including People, Public Policy, Marketing and Advertisement, Support Services, and Business Partnerships.
Key Topics
-
Relational Database Design Using ER-to-Relational Mapping
RE-1Learn how to design relational databases using ER-to-relational mapping, including mapping of regular entities, weak entities, relationship types, multivalued attributes, and N-ary relationships.
-
Informal Design Guidelines for Relational Schemas
RE-2Understand informal design guidelines for relational schemas, including semantics of attributes in relations, redundant information in tuples and update anomalies, NULL values in tuples, and generation of spurious tuples.
-
Functional Dependencies
RE-3Study functional dependencies, including definition, inference rules, Armstrong's axioms, attribute closure, equivalence of functional dependencies, and minimal sets of functional dependencies.
-
Normal Forms Based on Primary Keys
RE-4Explore normal forms based on primary keys, including First Normal Form, Second Normal Form, Third Normal Form, and their general definitions.
-
Boyce-Codd Normal Form
RE-5Learn about Boyce-Codd Normal Form, a higher normal form that ensures a relational schema is in a good structure.
Key Topics
-
Nature of Internship
CO-1The internship work should be relevant to the field of computer science and information technology, with a minimum duration of 180 hours or ten weeks.
-
Phases of Internship
CO-2The internship evaluation consists of three phases: Proposal Submission, Mid-Term Submission, and Final Submission.
-
Provision of Supervision
CO-3A regular faculty member of the college is assigned as a supervisor to supervise the students throughout the internship period.
-
Provision of Mentorship
CO-4A regular employee of the intern providing organization is assigned as a mentor to guide the students throughout the internship period.
-
Evaluation Scheme
CO-5The evaluation scheme consists of Proposal Defense, Midterm, and Final Defense, with a total of 200 marks.
-
Report Contents
CO-6The internship report should contain prescribed content flow, including introduction, problem statement, objectives, and references.
Key Topics
-
Introduction to Push Down Automata
PU-1This topic introduces Push Down Automata (PDA), its representation, operations, and instantaneous description.
-
Types of Push Down Automata
PU-2This topic covers deterministic and non-deterministic PDA, acceptance of strings, and language of PDA.
-
Construction of Push Down Automata
PU-3This topic explains the construction of PDA by final state and by empty stack.
-
Conversion between Push Down Automata
PU-4This topic covers the conversion of PDA by final state to PDA accepting by empty stack and vice-versa.
-
Conversion between CFG and PDA
PU-5This topic explains the conversion of Context-Free Grammar (CFG) to PDA and vice-versa.
Key Topics
-
Introduction to Turing Machines
TU-1This topic introduces the basic concepts of Turing Machines, including notations, language, instantaneous description, and acceptance of strings.
-
Turing Machine as a Language Recognizer
TU-2This topic explores the role of Turing Machines as language recognizers, computing functions, and enumerators of strings of a language.
-
Turing Machine Variants
TU-3This topic covers variations of Turing Machines, including those with multiple tracks, multiple tapes, non-deterministic, and restricted Turing Machines.
-
Church-Turing Thesis
TU-4This topic discusses the Church-Turing Thesis, which states that any effectively calculable function can be computed by a Turing Machine.
-
Universal Turing Machine
TU-5This topic introduces the concept of a Universal Turing Machine, which can simulate the behavior of any other Turing Machine.
-
Turing Machine Encoding and Enumeration
TU-6This topic covers the encoding of Turing Machines, enumerating binary strings, and the use of Universal Turing Machines for encoding.
Key Topics
-
E-readiness
UN-1E-readiness refers to the state of preparedness of a country or organization to participate in the digital economy. It involves assessing the availability and quality of digital system infrastructure, legal frameworks, institutional arrangements, human resources, and technological capabilities.
-
Evolutionary Stages in E-Governance
UN-2The evolutionary stages in e-governance refer to the different phases of development and implementation of e-governance initiatives, from basic online presence to integrated and transformative e-governance systems.
-
Internetworking
UN-3Bridges and routers in distributed networking, enabling communication between different networks.
-
Internet Design and Evolution
UN-4History and development of the internet, including its design principles and evolution over time.
Lab works
Laboratory Work Manual
Student should write programs and prepare lab sheets for most of the units in the syllabus. Majorly,
students should practice design and implementation of Finite State Machines viz. DFA, NFA, PDA,
and Turing Machine. Students are highly recommended to construct Tokenizers/ Lexical analyzer
over/for some language. The nature of programming can be decided by the instructor and students
as per their comfort. The instructors have to prepare lab sheets for individual unit covering the
concept of all units as per the requirement. The sample lab sessions can be as following
descriptions;
Unit I: Basic Foundations (5 Hrs)
- Write programs for illustrating the concepts of Strings, Prefix, Suffix and Substring of a String.
Unit II & III: Introduction to Finite Automata and Regular Expressions (14 Hrs)
- Write programs for illustrating the concepts of
- Determinstic Finite Automata
- Non-Deterministic Finite Automata
- Write programs for implementing Tokenizers like for valid C-identifiers, Keywords, e-mail validators, phone number etc.
- Write programs that implement NFA for text search.
- Write programs for implementing regular expressions.
Unit IV & V: Context Free Grammar and Push Down Automata (14 Hrs)
- Write Program for simulation of Leftmost/Rightmost Derivations.
- Write Program for Parse Tree Contruction.
- Write programs for illustrating the concepts of context free grammar and its accptance using the concepts of Push Down Automata
- Acceptance by Final State
- Acceptance by Empty Stack
Unit VI: Turing Machines (12 Hrs)
- Write programs for illustrating the concepts of Turing Machine as a Language Recognizer.