CS 415, Section 001  Sonoma State University  Spring, 2023 
Algorithm Analysis


Instructor: Henry M. Walker
Lecturer, Sonoma State University 
Although much of this course is well developed, some details can be
expected to evolve as the semester progresses.
Any changes in course details will be announced promptly during class.
Tuesday  Thursday 

January 24 Getting Started
Introduction to Algorithmic Analysis
Reading:
 January 26
Functions, Growth Rates, Most Significant Terms
Examples of Algorithmic Analysis
Reading:
Assignment on Analysis of Nonrecursive Algorithms Due: Thursday, February 2 
January 31
Maintenance in the Software Life Cycle
Algorithmic Analysis via Experimentation
Reading
 February 2
Recursive Algorithms
Reading
Inclass Quiz #1 Assignment on Analysis of Nonrecursive Algorithms, Recursive Relations, and Program Format Due: Tuesday, February 14 
February 7
Analysis of Recursive Algorithms
Reading
 February 9
Decrease and Conquer
Introduction to Assertions
Readings:
Assignment on Recursive Algorithms, Insertion Sort, and Assertions Due: Thursday, February 16 
February 14
Graphs and Internal Representations
Loop Invariants: singlynested loops
Reading:
 February 16
Loop Invariants with Nested Loops
Inclass Quiz #2 Assignment on Graph Basics and Invariants for Singlynested Loops Due: Tuesday, February 28 
February 21
Loop Invariants/Divide and Conquer Algorithms
Graphs and Topological Sorting
Readings:
 February 23
Reflections on Topics to Date
Assignment on Topological Sorting, Partition, and Quicksort Due: Tuesday, March 7 
February 28
Brute Force and Exhaustive Search
DivideandConquer
Readings:
 March 2
Transform and Conquer
Readings:
Inclass Quiz #3 Assignment on Brute Force Algorithms, Merge Sort, and Heaps Due: Tuesday, March 14 
March 7
TransformandConquer
Algebraic Manipulation for Efficiency
Reading
 March 9
Time to Catch Up Assignment on Sorting and Using Algebra to Improve Efficiency Due: Thursday, March 30 
March 14
Test 1 (March 14)  March 16
Films and Responses: Outside Class Activity Assignment involving Films Email responses by Tuesday, March 28 
March 21
Spring Break (Tuesday, March 21)  March 23
Spring Break (Thursday, March 23) 
March 28
Notes from solutions to Test 1 More Algebra for Efficiency
Space and Time Tradeoffs: Dynamic Programming
Reading
 March 30
Hashing
Hashing
Reading:
Assignment on Binary Exponentiation, Dynamic Programming, and Hashing Due: Thursday, April 13 
April 4
Hashing
Numeric Data Representation
Reading:  April 6
Some Consequences of Numeric Data Representation
Inclass Quiz #4 Quiz Revision Due: Tuesday, April 18 Assignment on Consequences of Numeric Representation Due: Tuesday, April 18 
April 11
Greedy Techniques
Reading:
 April 13
Greedy Techniques
Reading:
Assignment on Greedy Algorithms Due: Tuesday, April 25 
April 18
Time to catch up  April 20
Test 2 
April 25
Notes from solutions to Test 2 Introduction to Class P and NP  April 27
Limitations of Algorithm Power
Reading:
Inclass Quiz #5 Assignment on Classes P and NP Due: Tuesday, May 9 
May 2
Classes P and NP
More Limitations of Computing
Reading:
 May 4
More Limitations of Computing
Inclass Quiz #6 Coping with Limitations of Algorithm Power
Reading:
Assignment on Coping with Limitations of Computing Due: Thursday, May 11 However, if this assignment is submitted on Tuesday, May 9, it will be graded and returned on Thursday, May 11. 
May 9
Time to Catch Up  May 11
Last day of class: Thursday, May 11 
May 16
Exam: Tuesday, May 16: 1:003:00  May 18 
created 22 June 2021 developed and refined Summer 2021 revised Summer 2022 revised January 2023 

For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. 