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. Like(1904 Likes)
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. Like(1357 Likes)
Use SRec, a recursion visualization tool, in your introductory Java courses to help students conceptualize the recursive algorithms they write. Like(1448 Likes)
Run a pair programming contest in Python to motivate, challenge, and boost students’ self-confidence. Like(1549 Likes)
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. Like(1536 Likes)
Use different methods of counting the stairs of the Eiffel Tower to explain how different algorithms affect Big-O runtime. Like(1513 Likes)
Introduce Big-O using iteration rather than recursion to make this important concept easier for students to understand. Like(1457 Likes)
Have students use lollipop sticks or toothpicks to represent each statement call in an N-ary recursive algorithm. Like(1493 Likes)
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. Like(1472 Likes)
When teaching introductory courses, teach students to use “top-down thinking” and “bottom-up implementation.” Like(1130 Likes)
Often, intuitive examples trump overly-technical description for introductions to tricky concepts such as Big-O runtime. Like(1131 Likes)
Use graphs, visualizations, and examples to help make seemingly ‘ill-defined’ topics like Big-O feel more concrete. Like(1148 Likes)
Do not have students write code for common algorithms. Instead, incorporate common algorithms into your class in novel course-specific variants Like(1162 Likes)
Students often get stuck because they start working on a problem without thinking about what they need to know and do in order to get a working solution. Like(1129 Likes)
Even if students are developing useful strategies for problem solving, they can be easily discouraged if they don’t see immediate, good results. Like(1059 Likes)
Remind students about steps of the problem-solving process as they develop algorithms to solve programming problems. Like(1077 Likes)
To show that algorithm design is difficult, have students write algorithms, exchange their work, and then attempt to execute each others instructions. Like(402 Likes)
Have students work in small groups to solve logic puzzles so they develop algorithmic thinking and good problem-solving habits. Like(342 Likes)
Remind students how important creating proposals and design documents is for efficiently writing good code in less time. Like(317 Likes)