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.
Demonstrate manipulating primitives with operators before manipulating them with methods so students can understand the basics of primitives before using them in a more complicated way.
Use dice to introduce instantiable classes in Java because it’s easier for novice students to create classes based on a familiar object.
Misconception: Students have trouble distinguishing between instance variables and parameters in Java.
Have students think about a reference to an object as a numeric memory address to help them understand how passing references works.
Misconception: Students have trouble understanding the difference between checked and unchecked exceptions in Java.
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.