
Lecture W1M1: Course Overview
August 24, 2026
In this session:
Then we get into actual computer science: what an algorithm is, what it means to analyze one, and your first homework.
Lucas P. Cordova, Ph.D.
What I work on:
Sam Holmes | srholmes@willamette.edu
Algorithms is where computer science becomes a science:
By December you will read a problem you have never seen and know which tool to reach for, and be able to defend that choice.
Interview your neighbor, then introduce them to the class.
Pair up with someone you did not arrive with. You have 3 minutes per partner to learn:
Then each of you introduces your partner in 30 seconds or less.
Ask your partner:
“What is an everyday algorithm you swear by?”
That is: a step-by-step procedure they actually follow in daily life. Examples to prime the conversation:
Listen for the inputs, the steps, and the stopping condition. You will need them for the introduction.
3 minutes per partner.
Format for your 30 seconds:
We will revisit these answers: every one of them has inputs, outputs, correctness questions, and efficiency questions. You have been analyzing algorithms your whole life; this course just makes it precise.
30 seconds per introduction.
This course is a comprehensive study of fundamental algorithms and the analysis techniques behind them. You will learn to design algorithms using the major paradigms (divide-and-conquer, greedy, dynamic programming), prove them correct, analyze their time and space with asymptotic notation, and choose the right tool under real constraints. Along the way you will implement algorithms in Python, evaluate AI-generated solutions critically, and complete a team project that you present at the end of the semester.

Full week-by-week schedule lives in the syllabus on Canvas, where it is versioned.
| Component | Weight |
|---|---|
| Homework assignments (~8) | 25% |
| Midterm exam (Wed Oct 14, in class) | 15% |
| Final exam (Tue Dec 8, 8:00 to 11:00 AM) | 20% |
| Algorithms project (teams of 3) | 20% |
| Class participation | 10% |
| Final project presentation (group) | 10% |
| Total | 100% |
A C- or better is required for the course to count toward university credit. Letter cutoffs are in the syllabus on Canvas.
Homework (~8 sets, 25%). Mix of proofs, analysis, and Python implementation. HW0 goes out today as a prerequisite self-check and counts like a regular homework slot.
Written portions of homework and exams must be prepared in LaTeX. Never used it? The Getting Started with LaTeX guide on the course Resources page walks you through setup on any OS.
Midterm (15%). Wednesday, October 14, in class. Covers analysis, sorting, divide-and-conquer, hashing, trees and heaps, greedy and MST, and graph search and shortest paths.
Final (20%). Comprehensive, Tuesday, December 8, 8:00 to 11:00 AM, with emphasis on the second half: all-pairs shortest paths, dynamic programming, network flows, and complexity.
Algorithms project (20%), teams of 3. Pick a substantial algorithmic problem, implement solutions, measure them against the theory, and write it up. Milestones: proposal (Oct 5), checkpoint (Nov 4), final report (Nov 30).
Final presentation (10%). Conference-style talks over the last two class sessions (Nov 30 and Dec 2), about five teams per day, roughly 15 minutes per team. Every member presents.
Participation (10%). In-class problem solving and discussion; these activities cannot be made up if missed.
| Date | What |
|---|---|
| Fri Sep 4 | Last day to Add/Drop (5pm) |
| Mon Sep 7 | Labor Day, no class |
| Mon Oct 5 | Last day CR/NC (5pm); project proposal due |
| Wed Oct 14 | Midterm exam |
| Fri Oct 23 | Last day to Withdraw with a W (5pm) |
| Wed Nov 25 | Fall Break, no class |
| Mon Nov 30 and Wed Dec 2 | Final project presentations |
| Tue Dec 8 | Final exam, 8:00 to 11:00 AM |
Next up: what an algorithm actually is, and how we will analyze them all semester.
