CprE 310 - Spring 2002 - Theoretical Foundations of Computer Engineering
Course Syllabus
Lettering in gray denotes subjects not covered from the book
.
1. The Foundations: Logic, Sets, and Functions
1.1 Logic
1.2 Propositional Equivalences
1.3 Predicates and Quantifiers
1.4 Sets
1.5 Set Operations
1.6 Functions
1.7 Sequences and Summations
1.8 The Growth Functions
2. The Fundamentals: Algorithms, the Integers, and Matrices
2.1 Algorithms
2.2 Complexity of Algorithms
2.3 The Integers and Division
2.4 Integers and Algorithms
2.5 Applications of Number Theory
2.6 Matrices
3. Mathematical Reasoning
3.1 Methods of Proof
3.2 Mathematical Induction
3.3 Recursive Definitions
3.4 Recursive Algorithms
3.5 Program Correctness
4. Counting
4.1 The Basics of Counting
4.2 The Pigeonhole Principle
4.3 Permutations and Combinations
4.4 Discrete Probability
4.5 Probability Theory
4.6 Generalized Permutations and Combinations
4.7 Generating Permutations and Combinations
5. Advanced Counting Techniques
5.1 Recurrence Relations
5.2 Solving Recurrence Relations
5.3 Divide-and-Conquer Relations
5.4 Generating Functions
5.5 Inclusion-Exclusion
5.6 Applications of Inclusion-Exclusion
6. Relations
6.1 Relations and Their Properties
6.2 n-ary Relations and Their Applications
6.3 Representing Relations
6.4 Closures of Relations
6.5 Equivalence Relations
6.6 Partial Orderings
7. Graphs
7.1 Introduction to Graphs
7.2 Graph Terminology
7.3 Representing Graphs and Graph Isomorphism
7.4 Connectivity
7.5 Euler and Hamilton Paths
7.6 Shortest Path Problems
7.7 Planar Graphs
7.8 Graph Coloring
8. Trees
8.1 Introduction to Trees
8.2 Applications of Trees
8.3 Tree Traversal
8.4 Trees and Sorting
8.5 Spanning Trees
8.6 Minimum Spanning Trees
9. Boolean Algebra
9.1 Boolean Functions
9.2 Representing Boolean Functions
9.3 Logic Gates
9.4 Minimization of Circuits
10. Modeling Computation
10.1 Languages and Grammars
10.2 Finite-State Machines with Output
10.3 Finite-State Machines with No Output
10.4 Language Recognition
10.5 Turing Machines