- Future Students
- Academic Progams
- Undergraduate Program
- Current Semester CS Courses
- New Course Offerings
- Upcoming Semesters
- Previous Semesters
- Canonical Syllabi
- Course Access & Request Policy
- Academic Integrity Policy
- Grad Student Registration
- Variable Title Courses
- Study Abroad
- Professional Practice
- Co-Op Professional Practice
- Non-Co-Op Professional Practice
- ISS Application Process for International Students (CPT, OPT, RCL, Program Extension, COEL)
- Pass/Not Pass Spring 2020
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).