Use videos to introduce new information and text to review it, as each is better suited to different stages of the learning process.
Encourage students to work on side projects to make sure they are getting enough programming practice and to make them more marketable.
Based on Khan Academy’s internal observations, use text-based languages in class for students who are at least 12 years old to begin giving them experience with syntax.
Have students work on their own when first introduced to material then progress to pair programming projects to optimize pair programming outcomes.
Have students try to find John Smith in n cities when teaching web development to help students understand the importance and hierarchy of file structure through narrowing down search locations.
Encourage students to stick with CS by providing them with role models and mentors in the tech fields.
Have students test in different environments to understand the interaction between code and the environment the code is executing in.
Explicitly demonstrate how and where to set up a file for writing code because students often struggle with where to place code.
Help students see that they’re building basic understanding over the course of the semester that will turn into wider understanding since they may become frustrated with their perceived lack of progress.
Remind students to match types on both sides of the equations because they often try to combine types when creating variables.
Don’t allow repeat variable names in intro courses to avoid confusion about different variables with the same name.
Misconception: students struggle with scopes of variables and may not understand when a variable can be accessed and when it cannot be accessed.
Misconception: students develop the habit of putting the type in front of variables; they don’t realize that this creates a new variable resulting in lots of variables with the same name.
Teach "if" statements before "switch" statements, then explain how "switch" is a specialized case of "if" by translating an "if" statement into a "switch" statement.
Show intro students in class how to force stop a program running in terminal because they need to be shown how to get out of a running infinite loop, it’s a very useful skill.
Misconception: students struggle with the onMousePress method (and other mouse interaction methods) in the Java objectdraw Library from Williams College; they need help understanding it’s called even when don’t explicitly call it.
Insist students use Javadocs as a resource in intro Java classes to reinforce the value of self-directed learning and ensure they know how to reference important documentation.
Relate how cool it would be to have the entire dictionary for another language put into your head to importing libraries in Java to help students make sense of this abstract concept.
Misconception: If you consistently use the same variable names during class in lectures and examples, students may incorrectly assume objects in Java can only have those names.