CS 40: Foundations of Computer Science
November 6, 1995
- Catalog Description
- CMPSC 26 - Foundations of Computer Science [4] Cappello
- Prerequisites: Computer Science 20; or consent of instructor.
-
Theory and computer science applications of: iteration, induction, and recursion; the running time of programs; combinatorics; relations and functions; propositional logic; and predicate logic.
- Textbook:
- Aho, Alfred V., and Jeffrey D. Ullman, "Foundations of Computer Science C Edition" Computer Science Press, 1995.
- Reference: None
- Coordinator:
- Peter Cappello, Professor
- Goals:
- The goal is to give beginning computer science majors a foundation for further study. This foundation includes a study of iteration, induction, and recursion; the running time of programs; combinatorics; relations and functions; propositional logic; and predicate logic.
- Prerequisites by Topic:
-
- Recursion
- Recursive Functions
- Merge Sort: A Recursive Sorting Algorithm
- The Running Time of Programs
- Big-Oh and Approximate Running Time
- Simplifying Big-Oh Expressions
- Sets
- Basic Definitions
- Operations on Sets
- Propositional Logic
- What is Propositional Logic?
- Logical Expressions
- Truth Tables
- From Boolean Functions to Logical Expressions
- Tautologies
- Some Algebraic Laws for Logical Expressions
- Topics (Number of sessions and Prerequisites for each):
-
- Iteration, Induction, and Recursion
- Iteration [0.8]
- Inductive Proofs [1.1]
- Complete Induction [0.9]
- Proving Properties of Programs [0.8]
- Recursive Definitions [1.1]
- Proving Properties of Recursive Programs [1.6]
- Recurrence relations [1.0]
- The Running Time of Programs
- Choosing an Algorithm [0.2]
- Measuring Running Time [0.6]
- Analyzing the Running Time of a Program [1.0]
- A Recursive Rule for Bounding Running Time [1.2]
- Analyzing Programs with Function Calls [[0.6]
- Analyzing Recursive Functions [0.5]
- Analysis of Merge Sort [0.9]
- Combinatorics
- Counting Assignments [0.5]
- Counting Permutations [0.4]
- Ordered Selections [0.4]
- Unordered Selections [0.9]
- Orderings with Identical Items [0.4]
- Distribution of Objects to Bins [0.4]
- Combining Counting Rules [0.4]
- Binomial coefficients and theorem; combinatorial identities [2.0]
- Pascal's triangle and block-walking arguments [1.0]
- Inclusion-exclusion [2.0]
- Sets
- Relations and Functions [1.0]
- Some Special Properties of Binary Relations [2.0]
- Transitivity, Reflexivity, Symmetry & Antisymmetry
- Partial Orders & Total Orders
- Equivalence Relations
- Equivalence Classes
- Propositional Logic
- Tautologies and Methods of Proof [1.0]
- Deduction [0.8]
- Predicate Logic
- Predicates [0.4]
- Logical Expressions [0.4]
- Quantifiers [0.7]
- Interpretations [0.7]
- Tautologies [0.3]
- Tautologies Involving Quantifiers [0.7]
- Proofs and Predicate Logic [0.4]
- Exam [1.0]
- Not Covered
- Pigeon-hole principle
- Multinomial coefficients and theorem
- Elementary generating functions
- Laboratory Projects:
- None.
- Estimated CSAB Category Content:
- Computer Science Allocation:
- 4 Theoretical foundations