Use the Code.org unplugged lesson “Conditionals with Cards” to help students build an intuitive sense for how conditionals and nested conditionals work.
Trace through nested conditionals with students because nesting makes it difficult for them to track which lines of code get executed when.
Define programming language terms independently of computer terminology to make concepts more accessible to students.
Misconception: students think that when you assign a = b, there is no longer anything assigned to b because b empties its contents into a.
Ask students “What is the simplest input to this problem?” when teaching recursion to help students learn to identify appropriate base cases for each argument of their function.
Use Python’s map function to introduce students to loops early on, because the map function is an provides an easy transition to loops.
Use visual depictions of programmatic concepts, such as recursion, to improve students’ understanding of the concept and reinforce students’ intuition about the concept.
Have students who are transitioning from Python to Java explore the “From Python to Java” website to show them the differences between the two languages.
Ask students "do you know in advance how many times you'll need to go through the loop?" when deciding between using a for or a while loop, because this is a good rule of thumb for them to use.