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:
  1. Recursion
    1. Recursive Functions
    2. Merge Sort: A Recursive Sorting Algorithm
  2. The Running Time of Programs
    1. Big-Oh and Approximate Running Time
    2. Simplifying Big-Oh Expressions
  3. Sets
    1. Basic Definitions
    2. Operations on Sets
  4. Propositional Logic
    1. What is Propositional Logic?
    2. Logical Expressions
    3. Truth Tables
    4. From Boolean Functions to Logical Expressions
    5. Tautologies
    6. Some Algebraic Laws for Logical Expressions
Topics (Number of sessions and Prerequisites for each):
  1. Iteration, Induction, and Recursion
    1. Iteration [0.8]
    2. Inductive Proofs [1.1]
    3. Complete Induction [0.9]
    4. Proving Properties of Programs [0.8]
    5. Recursive Definitions [1.1]
    6. Proving Properties of Recursive Programs [1.6]
    7. Recurrence relations [1.0]
  2. The Running Time of Programs
    1. Choosing an Algorithm [0.2]
    2. Measuring Running Time [0.6]
    3. Analyzing the Running Time of a Program [1.0]
    4. A Recursive Rule for Bounding Running Time [1.2]
    5. Analyzing Programs with Function Calls [[0.6]
    6. Analyzing Recursive Functions [0.5]
    7. Analysis of Merge Sort [0.9]
  3. Combinatorics
    1. Counting Assignments [0.5]
    2. Counting Permutations [0.4]
    3. Ordered Selections [0.4]
    4. Unordered Selections [0.9]
    5. Orderings with Identical Items [0.4]
    6. Distribution of Objects to Bins [0.4]
    7. Combining Counting Rules [0.4]
    8. Binomial coefficients and theorem; combinatorial identities [2.0]
    9. Pascal's triangle and block-walking arguments [1.0]
    10. Inclusion-exclusion [2.0]
  4. Sets
    1. Relations and Functions [1.0]
    2. Some Special Properties of Binary Relations [2.0]
      1. Transitivity, Reflexivity, Symmetry & Antisymmetry
      2. Partial Orders & Total Orders
      3. Equivalence Relations
      4. Equivalence Classes
  5. Propositional Logic
    1. Tautologies and Methods of Proof [1.0]
    2. Deduction [0.8]
  6. Predicate Logic
    1. Predicates [0.4]
    2. Logical Expressions [0.4]
    3. Quantifiers [0.7]
    4. Interpretations [0.7]
    5. Tautologies [0.3]
    6. Tautologies Involving Quantifiers [0.7]
    7. Proofs and Predicate Logic [0.4]
  7. Exam [1.0]
  8. Not Covered
    1. Pigeon-hole principle
    2. Multinomial coefficients and theorem
    3. Elementary generating functions
Laboratory Projects:
None.
Estimated CSAB Category Content:
Computer Science Allocation:
4 Theoretical foundations

Last modified: Tue Oct 24 16:21:33 PDT 1995 by Pete Cappello : cappello@cs.ucsb.edu