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.