CS 182: Foundations of Computer Science
Prerequisite:
CS 18000 (Problem Solving and Object-Oriented Programming)
Detailed Syllabus:
- 
Logic and Proofs: Propositional equivalences, predicates, quantifiers. Introduction to proofs. 
- 
Sets, functions, relations, sequences and summations. Sets (finite, countable, uncountable, operations). Functions (properties, special classes). Relations (binary relations, composition, closure, equivalence relations). Sequences and sums. Uses and applications in computer science. 
- 
Number representations. Number systems and representation of numbers. Floating point numbers and directed rounding. Arithmetic operations. Precision versus accuracy. 
- 
Counting. Basics of Counting. Pigeon-hole principle. Permutations and combinations. 
- 
Analysis of algorithm fundamentals. Growth and complexity of functions. Big-O notation and manipulations. Analyzing performance of algorithms. 
- 
Graphs and trees. Basic properties of trees, directed, and undirected graphs. Traversal strategies for trees and graphs. Modeling problems using graphs and trees. 
- 
Proof techniques. Proofs by contradiction, construction, and diagonalization. Include proofs related to properties of trees. Mathematical and structural induction. 
- 
Recursion. Recursive definitions. Recurrence relations. Recursive programs: design and implementation. Pitfalls of recursion. 
- 
Basic Number Theory, RSA Public Key Cryptosystems. 
- 
Basic probability. 
- 
Boolean Logic. Boolean logic and algebraic properties of Boolean functions. Logic circuits. Minimization of logic expressions. 
- 
Finite state machines. Equivalence of regular languages and regular expressions. State minimization. Closure properties. Nondeterministic machines. Applications and uses in Computer Science. 
- 
Pushdown automata. Languages and strings. Informal description of a PDA. Context-free languages. Introduction to parsing. 
- 
Computability and undecidability. Limits of computation, Turing machines, Church-Turing thesis, Classes P and NP, Undecidability (Halting problem).