Provide students with an algorithm which is written in everyday language and have students write pseudocode in order to help them practice the process of translating the ideas in their heads into code.
Have students use lollipop sticks or toothpicks to represent each statement call in an N-ary recursive algorithm.
Introduce Big-O using iteration rather than recursion to make this important concept easier for students to understand.
Use different methods of counting the stairs of the Eiffel Tower to explain how different algorithms affect Big-O runtime.
Have students write a program that constructs an n x n Magic Square in Java so they gain practice working with bounds in 2D arrays.
Run a pair programming contest in Python to motivate, challenge, and boost students’ self-confidence.
Use SRec, a recursion visualization tool, in your introductory Java courses to help students conceptualize the recursive algorithms they write.
Have students decompose problems in a more structured way by acting as project managers who need to build teams (of methods and classes) and divide the work amongst them in a clearly organized manner.
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.
Use Dixie cups with numbers written on the bottom to demonstrate sorting arrays and heap operations in a tangible, physical way.