shockwave-curriculum · OUTLINE.md v15

Curriculum Ledger

Chapter headers are pure organizational labels, never carrying a CSA number themselves — every actual piece of content is a numbered item underneath. "Item" is a placeholder term, not "lesson" (that collides with mechacoder's own registerLesson()).

Existing — already in the deck New — doesn't exist yet ⚠ SOURCE NEEDED OPTIONAL

The full sequence

Java 1
1Getting Started
1.1Why Java for FRC?
1.2Intro to Algorithms, Programming & CompilersCSA 1.1
2Variables & Types
2.1Variables and Data TypesCSA 1.2
2.2Expressions and OutputCSA 1.3
2.3Assignment and InputCSA 1.4
2.4Casting and Ranges of ValuesCSA 1.5
2.5Compound Assignment OperatorsCSA 1.6
3APIs, Libraries & Documentation
3.1APIs and LibrariesCSA 1.7
3.2Documentation with Comments and PreconditionsCSA 1.8
3.3Packages & ImportsCSA 1.7 §1.7.2
4Using Objects & Calling Methods
4.1Methods, Signatures and ParametersCSA 1.9
4.2Calling Class MethodsCSA 1.10
4.3Using the Math ClassCSA 1.11
4.4Objects – Instances of ClassesCSA 1.12
4.5Creating and Initializing Objects: ConstructorsCSA 1.13
4.6Calling Instance MethodsCSA 1.14
5Control Structures
5.1if StatementsCSA 2.3
5.2For LoopsCSA 2.8
Boolean Logic & Conditional Design
5.3Algorithms with Selection and RepetitionCSA 2.1
5.4Boolean ExpressionsCSA 2.2
5.5Nested if StatementsCSA 2.4
5.6Compound Boolean ExpressionsCSA 2.5
5.7Comparing Boolean Expressions (De Morgan's Laws)CSA 2.6
Loops in Depth
5.8While LoopsCSA 2.7
5.9Implementing Selection and Iteration AlgorithmsCSA 2.9
5.10Nested IterationCSA 2.11
5.11Informal Runtime Analysis of LoopsCSA 2.12
5.12switch Statements and Expressions—
6Strings
6.1StringsCSA 1.15
6.2String AlgorithmsCSA 2.10
7The Class Blueprint
7.1Anatomy of a Java ClassCSA 3.3
7.2Methods: How to Write ThemCSA 3.5
7.3Methods: Passing and Returning References of an ObjectCSA 3.6
7.4Class (static) Variables and MethodsCSA 3.7
8Constructors & "this"
8.1Writing ConstructorsCSA 3.4
8.2this KeywordCSA 3.9
9Storing Data
9.1Array Creation and AccessCSA 4.3
9.2ArrayList and its MethodsCSA 4.8
9.3HashMap (Dictionary) Data StructureCSA 4.60
Arrays & ArrayLists: Traversal Patterns
9.4Array TraversalsCSA 4.4
9.5Implementing Array AlgorithmsCSA 4.5
9.6ArrayList TraversalsCSA 4.9
9.7Implementing ArrayList AlgorithmsCSA 4.10
9.8Using Text FilesCSA 4.6
102D Arrays
10.12D Array Creation and AccessCSA 4.11
10.22D Array Traversals: Nested LoopsCSA 4.12
10.3Implementing 2D Array AlgorithmsCSA 4.13
11Enums: Named ChoicesORACLE 10.1
12Exceptions & try/catchORACLE 11.1–11.16
13Common Gotchas
Java 2
14Why Design Patterns?
15Advanced CollectionsORACLE 13.1–13.4
16Writing Your Own GenericsORACLE 14.1–14.5
17Inheritance & Abstractions
17.1Inheritance, Superclass, SubclassCSA 5.1
17.2Inheritance and ConstructorsCSA 5.2
17.3Inheritance HierarchiesCSA 5.5
17.4Object SuperclassCSA 5.7
17.5Abstract Classes and Methods—
18Polymorphism: Many Forms
18.1Overriding MethodsCSA 5.3
18.2super KeywordCSA 5.4
18.3PolymorphismCSA 5.6
19Interfaces as ContractsORACLE 15.1–15.6
19.1Lambdas & Method ReferencesORACLE 12.1–12.2
20The IO-Layer PatternADVKIT 40.1–40.11, JDP 50.1
21Static FactoriesT5817 30.2
22The Builder PatternT5817 30.1
23Encapsulation & Final
23.1Access, final, and ImmutabilityCSA 3.8
24Optional: Avoiding Null Pointer ExceptionsORACLE 16.1
25Command-Based ProgrammingWPILIB 20.1–20.8
25.1What Is Command-Based Programming?WPILIB 20.1
25.2Commands & Command CompositionsWPILIB 20.2–20.3
25.3The Command SchedulerWPILIB 20.8
25.4State Machines: Logic (enum)T5817 31.1–31.4
25.5Managing Transitions (switch)T5817 31.1–31.4
25.6Binding Commands to TriggersWPILIB 20.5
25.7Structuring a Command-Based Robot ProjectWPILIB 20.4, 20.6–20.7
26Architecture Takeaways (DRY / YAGNI / SOLID)
Optional - Advanced Java Topics
27Program Design & AbstractionOPTIONAL
27.1Abstraction and Program DesignCSA 3.1
27.2Impact of Program DesignCSA 3.2
28Algorithms: Searching, Sorting & RecursionOPTIONAL
28.1Searching AlgorithmsCSA 4.14
28.2Sorting AlgorithmsCSA 4.15
28.3RecursionCSA 4.16
28.4Recursive Searching and SortingCSA 4.17
Version Control
29Git & GitHub Basics
30Git — History & Merging
Dev Tooling & Testing
31Dev Environment & Tooling
32Unit Testing
Debugging & Visualization
33AdvantageKit — AutoLogging
34Log Replay
35AdvantageScope I: Visualization
36AdvantageScope II: Custom 3D Assets
Autonomous & Paths
37Autonomous I
38Autonomous II: PathPlanner & Trajectories
Control Theory
39Control Fundamentals
40Motion Profiles
Hardware & Vision
41Hardware Fundamentals
42PhotonVision
43AprilTags & Pose
Robot Architecture
44Subsystems I
45Subsystems II — Advanced
46Team Utilities I
47Field Constants
Troubleshooting
48Troubleshooting I — Runtime Debug
49Troubleshooting II: CAN & Sim
WPILib Deep Dive
50Vendor Libraries: TalonFX
51Robot Alerts
52WPILib Commands
53WPILib Geometry
54NetworkTables
55Command Scheduler
56WPILib Timers
57WPILib Triggers
58Vendor Units & Conversions