Misconception: When students trace through recursive code, they have trouble figuring out if operations are done before or after the recursive call.
Have students pay close attention to loop bounds when tracing through code to help them identify and avoid off-by-one errors caused this way.
Discuss and explore the difference between additive (sequential) and multiplicative (nested) loop structures to give students practice reasoning about loops.
Encourage students to replace variables with values when tracing through code to reduce the necessary cognitive load.
Misconception: Students get confused with object-oriented programming in Python because function declarations explicitly take self as an argument, but function calls don’t use self as argument.
Misconception: Students who first learn object-oriented programming in Python don’t realize they need to explicitly define instance variables in Java because this is done implicitly in Python.
Misconception: Students have trouble distinguishing between instance variables and parameters in Java.
Misconception: Students may not realize that websites need and use servers to store, process, and deliver content to users’ browsers, causing struggles with the distinction between Server side vs. Client side.
Misconception: Students have trouble understanding the overall flow of a Ruby on Rails application when they access an individual page.