Week 1

Readings: Introduction and Lists
Outlines: Week 1

Week 2

Readings: Exceptions and Linked Lists
Outlines: Week 2
In class programming: Detecting if a singly linked list has a cycle and finding the first node where cycle begins
In class programming code: Listnode.java and MainLinkedList.java

Week 3

Readings: Complexity, Stacks and Queues, Trees Intro and Priority Queues
Outlines: Week 3

Week 4

Readings: Recursion
Outlines: Week 4

Week 5

Readings: Searching, Trees, Binary-Search-Trees
Outlines: Week 5
In class programming:

  • Pre-order, post-order, in-order traversals.
  • Checking if two trees are the same.
  • Print anscestors of a node in the Tree.
In class programming code: BinaryTreenode.java and TreeMain.java

Week 6

Readings: Red-Black Trees and Graphs
Outlines: Week 6
In class programming: BFS and DFS traversals for a Graph.
In class programming code: GraphNode.java, Graph.java and GraphMain.java

Week 7

Readings: Hashing and Sorting
Outlines: Week 7

Week 8

Readings: Sorting
Outlines: Week 8