Skip to content

Amey-Thakur/THEORY-OF-COMPUTER-SCIENCE

Repository files navigation

University of Mumbai

Theory of Computer Science

CSC504 · Semester V · Computer Engineering

License: CC BY 4.0 University Institution Curated by

A comprehensive academic resource for Theory of Computer Science (TCS), covering automata theory, formal languages, Turing machines, computability, and complexity theory.


Overview  ·  Contents  ·  Reference Books  ·  Assignments  ·  Quizzes  ·  Online Exam  ·  Semester Exam  ·  Question Papers  ·  Submission Report  ·  Syllabus  ·  Usage Guidelines  ·  License  ·  About  ·  Acknowledgments


Overview

Theory of Computer Science (CSC504) is a core subject in the Third Year (Semester V) of the Computer Engineering curriculum at the University of Mumbai. This course provides foundational knowledge of computation theory, formal languages, automata, and the theoretical limits of computing.

Course Topics

The curriculum encompasses several key domains in Theoretical Computer Science:

  • Set Theory & Mathematical Foundations: Sets, Relations, Functions, Proof Techniques.
  • Formal Languages: Regular Languages, Context-Free Languages, Grammar Classifications.
  • Automata Theory: Finite Automata (DFA, NFA), Pushdown Automata, Turing Machines.
  • Regular Expressions: Pattern Matching, Equivalence with Finite Automata.
  • Context-Free Grammars: Parse Trees, Ambiguity, Chomsky Normal Form.
  • Computability Theory: Decidability, Undecidability, Halting Problem.

Repository Purpose

This repository represents a curated collection of study materials, reference books, assignments, and personal preparation notes compiled during my academic journey. The primary motivation for creating and maintaining this archive is simple yet profound: to preserve knowledge for continuous learning and future reference.

As a computer engineer, understanding theoretical foundations of computation is crucial for compiler design, algorithm analysis, and understanding computational limits. This repository serves as my intellectual reference point: a resource I can return to for relearning concepts, reviewing methodologies, and strengthening understanding when needed.

Why this repository exists:

  • Knowledge Preservation: To maintain organized access to comprehensive study materials beyond the classroom.
  • Continuous Learning: To support lifelong learning by enabling easy revisitation of fundamental TCS concepts.
  • Academic Documentation: To authentically document my learning journey through Theory of Computer Science.
  • Community Contribution: To share these resources with students and learners who may benefit from them.

Note

All materials in this repository were created, compiled, and organized by me throughout my undergraduate program (2018-2022) as part of my coursework, laboratory assignments, and project implementations.


Repository Contents

Reference Books

This collection includes comprehensive reference materials covering all major topics:

# Resource Focus Area
1 TCS Techmax Complete syllabus coverage
2 Introduction to Theory of Computation - Sipser Standard Textbook (Sipser)
3 Automata Theory Finite Automata and Languages
4 Theory of Computation Computation Theory Concepts
5 Theory of Computer Science Comprehensive Reference
6 Set Theory PPT Mathematical Foundations
7 TCS Easy Solution Solved questions and summaries
8 TCS Easy Solutions Extended solved questions
9 TCS Question Bank Practice questions for exam preparation
10 Theory of Computer Science Diagram Key architectural diagrams
11 Semester 5 Books Curated book recommendations

Assignments

Academic assignments for comprehensive learning and practice:

# Assignment Description Date Marks
1 Assignment 1 Set Theory and Mathematical Foundations November 20, 2020 10/10
2 Assignment 2 Finite Automata Basics November 20, 2020 09/10
3 Assignment 3 DFA and NFA Conversions November 21, 2020 09/10
4 Assignment 4 Regular Expressions November 22, 2020 09/10
5 Assignment 5 Context-Free Grammars November 22, 2020 10/10
6 Assignment 6 Pushdown Automata November 22, 2020 09/10
7 Assignment 7 Turing Machines Basics November 28, 2020 09/10
8 Assignment 8 Turing Machine Variations November 28, 2020 09/10
9 Assignment 9 Decidability and Undecidability November 28, 2020 09/10
10 Assignment 10 Complexity Theory November 28, 2020 09/10

Topics Covered: Set Theory · Finite Automata · Regular Expressions · Context-Free Grammars · Pushdown Automata · Turing Machines · Decidability · Complexity


Quizzes

TCS-specific quizzes conducted during the course:

# Quiz Topics Date Marks
1 Introduction Course Introduction July 11, 2020 10/10
2 Quiz 1 Set Theory, Finite Automata 08/10
3 Quiz 2 Finite State Automata 09/10
4 Quiz 3 Regular Expressions, CFG 09/10
5 Quiz 4 Pushdown Automata 10/10
6 Quiz 5 Turing Machines 10/10
7 Quiz 6 Decidability, Complexity 10/10

Online Exam

Important

COVID-19 Impact: This coursework was completed during the COVID-19 pandemic. All examinations and assessments were conducted in a digital format.

Online assessments conducted during the semester:

# Resource Description Date Marks
1 TCS UT-2 Unit Test 2 Assessment 2020
2 TCS Online Test Subject-specific online test July 18, 2020 8/8
3 All Subjects Test 1 Collective subject test 1 July 18, 2020 40/40
4 All Subjects Test 2 Collective subject test 2 July 25, 2020 50/50
5 All Subjects Test 3 Collective subject test 3 August 03, 2020 50/50
6 All Subjects Test 4 Collective subject test 4 August 08, 2020 50/50

Semester Exam

Final semester examination submission:

# Resource Description Date
1 Question 2 TCS Semester Exam Answer Sheet January 14, 2021
2 Question 3 TCS Semester Exam Answer Sheet January 14, 2021

Question Papers

University of Mumbai examination papers from 2019:

# Exam Session Syllabus Resource
1 May 2019 CBCGS View
2 December 2019 CBCGS View

Submission Completion Report

Course completion documentation:

# Document Description
1 Submission Report Final coursework submission report

Syllabus

Official CBCGS Syllabus
Complete Third Year Computer Engineering syllabus document from the University of Mumbai, including detailed course outcomes, assessment criteria, and module specifications for TCS.

Important

Always verify the latest syllabus details with the official University of Mumbai website, as curriculum updates may occur after this repository's archival date.


Usage Guidelines

This repository is openly shared to support learning and knowledge exchange across the academic community.

For Students
Use these resources as reference materials for understanding automata theory, formal languages, and preparing for examinations. All content is organized for self-paced learning.

For Educators
These materials may serve as curriculum references or supplementary teaching resources. Attribution is appreciated when utilizing content.

For Researchers
The documentation and organization may provide insights into academic resource curation and educational content structuring.


License

This repository and all linked academic content are made available under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See the LICENSE file for complete terms.

Note

Summary: You are free to share and adapt this content for any purpose, even commercially, as long as you provide appropriate attribution to the original author.


About This Repository

Created & Maintained by: Amey Thakur
Academic Journey: Bachelor of Engineering in Computer Engineering (2018-2022)
Institution: Terna Engineering College, Navi Mumbai
University: University of Mumbai

This repository represents a comprehensive collection of study materials, reference books, assignments, and personal preparation notes curated during my academic journey. All content has been carefully organized and documented to serve as a valuable resource for students pursuing Theory of Computer Science.

Connect: GitHub  ·  LinkedIn  ·  ORCID

Acknowledgments

Grateful acknowledgment to the faculty members of the Department of Computer Engineering at Terna Engineering College for their guidance and instruction in Theory of Computer Science. Their clear teaching and continued support helped develop a strong understanding of computation theory and formal languages.

Special thanks to the mentors and peers whose encouragement, discussions, and support contributed meaningfully to this learning experience.



Computer Engineering (B.E.) - University of Mumbai

Semester-wise curriculum, laboratories, projects, and academic notes.