Java Tutorial

Facilitator Guide

Facilitator Guide

This course is for developers who already understand data structures, control flow, functions, modules, testing, and at least one production language. The goal is not to teach programming from first principles. The goal is to help experienced developers become productive in Java by connecting Java syntax, runtime behavior, type-system choices, and library idioms to concepts they already know.

Course Promise

By the end of the six lessons, learners should be able to:

Delivery Format

The course is designed as six sessions of 120 minutes each. Each session has the same shape:

TimeSegmentTeaching Intent
0-10OrientationConnect the Java concept to equivalent ideas learners already know.
10-30Demo runExecute the demo, then inspect the entry point and type graph.
30-55Guided code readingHighlight Java-specific syntax, lifecycle, invariants, and API design choices.
55-85Function-level exerciseLearners implement small functions with TODO comments and stable signatures.
85-105Solution compareApply answers, compare with learner solutions, and discuss tradeoffs.
105-120Extension and recapAdd a small variation, summarize rules of thumb, and note what to practice next.

The structure intentionally repeats so learners spend less cognitive energy understanding the workshop mechanics and more energy learning Java.

Instructor Preparation

Before class:

Recommended room setup:

Teaching Stance

Experienced developers usually need precision, not motivational filler. When a Java feature appears, explain:

Prefer code reading and refactoring questions over trivia. For example, ask "what state can this object be in after construction?" instead of "what is a record?".

Handling Mixed Backgrounds

For developers from dynamic languages:

For developers from C, C++, Rust, or Go:

For developers from JavaScript or TypeScript:

Facilitation Checkpoints

Use these checkpoints before moving between major segments:

Production Delivery Criteria

The material is delivery-ready when all of the following are true: