Instruction Approach

Celebrate Success to Reinforce Process

Success is exciting!
Reinforcing the process helps use replicate that success in future situations

Identify and Build on Student Insights

Our “mistakes” are often just misapplications of good ideas.
Rewinding to that good idea, clarifying its limitations, and rebuilding from there helps students identify applicable scenarios and adapt to new challenges.

Interactive Learning

Many students (including myself!) learn more by interacting with the material.
Technology enables interactive collaboration, both when problem solving and writing code.

Student Customization

Adapt to student's pace, scaling up/down both in-session approaches and "homework".
Reframing a topic to a student’s domain of interest is often very motivating

Working Together

Visualize and Interact

Problems: collaborative whiteboarding, interactive demos

Code: Utilize the IDE to provide Quick Info, Find References, Completion, Signature Help, Refactorings, Debuggers, etc.

Emphasize the Process

It's not about writing perfect code on the first try. Even the pros don't aim for that.
Correct/optimized code can be very short, hiding how much effort went into it.