Course Part 2

Java Fundamentals

From arrays and collections to trees and graph algorithms

Weekly Schedule

Each lesson combines authored explanations, worked Java examples, guided practice, and an optional AI study assistant.

Week Module & Topic Core Ideas Lesson Assignment
First Half: From Arrays to Collections
1
Advanced Arrays & Dynamic Arrays
Memory, resizing, multidimensional arrays
Prefix sums, binary search, two pointers Explore arrays
2
Complexity Analysis & Linked Lists
Measure algorithms and compare representations
Big-O, singly/doubly linked lists Analyze structures
3
Basic Sorting, Stacks & Queues
Order data and constrain access
Iterative sorts, stacks, queues, deques Build linear tools
4
Heaps, Hash Tables & Collections
Move from implementations to Java's library
Priority, hashing, List/Set/Map/Queue Choose collections
Second Half: From Trees to Graph Algorithms
5
Trees & Foundations of Recursion
Let structure guide the recursive solution
Call stacks, traversals, height, diameter Think recursively
6
Recursive Algorithms & Backtracking
Divide, combine, choose, and undo
Merge/quick sort, quickselect, N-Queens Trace recursion
7
Tree Search, DFS/BFS & BSTs
Turn traversal order into search behavior
BST operations, DFS, BFS, AVL intuition Search trees
8
Graph Algorithms & Applications
Model relationships, routes, and dependencies
Traversal, Union-Find, MST, Dijkstra Explore graphs

Optional Java Enrichment

Ungraded lessons that broaden the language skills supporting the course.

Bonus lesson

Java Exceptions

Checked and unchecked exceptions, recovery, and useful diagnostics.

Bonus lesson

Java I/O

Byte and character streams, buffering, files, and resource safety.

Bonus lesson

Multithreading

Concurrency, race conditions, synchronization, locks, and deadlocks.

Final Project

Route Planner

Combine maps, hashing, priority queues, BFS, and Dijkstra's algorithm to find and explain routes through a weighted road network.