Skip to content
This repository has been archived by the owner on Sep 26, 2020. It is now read-only.

Latest commit

 

History

History

fundamentals_of_computer_science

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Go back to the main page

Table of contents


Fundamentals of Computer Science

In this module, you'll gain a broad understanding of key topic areas in computer science and the fundamental concepts underpinning them. In the area of fundamental concepts, you'll learn about binary representations and logic, complexity theory and theories of computation, finite state machines and Turing machines. Building on this, you'll then study key areas of interest in computer science including databases, artificial intelligence and machine learning. These will be presented as practical examples to illustrate how they are implemented in modern computer systems.

Topics covered

  • Boolean logic
  • Algorithms
  • Searching and sorting algorithms
  • Theory of Computation and complexity
  • Turing machines and universal machines
  • Basic combinatorial principles
  • Proof techniques
  • Finite automata
  • Regular languages
  • Context-free grammar

Assessment

One two hour unseen written examination and coursework (Type I)

Module specification

Syllabus

Resources

Complementary learning

Essential reading

"Specific essential readings for each week from the following list are included in the Readings page for each week:"

  • Kenneth H. Rosen (2011). Discrete Mathematics and its Applications, 7th. McGraw-Hill
  • 🔑 Michael Sipser (2012). Introduction to the theory of computation, 3rd. Cengage Learning
  • 🔑 John Hopcroft et al. (2013). Introduction to Automata Theory, Languages and Computation, Pearson
  • Dexter Kozen (2007). Automata and Computability, 1st. Springer
  • Merlin Forbes (2012). A Theoretical Introduction to Turing Machine, 1st. Learning Press
  • Shi-Kui Chang (2003). Data Structures and Algorithms, 1st. World Scientific Publishing Co

Textbooks solutions

Discrete Mathematics and its Applications

Introduction to Automata Theory, Languages, and Computation

Notes

Sample Paper with solutions

March 2020

Study guide

Weekly reading list

Supplementary Videos

Following are supplementary videos for Theory of computation part of the module (week 7-14) for week 1-6 refer NM/DM material and for week 15-20 refer ADS1 material.