This course is on the basic mathematical foundations of Computer Science.  This course has two broad parts:  The first part is devoted to some fundamental concepts from Discrete Mathematics like propositional and predicate logic, proof methods like proof by contradiction, mathematical induction, etc., and set theory. In the second part, we cover some important models of computation like finite automata, Turing machines, etc.