CMSI 2130 - Algorithms & Analysis

Professor Andrew Forney • Andrew.Forney[at]lmu.edu • Spring 2026

This course has been archived, so some portions may not be accessible any longer!


Welcome to CMSI-2130 1 / 13 / 26

If you're reading this then you've successfully found the course page for CMSI 2130! Check this page frequently for announcements that are relevant to the course, including notes, homework assignments, and practice problems.

First things first, please read through the course syllabus located here (or in the Materials tab above).


Lecture Notes
Date Lecture Subject
Lecture 13-1
4 / 21 / 26
Taking Notes from Jack and Jill
Local Search, Hill Climbing, Simulated Annealing, and Genetic Algorithms -- all in one quivering mass!

  Lecture Video (15-1)
  Lecture Video (14-2)
  Lecture Video (14-1)
  Lecture Video (13-1)
  Lecture Video (12-2)
Lecture 11-2
4 / 9 / 26
Graphs are Constraining
Ordering and Structure heuristics for CSPs!

  Lecture Video (12-1)
  Lecture Video (11-2)
Lecture 10-2
4 / 7 / 26
Turning up the AC
Filtering, constraint propagation, and AC-3 make their grand debut!

  Lecture Video (11-1)
Lecture 10-1
3 / 24 / 26
Coloring Books for Computer Scientists
Introduction to Constraint Satisfaction Problems (CSPs): map coloring never looked so technical!

  Lecture Video (10-2)
Lecture 9-1
3 / 17 / 26
In Not So Many Words
Greedy programming gets its day in the sun with a look at compression and Huffman Coding!

  Lecture Video (10-1)
  Lecture Video (9-2)
  Lecture Video (9-1)
Lecture 8-1
3 / 10 / 26
Blooming Imaginations
Bloom filters -- data structures meet probabilistic programming!

  Lecture Video (8-2)
  Lecture Video (8-1)
Lecture 7-1
2 / 24 / 26
The Red Squiggly Underline - A Biography
The magic behind the foundations of spelling correctors and checkers!

  Lecture Video (7-1)
Lecture 6-1
2 / 17 / 26
Changing from Changemaking
Another example of Dynamic Programming on the LCS problem -- good for comparison!

  Lecture Video (6-2)*
  Lecture Video (6-1)
(* Recordings from past semester since I was at a conference; skip the intro slides as those dates are incorrect!)
Lecture 5-1
2 / 10 / 26
From A* to Coinstar
Changemaking makes another appearance in this discussion of Dynamic Programming!

  Lecture Video (5-2)
  Lecture Video (5-1)
Lecture 3-2
1 / 29 / 26
Foiled Again!
Adversarial search and α-β pruning!

  Lecture Video (4-2)
  Lecture Video (4-1)
  Lecture Video (3-2)
Lecture 2-2
1 / 22 / 26
Here-istics
Best-First, Informed search, and heuristics (get it? heuristics here? hereistics?).

  Lecture Video (3-1)
  Lecture Video (2-2)
Lecture 1-1
1 / 13 / 26
Search and Ye Shall (Hopefully) Find
Problem solving, uninformed searches, and memoization!

  Lecture Video (2-1)
  Lecture Video (1-2)
  Lecture Video (1-1)

Homework
Number Date Assigned Date Due (@ midnight)
Homework 5 - Arc Nemesis
 Grading Tests [.zip]* (Bonus Grading Tests same as in skeleton)
4 / 6 / 26 5 / 6 / 26
Homework 4 - Huff and Puff
 Grading Tests [.zip]*
3 / 18 / 26 4 / 14 / 26
Homework 3 - Distle'd Knowledge 2 / 24 / 26 3 / 24 / 26
Homework 2 - Tic'd Off
  Grading Tests [.zip]*
2 / 5 / 26 2 / 27 / 26
Homework 1 - A*-y Night
 Grading Tests [.py]*
1 / 22 / 26 2 / 10 / 26

Classwork
Number Date Assigned Date Due (@ midnight)
[Bonus] Classwork 7 - Fetching Pails of Water
 Solution
4 / 28 / 26 5 / 5 / 26
Classwork 6 - The Queen's Domain
 Solution
4 / 14 / 26 4 / 21 / 26
Classwork 5 - Trie, Trie Again
 Solution
3 / 19 / 26 3 / 27 / 26 * (Added bonus day to complete!)
[Bonus] Classwork 4 - Weighting Tables
 Solution
2 / 17 / 26 2 / 24 / 26 (no late submissions accepted)
Classwork 3 - Mini Classwork, Maximal Gains
 Solution [.pdf]
2 / 5 / 26 2 / 12 / 26
Classwork 2 - A Breadth of Fresh Air
 Solution [.py]
1 / 20 / 26 1 / 27 / 26
Classwork 1 - Finding your (algo)Rhythm
 Solution [.py]
1 / 13 / 26 1 / 20 / 26