Explicitly demonstrate how and where to set up a file for writing code because students often struggle with where to place code.
Spend extra time teaching Big O in intro classes that use Python because the underlying implementation of Python lists is a mystery to students that leads students to believe many operations are constant, O(1), that are not.
Misconception: With conditionals, students may try to compare the memory address of a function to a number, like x < foo, when they intended to compare x with the return value of foo.
Have all functions return something in an intro course to help students understand that functions have a start and an end, even though they are always returning.
Include a lot of visual examples in intro classes to help students learn by giving concrete visualizations of new, abstract concepts.
Have the class make instructions for a Robot class you created that will bring Chipotle back to the classroom to motivate instructions and method sequencing.
In anticipation of a relatively large project, assign smaller projects that include the programming concepts necessary for the large project.
Draw attention to types when teaching students Python to help lay the groundwork for understanding types in lower-level programming languages they’ll learn about later.
Focus on simple examples in a breadth course about systems to avoid confusing students. Save depth for upper level courses.