- Introduction
- Coin Changing
- Big Notation
- Rigorous Time
- Maximum Contiguous Sum
- BubbleSort
- SelectionSort
- InsertionSort
- Binary Search
- Recurrence Relations, Trees, Digging Down
- Master Theorem
- MergeSort
- Heaps and HeapSort
- QuickSort
- Limitations on Comparison-Based Sorting
- CountingSort
- RadixSort
- Integer Multiplication
- Graphs
- Shortest Path
- Breadth-First Traverse
- Depth-First Traverse (Stack Version)
- Dijkstra's Algorithm(Including Proof)
- Floyd's Algorithm
- Spanning Trees (and Prim and Kruskal)
- Minimax Algorithm
- Huffman's Algorithm
- Association Rule Mining
- P, NP, etc. Part 1
- P, NP, etc. Part 2

The following will probably not be used for Fall 2023.

- Review of Pre-351 Material
- Algorithm Time Complexity
- Algorithm Design
- Analysis
- Integer Addition
- k-th Order Statistic
- Depth-First Traverse (Recursive Version)

- mcsbrute.py
- mcsnaive.py
- mcsdivideandconquer.py
- mcskadane.py
- bubblesort.py
- selectionsort.py
- insertsort.py
- binarysearch.py
- mergesort.py
- heapsort.py
- quicksort.py
- quicksortrandom.py
- countingsort.py
- karatsuba.py Karatsuba for multiplication
- selectkth.py kth order statistic using median of medians
- shortestpath.py
- bfs.py
- dfs.py

- coinbasestuff.py A small Python package containing simple functions to execute commands on Coinbase via the API. Use these at your own risk once you have an API key since they execute real trades and so if you spend all your monies it's your own fault. LOL but not.
- mcsTEMPLATE.py Monitors the mid-market price every second and records the change, then uses Kadane's Algorithm to serve up the maximum contiguous sum within the most recent 60-second period. Note: You will need to get your own Coinbase API key and insert it into the code.