Give students simplified overviews at the beginning of a course - even if that means explaining things slightly inaccurately - to avoid confusing students.
Show students the final version of a project with multiple steps to motivate them and give them perspective.
Assign tasks which require small changes to simple HTML documents to help students develop an understanding of the structure and syntax of HTML tags.
Know and point out to students the limits of Khan Academy’s JavaScript environment, which does not allow some important topics (like variable scoping) to be demonstrated.
Teach simple Java with graphics first using the Draw/Roll Die activity, having students call objects and methods before defining their own, for an engaging way to reinforce material.
Have assignments include visualizations of the code students create and run to help them see exactly what it does.
Misconception: In Java, students struggle with equal signs because they mistakenly see them as a sign of symmetry.
Always use the keyword ‘this’ in Java, and trace through many examples, to help students understand it.
Make the minimum requirements of an assignment worth a B to encourage students to push further for an A.
Misconception: Students mistakenly believe comparison expressions use the same syntax in math, English, and logic.
Show students where logic symbols - like pipe - are located on the keyboard so that they don’t struggle to find them.
Tell students that the concepts they’re learning are useful “all the time” so they realize the material will be important in the future.
Give students constant exposure to code, even if they aren’t able to fully understand it right away, to develop their comfort with code over the long term.
Rather than taking away points, have students with sub-standard code improve it to better simulate how actual software engineering works.
Structure homeworks like code reviews to help students iterate on their code and learn the importance of readability.
Rotate students into different pairs during a single class period so they learn to explain and read code quickly.