Shockwave Curriculum

An FRC-flavored Java curriculum - will be used as part of our own full programmer training - based off and inspired by Mechanical Advantage (FRC 6328)'s lesson-deck approach.

Table of Contents
FRC Focused Java Curriculum Ledger
The full chapter/item outline, with source citations and existing/new status for every item.
Scale Reference
Full Original Deck (Mechanical Advantage)
Every lesson from the original Team 6328 deck, not just Java — 33 lessons across 16 categories, bundled into one page. This is the full scope of what this curriculum is working from.

Content Under Review

🚧 Draft lessons & exercises, chapter by chapter, as they're written. Feedback welcome.
Lessons
Narrated Lessons
Ch.1
Getting Started
Why Java for FRC, plus intro to algorithms/programming/compilers.
Ch.1
Narrated Lessons (2)
Voice + on-screen build for all 2 lessons in this chapter.
Ch.2
Variables & Types
Variables, expressions, assignment, casting, compound operators.
Ch.2
Narrated Lessons (5)
Voice + on-screen build for all 5 lessons in this chapter.
Ch.3
APIs, Libraries & Documentation
Libraries/APIs, comments & preconditions, packages & imports.
Ch.3
Narrated Lessons (3)
Voice + on-screen build for all 3 lessons in this chapter.
Ch.4
Using Objects & Calling Methods
Methods/signatures, the Math class, objects, constructors, instance methods.
Ch.4
Narrated Lessons (6)
Voice + on-screen build for all 6 lessons in this chapter.
Ch.5
Control Structures
if/for/while, boolean logic, De Morgan's Laws, loop algorithms, nested iteration, runtime analysis.
Ch.5
Narrated Lessons (11)
Voice + on-screen build for all 11 lessons in this chapter.
Ch.6
Strings
String basics, immutability, equals vs ==, string-processing algorithms.
Ch.6
Narrated Lessons (2)
Voice + on-screen build for all 2 lessons in this chapter.
Ch.7
The Class Blueprint
Class anatomy, encapsulation, writing methods/getters/setters, object references, static variables & methods.
Ch.7
Narrated Lessons (4)
Voice + on-screen build for all 4 lessons in this chapter.
Ch.8
Constructors & "this"
Writing constructors, the default constructor, overloading, and the this keyword.
Ch.8
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
Ch.9
Storing Data
Arrays, ArrayList, HashMap, traversals, common array/list algorithms, and reading text files.
Ch.9
Narrated Lessons (8)
Voice + on-screen build for all 8 lessons in this chapter.
Ch.10
2D Arrays
2D array creation/access, nested-loop traversals (row-major vs. column-major), and 2D array algorithms.
Ch.10
Narrated Lessons (3)
Voice + on-screen build for all 3 lessons in this chapter.
Ch.11
Enums: Named Choices
Fixed named-value types, switching over an enum, enum fields/constructors/methods, and values().
Ch.11
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
11
Ch.12
Exceptions & try/catch
What an exception is, try/catch/finally, checked vs. unchecked, throws, and throw.
Ch.12
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
12
Ch.13
Common Gotchas
A cross-referenced checklist of recurring mistakes — expected to grow with real exercise practice.
Ch.13
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
13
Ch.14
Why Design Patterns?
Opens Java II: what a design pattern is, and why scalability, shared language, and testability motivate this whole unit.
Ch.14
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
14
Ch.15
Advanced Collections
Set (no duplicates), Queue/Deque (FIFO and both-ended processing), and Map revisited (entrySet, ordering variants).
Ch.15
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
15
Ch.16
Writing Your Own Generics
Generic classes and methods, type parameter conventions, bounded type parameters, and a wildcard preview.
Ch.16
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
16
Ch.17
Inheritance & Abstractions
Superclass/subclass, is-a vs. has-a, constructors and super(), inheritance hierarchies, and the Object superclass.
Ch.17
Narrated Lessons (5)
Voice + on-screen build for all 5 lessons in this chapter.
Ch.18
Polymorphism: Many Forms
Overriding vs. overloading, the super keyword, and declared vs. actual type driving runtime dispatch.
Ch.18
Narrated Lessons (3)
Voice + on-screen build for all 3 lessons in this chapter.
Ch.19
Interfaces as Contracts
Interfaces as what-not-how contracts, multiple implements, default methods, plus lambdas & method references.
Ch.19
Narrated Lessons (2)
Voice + on-screen build for all 2 lessons in this chapter.
Ch.20
The IO-Layer Pattern
AdvantageKit's real/sim IO interfaces, replay-safe cached inputs, and the general Hexagonal Architecture (Ports & Adapters) idea behind it.
Ch.20
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
20
Ch.21
Static Factories
Descriptive names, cached instances, and centralizing real-vs-sim (or config-based) construction logic in one place.
Ch.21
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
21
Ch.22
The Builder Pattern
Avoiding constructor hell with a fluent, chainable Builder — the Shooter PID example, plus real WPILib parallels.
Ch.22
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
22
Ch.23
Encapsulation & Final
Class/method/block scope, shadowing, how encapsulation is scope applied deliberately, and final vs. true immutability.
Ch.23
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
Ch.24
Optional: Avoiding NullPointerExceptions
Making "might be absent" part of the type, creating/handling Optional safely, and why bare .get() defeats the point.
Ch.24
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
24
Ch.25
Command-Based Programming
The big one: what command-based is, commands & compositions, the scheduler, enum/switch state machines, triggers, and project structure.
Ch.25
Narrated Lessons (7)
Voice + on-screen build for all 7 lessons in this chapter.
Ch.26
Architecture Takeaways
DRY, YAGNI, and the full 5-principle SOLID breakdown — closes Java II by naming what the whole unit demonstrated.
Ch.26
Narrated Lessons (1)
Voice + on-screen build for all 1 lesson in this chapter.
26

Optional / Advanced Topics

Ch.27 ⚠
Program Design & Abstraction
Optional: general OOD (finding classes from nouns, UML sketches, data/procedural abstraction) and the real-world impact of program design.
Ch.27
Narrated Lessons (2)
Voice + on-screen build for all 2 lessons in this chapter.
Ch.28 ⚠
Algorithms: Searching, Sorting & Recursion
Optional: linear/binary search, selection/insertion sort, recursion basics, and recursive binary search + merge sort. Deepens Ch.9/Ch.10.
Ch.28
Narrated Lessons (4)
Voice + on-screen build for all 4 lessons in this chapter.