| Dates | Topics | Resources | Files | Homework |
| Day1: 1/28 |
Course Introduction |
Sedgewick Ch 1.1, Weiss Ch 1 |
Syllabus,
day01.txt |
homework1 |
| Day2: 1/30 |
Analysis Tools and Techniques |
Sedgewick Ch 1.4, Weiss Ch 2, Wikipedia |
complexity slides day02.pdf |
|
| Day3: 2/1 |
(More) Analysis Tools and Techniques |
Sedgewick Ch 1.4, Weiss Ch 2, Wikipedia |
complexity slides day03.pdf |
homework2 |
| Day4: 2/4 |
Using analysis, Java review: Fibonacci & searching |
Sedgewick Ch 1.1, Weiss Ch 1,
Intro Java Examples |
day04.txt brief summary
notes, fibonacci
program, search
program
|
|
| Day5: 2/6 |
Recurrence relations & exceptions |
Sedgewick Ch 1.1, Weiss Ch 1,
Intro Java Examples |
day5 slides with recurrence
relations, SearcherBetter.java
improved version with exception handling and generics, ArrayNotFullException.java |
|
| Day6: 2/8 |
Using Unix & emacs, checkstyle |
Checkstyle
website, see Unix resources on course homepage!
|
day06.txt, checkstyle download, jhu config file,
timeSomething.java
|
homework3 |
| Day7: 2/11 |
Polymorphism in Java; JUnit |
Sedgewick Ch 1.1, Weiss Ch 1,
JUnit downloads and basics
(revised GitHub link),
JUnit Tutorial
| day07.txt, activities.pdf
UML diagram,
junit.txt JUnit 4
fundamentals, junit-4.10.jar for easy download
|
|
| Day8: 2/13 |
Abstract Data Types, Algebraic Specifications |
Sedgewick Ch 1.2, Weiss Ch 1, Definition |
day08.txt |
homework4 |
| Days 9 & 10: 2/15 & 2/18 |
Bag ADT; JUnit & Eclipse |
Sedgewick Ch 1.3, Weiss Ch 1,
Eclipse downloads and tutorials (in
Resources) |
day09.txt,
Bag.java
interface, day10.txt, BagTest.java JUnit test code,
BagArray.java incomplete array implementation
|
|
| Day 11: 2/20 |
Generics & Linked Lists |
Sedgewick Ch 1.3, Weiss Ch 1 & 3.1-3.5,
Java
Generics,
Wikipedia Linked
Lists |
day11.txt,
BaG.java generic Bag
interface, BaGArray.java array
implementation, SLList.java generic
singly linked list implementation
|
homework5
|
| Day12: 2/22 |
Iterators & Linked Lists |
Sedgewick Ch 1.3, Weiss Ch 3.1-3.5
|
day12.txt, Bagi
iterable Bag implementations (array & linked list)
|
|
| Day13: 2/25 |
Java Collections Framework, Positional Lists |
Java
Collections |
day13.txt,
positional List (sequence ADT) method complexity worksheet
|
homework6 |
| Day14: 2/27 |
Stacks & Queues |
Sedgewick Ch 1.3, Weiss Ch 3.6-3.7 |
day14.txt, QueueArray.java
circular array implementation, QueueEmptyException.java |
|
| Day15: 3/1 |
Deques & Tree Basics |
Sedgewick Ch 3, Weiss Ch 4 |
day15.txt, TreeNode.java implementation start
|
|
| Day16: 3/4 |
Binary Trees |
Sedgewick Ch 3, Weiss Ch 4 |
day16.txt, TreeRoot.java recursive (general) Tree implementation
|
homework7 |
| Days 17-18: 3/6 & 3/8 |
Midterm! |
Review session Wednesday, test Friday. |
A collection of sample problems from prior semester midterms is
available in two
forms: midtermSample.pdf
and midtermSample.docx, midtermReview.pdf,
older review notes. |
  |
| Days 19-21: 3/11, 3/13 & 3/15 |
Binary Search Trees (unbalanced & AVL) |
Sedgewick Ch 3.2-3.3, Weiss Ch
4, AlgoViz website, specific
visualizations to play with:
BST1
and
BST2,
wikipedia AVL tree
diagrams,
|
day19.txt, day20.txt, day21.txt, BSTTest.java
JUnit tests for binary search tree, BST.java
correct implementation, abandoned implementation, Weiss'
AvlTree.java
partial implementation
|
|
| 3/18 - 3/22 |
Enjoy Spring Break!! |
extra credit |
| Days 22 & 23: 3/25 & 3/27 |
Splay Trees, Maps & Dictionaries, Hashing |
Wikipedia splay
trees,
Sedgewick Ch 3.4, Weiss Ch 5,
wikipedia
hashing |
day22.txt, day23.txt, hashing
problems, hashing
solution
|
homework8 |
| Day 24: 3/29 |
Working Session |
Class today is an optional homework help session. TAs will review
how you should have done homework 7 (set expression trees), and
answer questions to get you started on homework 8.
|
|
|
| Day25: 4/1 |
Priority Queues & Heaps | Sedgewick Ch 2.4, Weiss Ch
6 |
day25.txt
|
  |
| Day26: 4/3 |
Bottom-up Heap; Sorting I: Bubble, Selection, Merge, Heap |
Sedgewick Ch 2.1-2.2, Weiss Ch 7,
audible sorts,
dancing
sorts |
day26.txt,
sorting slides,
Java
code |
|
| Days 27 & 28: 4/5 & 4/8 |
Teamwork & Versioning |
bitbucket code
repository includes a tutorial on git and mercurial, Git
Tutorial
|
day27.txt |
homework9 |
| Days 29 & 30: 4/10 & 4/12 |
More Sorting: QuickSort, BucketSort, Lower Bounds |
Sedgewick
Ch 2.2-2.3, Weiss Ch 7, Wikipedia
quicksort |
day29.txt, decisionTree lower bound pic |
homework10 |
| Days 31 & 32: 4/15 & 4/17 |
Graphs |
Sedgewick Ch 4, Weiss Ch 9 |
graphDrawings.pdf, graphSlides.pdf |
homework11 |
| Day 33: 4/19 |
Project crunch time - working session |
|
  |
  |
| Day 34: 4/22 |
Sets, Partitions & Union-Find |
Sedgewick Ch 1.5, Weiss Ch 8,
good
visualization |
slides, union
find board pic |
  |
| Days 35 & 36: 4/24 & 4/26 |
Graphs Revisited: Implementing |
|
Graph.java
interface, GraphTest.java JUnit
tests for interface,
Vertex.java, Edge.java,
graph
adjacency matrix
implementation |
homework12 |
| Day 37: 4/29 |
Huffman Codes & Pattern Matching (Tries) |
Sedgewick 5.5 & 5.2, Weiss Ch
10-12, Wikipedia:
Huffman
Coding,
Tries |
day37.txt, |
  |
| Day38: 5/1 |
Miscellany |
|
day38.txt |
|
| Day39: 5/3 |
Review |
review cheat sheet
| | |
| 5/13, 9am |
Final exam |
|
| |