CS 415, Section 002 Sonoma State University Spring, 2022
 
Algorithm Analysis
Instructor: Henry M. Walker

Lecturer, Sonoma State University
Professor Emeritus of Computer Science and Mathematics, Grinnell College

Tentative Class Schedule

Monday Wednesday
January 24Getting Started
  • Start of classes
  • Introductions
  • Quick Course Overview
  • Home Page / Syllabus / Schedule
  • Some possible class formats
  • Clicker set up
  • Status Check—where are we really?

Chapter 1: Introduction to Algorithms
  • Algorithmic Problem Solving
  • Problem types
  • Fundamental Data Structures
January 26 Chapter 2: Analysis Fundamentals
  • 2.1 The Analysis Framework
  • 2.2 Asymptotic Notations: O-notation, Ω-notation, Θ-notation

January 31 Appendix B: Recurrence Relations
  • Appendix B: Recursive algorithms and recurrence relations
Chapter 2: Analysis Fundamentals
  • 2.4 Analysis of recursive algorithms
  • 2.5 Example: the nth Fibonacci Number
February 2 Chapter 2: Analysis Fundamentals
  • 2.6 Empirical analysis of algorithms

Chapter 3: Brute Force and Exhaustive Search
  • 3.1 Selection Sort

February 7 inserChapter 3: Brute Force and Exhaustive Search
  • 3.2 Sequential Search
  • 3.2 Brute force string matching

  • 3.4 Exhaustive search
February 9 Chapter 3: Brute Force and Exhaustive Search
  • 3.5 Depth-first search
  • 3.5 Breadth-first search

February 14 Chapter 4: Decrease ahd Conquer
  • 4.2 Topological sorting
February 16 Loop Invariants
February 21 Loop Invariants/Chapter 5: Divide and Conquer
  • Applications of Loop Invariants
    • Single loops
    • Variations on the binary search
February 23 Loop Invariants/Chapter 5: Divide and Conquer
February 28 Chapter 5: Divide and conquer
  • Reflections on Topics to Date
    • Algorithmic Analysis, Big-O, Big-Θ, Big-Ω
    • Some Algorithmic Patterns
    • Basics of Graphs
    • Loop Invariants for Binary Search and Partition
    • Quicksort, Improved Quicksort, and Analysis
March 2 Test 1
March 7 Chapters5-6: Transform-and-Conquer
  • 5.1 Mergesort
  • Reading on Merge Sort
  • 6.4 Heaps
  • March 9 Chapter 5: Transform-and-Conquer
    March 14 Chapter 6: Transform-and-Conquer
    • 6.5 Horner's Rule

    • 6.5 Binary Exponentiation
    March 16 Chapter 6: Transform-and-Conquer
    • Trees and Search Trees
    • 6.3 AVL Trees

    • Time to catch up before break!
    March 21 Spring Break: Monday, March 21 March 23 Spring Break: Wednesday, March 23
    March 28 Section 7.3: Hashing
    • 7.3 Open Hashing (Separate Chaining)
    March 30 In-class Quiz
    April 4 Chapter 8: Dynamic Programming
    Two of the following sections
    • Efficiency Analysis for Hash Tables
    • 8.3 Optimal Binary Search Trees
    April 6 Chapter 6: Space and Time Trade-offs
    • Examples of Dynamic Programming, such as
      • 8,1 Example: Edit Distance Problem
    In-class Quiz
    April 11 Chapter 9: Greedy Techniques
    • 8.3 Optimal Binary Search Trees, continued
    • 9.3 Dijkstra's algorithm (single-source shortest paths)
    April 13 Consequences of Numeric Data Representation In-class Quiz
    April 18
    April 20 Test 2
    April 25 Chapter 9: Greedy Techniques
    • Notes from solutions to Test 2
    • 9.4 Huffman trees and codes
    • 9.1 Prim's algorithm (minimum cost spanning tree)
    April 27 Chapter 11: Limitations of Algorithm Power Chapter 11: Limitations of Algorithm Power
    May 2 Chapter 11: Limitations of Algorithm Power
    • Halting problem
    • Additional Observations Concerning Numeric Error
    • The Trapezoidal Rule
    May 4 Chapter 12: Coping with Limitations of Algorithm Power In-class Quiz
    May 9 Chapter 12: Coping with Limitations of Algorithm Power May 11 Last day of class: Wednesday, May 11
    May 16 Exam schedule: May 16-20 May 18  
    created 22 June 2021
    developed and refined Summer 2021
    Valid HTML 4.01! Valid CSS!
    For more information, please contact Henry M. Walker at walker@cs.grinnell.edu.