Notes for every class meeting, in the order they are delivered.

#LectureWhat we cover
1The (bitter) Taste of JavaIntroductions, syllabus, Java vs. Python, and development environment setup
2To Make a Cup of Java, First, You Must Invent the UniversePrimitives, arrays, and Strings
3Controlling the Flow of JavaControl flow, method design, and test-driven development
4Keeping it ClassyJava class design and object-oriented programming
5Inheriting Some Wisdom!Inheritance, overriding, and the Object superclass
6Remember Memory!Stack vs. heap, references, and garbage collection
7Enlisted To List! (Part I)ArrayLists and dynamic arrays
8Enlisted To List! (Part II)ArrayList implementation and the debugger
9Enlisted Again: The Linkening! (Part I)Linked lists and nodes
10Enlisted Again: The Linkening! (Part II)Iterators and linked-list operations
11Stacking Up the Data StructuresStacks and queues
12Analyze ThisTotal cost functions, big-O notation, runtime analysis
13Big-O No! More Runtime Analysis!More practice with Big-O and runtime analysis
14Sorting, Searching, Success!Analyzing the classic sorting and searching algorithms
15The Stack is Calling!Recursion and the call stack
16Their Bark is Worse Than Their Byte: Part ITrees: vocabulary, structure, and traversals
17Their Bark is Worse Than Their Byte: Part IIBinary search trees: insertion, search, and balance
18Their Bark is Worse Than Their Byte: Part IIITries and ternary search trees
19Balancing ActSelf-balancing trees
20Heaping on the Data StructuresHeaps and priority queues
21High Priority ProgrammingPriorityQueue applications
22A Sorting AffairHeapSort and advanced sorting
23Hash Out or Crash OutHash functions, collisions, and load factor
24Hell Hash No Fury!Rehashing, Maps, and Sets
25Warning - Graphic Content!Graphs and their representations

Note

Exam review sessions have no notes of their own — see the schedule for dates.

25 items under this folder.