Lectures

Lecture Slides

Topic

Notebooks

Links

Introduction

Python Review

Python Review

Runtime Analysis

Readings:
In-class notebook
Complexity Curves
Simple Runtime Plot
Timing Examples

Stacks

In-class notebook

Queues

In-class notebook

Deques

In-class notebook:
See Queues notebook above

Lists

In-class notebook

Recursion

In-class notebook

Dynamic Programming

Slides Part 2:
Readings:
In-class notebook
Second example (LCS)

Searching

In-class notebook

Hashing

Readings:
In-class notebook
Hash Table ADT

Sorting

Readings:
Bubble Sort
Selection Sort
Insertion Sort
Shell Sort
Merge Sort
Quick Sort

Trees

Readings:
In-class notebook

Binary Heaps

Readings:
In-class notebook

Binary Search Trees

In-class notebook

AVL Trees 1 | AVL Trees 2

In-class notebook

Graphs

Readings:
In-class notebook

Graph Search 1 | Graph Search 2 | Graph Search 3

Readings:
In-class notebook
Four letter words input file

Dijkstra’s Algorithm

In-class notebook

History of Course Topics