Organize a game in which students in a circle need to obtain their assigned item by passing the items between empty-handed neighbors to interactively demonstrate deadlock.
Use physical activities to demonstrate sorting algorithms and help students build intuition about how these algorithms work.
Have students act as elements walking through a network to sort themselves to teach students about how Sorting Networks function.
Misconception: Students believe that in a primitive assignment, x = y could be the equivalent of y = x; they think that the computer science “=” sign is the same as the mathematical “=” sign.
Misconception: Students think that both the IF and the ELSE cases of a conditional are executed every single time a conditional runs.
Use the model of Towers of Hanoi in order to help students understand recursion. To demonstrate Towers of Hanoi, use three baby ring-stacking toys and the programming language Alice.
Show students examples of infinite loops in Alice using Do-together and Do-in-order blocks with the goal of furthering students’ understanding and recognition of for loops.
Organize an activity where students make phone calls to their classmates with the goal of summing the numbers 1 through 6 in order to demonstrate recursion.
Use SRec, a recursion visualization tool, in your introductory Java courses to help students conceptualize the recursive algorithms they write.
Have students draw a scalable smiley face through programming to motivate the importance of using variables.
Have students translate between Java Array and ArrayList to highlight the differences between the two.
Use different methods of counting the stairs of the Eiffel Tower to explain how different algorithms affect Big-O runtime.
Introduce Big-O using iteration rather than recursion to make this important concept easier for students to understand.
Assign content as homework that students can learn from reading (like FOR loop syntax) so you can spend class time on more difficult topics where teacher guidance is the most needed (like what code goes inside of a loop).
Misconception: When students use the division operator during declaration or assignment of a Double in Java, like double x = a/b, they forget about integer division, which can result in rounding errors.