Lectures

Lecture Date Topic Slides
1 Friday, 2/1 Course intro Lecture 1
2 Monday, 2/4 Java crash course, part 1 Lecture 2
Sum1.java
Sum2.java
Sum3.java
Sum4.java
3 Wednesday, 2/6 Java crash course, part 2 Lecture 3
Sum5.java
garbled sound
ungarbled sound
If you enjoyed the demonstration using sounds, watch the rest of Anil Seth's fascinating talk.
4 Friday, 2/8 Java crash course, part 3 Lecture 4
WordSeq.java
5 Monday, 2/11 Abstraction Lecture 5
WordSeq.java (expandable version)
6 Wednesday, 2/13 Composition Lecture 6
Friday, 2/15 (no class - Winter Carnival)
7 Monday, 2/18 Recursion, part 1 Lecture 7
AddOne.java
AddOne2.java
AddOneWithAssert.java
8 Wednesday, 2/20 Recursion, part 2 Lecture 8
9 Friday, 2/22 Recursion, part 3 Lecture 9
Quiz3.java
10 Monday, 2/25 Asymptotic analysis, part 1 Lecture 10
Coins.java
11 Wednesday, 2/27 Asymptotic analysis, part 2 Lecture 11
12 Friday, 3/1 Asymptotic analysis, part 3 + Interfaces Lecture 12
Interface examples:
  Honkable.java
  Honker.java
  Car.java
  Goose.java
13 Monday, 3/4 Sorting, part 1 + Inheritance Lecture 13
Inheritance examples:
  Cycle.java
  CycleShop.java
  RoadBike.java
  Tricycle.java
Comparable example:
  Person.java
14 Wednesday, 3/6 Sorting, part 2 Lecture 14
Comparable example:
  People.java
15 Friday, 3/8 Sorting, part 3 Lecture 15
CountingSort.java
16 Monday, 3/11 Searching Lecture 16
BinarySearch.java
17 Monday, 4/1 Linear structures Lecture 17 (Updated: 2019-05-12)
18 Wednesday, 4/3 Iterators Lecture 18
19 Friday, 4/5 Ordered structures, part 1 Lecture 19
OrderedStructure.java
OrderedVector.java
20 Monday, 4/8 Ordered structures, part 2 Lecture 20
Quiz 7 solution
21 Wednesday, 4/10 Trees, part 1 Lecture 21
A minimal binary tree implementation
22 Friday, 4/12 Trees, part 2 Lecture 22
A more complete binary tree implementation; note that this has both instance and static methods for computing height.
Test.java (driver code)
23 Monday, 4/15 Trees, part 3 Lecture 23
BinarySearchTree.java
Test.java (driver code)
BinarySearchTreeIterator.java
24 Wednesday, 4/17 Trees, part 4 Lecture 24
BinarySearchTree.java (implicit BST)
SparseVector.java
Test.java (driver code)
25 Friday, 4/19 Trees, part 5 Lecture 25
Quiz 8 solution: 1. No. 2. resulting BST.
26 Monday, 4/22 Graphs, part 1 Lecture 26
27 Wednesday, 4/24 Graphs, part 2 Lecture 27
28 Friday, 4/26 Graphs, part 3 Lecture 28
29 Monday, 4/29 Hash tables, part 1 Lecture 29
LetterFreq.java
google-10000-english-usa.txt (originally from here)
The good ol' Professor Bumstead proof that a digraph is acyclic iff DFS yields no back edges. Bonus: Includes a hand-scrawled note by (I think?) the undergrad version of myself. I don't know what the note means (so please ignore it).
30 Wednesday, 5/1 Hash tables, part 2 Lecture 30
LetterFreq.java (updated for checking the uniformity of the built-in hashcodes for the Java String class)
31 Friday, 5/3 Hash tables, part 3 Lecture 31
BookStats.java
Book.java
SetHashtable.java
commons-beanutils-1.9.3.jar
commons-collections4-4.2.jar
commons-lang3-3.7.jar
commons-text-1.3.jar
opencsv-4.6.jar
books.csv
You can compile the above code with: javac "$CLASSPATH:*" *.java
You can run the above code with: java "$CLASSPATH:*" BookStats books.csv
The answer to Q1 in Lab 10 Part 1 is 2,917. If you didn't get this answer, try using a Set<Movie>. If you use SetHashtable, don't forget to override hashCode in your Movie class!
32 Monday, 5/6 Hash tables, part 4 Lecture 32
33 Wednesday, 5/8 Graphs, part 4 Lecture 33
Solution to hash table activity
ASCII table for charAt method.
34 Friday, 5/10 Last class Lecture 34
Hashtable.java
  • CSCI 136: Data Structures and Advanced Programming, Spring 2019