Define programming language terms independently of computer terminology to make concepts more accessible to students.
Encourage students who have worked ahead in the Code.org curriculum to explore PlayLab so they can use their time constructively by continuing to code.
Trace through nested conditionals with students because nesting makes it difficult for them to track which lines of code get executed when.
Use the Code.org unplugged lesson “Conditionals with Cards” to help students build an intuitive sense for how conditionals and nested conditionals work.
Emphasize to students that nitty-gritty details are not important for understanding fundamental principles of computer science to motivate students to focus on their big picture understanding.
Use the "'build your own block'" feature in Scratch 2.0 to teach "bottom-up" or "top-down" processes for breaking up problems.
Have students put their workspace on a USB drive or external hard drive so that they can continue to work on their assignments on any device in any location.
Have students build on one another’s answers during class discussion rather than starting their answers from scratch to keep them engaged throughout the discussion.
Administer group quizzes to help students learn to collaborate with one another while also gaining insights about course concepts.
Have students implement a simple GeoLocation class in Java that finds the distance between two locations using the Google Maps API to give students an interesting introduction to object-oriented programming.
Revise assignments, lectures, and exams immediately after completion so that you can address any problems while they’re still fresh in your mind.
Pick a student to live-code during class to show other students that their peers have many of the same strengths and weaknesses that they do when coding.
Have students write methods that perform tasks of a standard music player in Java to give them practice manipulating data structures in a familiar context.
Have students develop a Java program that plots pictures in a 2D grid to practice 2D array processing with a focus on nested loops.
Have students implement a seam carving program in Java to give them experience with dynamic programming, and with manipulating 2D and 3D arrays.
Teach the concept of a variable’s scope in Scratch by explaining the difference between “For this sprite only” and “For all sprites.”
Use many forms of media in addition to lecturing when presenting new information to ensure the material is accessible to more students.
Have students analyze geographic data and election return data by making a graph of “Purple America” in Java so that they can develop the tools to visualize their own data through coding.