Explain how inheritance allows the Java toString method to work when teaching printing to help students develop an understanding for how everything in Java is an object that has hierarchical relationships with other objects.
Cover the outer-loop of nested loops when tracing through loops to help students see the inner loop runs just like a single loop during execution to help students understand nested loops.
Show students what code looks like with and without new programming constructs (e.g., methods, Objects, inheritance, loops, switch statements) to motivate the reasons for using new concepts.
Show students many examples so they see that Java passes arguments by value to help improve student understanding of scope.
Show students recursive code when teaching induction to help them learn to reason about solving induction problems since this topic confuses many students.
Have students sort playing cards to teach concurrency and illustrate the power of work that happens in parallel using a hands-on activity.
Match grammar constructs of nouns and verbs to classes and methods to help students understand what goes into a class because this helps make this difficult object-oriented programming construct easier to understand.
Use tupperware containers and act out being the computer to teach students how in CS variables and statements like x=x+1 are different than variables and equations in math by creating a meaningful visualization.
Explain that Java’s return is like a platter where you can hand information between methods to help students create a concrete mental model for an often tricky subject.