Provide headphone splitters and screen readers when blind and sighted students pair-program to help ensure that each student works for an equal amount of time.
Have students design a simple game using classes in Python so they realize that even beginners are capable of writing interesting programs.
Have students implement the dice game Flip in Java to introduce unit testing and to give students practice using loops and data structures.
Have students implement an algorithm in Java to solve mazes so they can practice manipulating 2D arrays, stacks, and queues.
Have students design a game of Asteroid in Java to introduce developing an object and class hierarchy.
Have students simulate programming in Scratch in a pair activity where one student is the Controller and the other is the Code.
If you discover something new in class, use the opportunity to show your students that learning opportunities are always present.
Emphasize the importance of developing a consistent naming schema, especially for booleans, as a part of good style.
Introduce recursion using the example of opening a present wrapped in several layers of wrapping paper.
Have students use a recursive algorithm to solve the problem of only eating the squares of a chocolate bar that contain nuts to introduce recursive algorithms for arrays.
Create a programmatic contract, a document that states students will break an assignment into smaller components, for a large programming project to give students experience with modular design.
Compare classes in Java to the drawers of a file cabinet to model object oriented programming through an easy to recognize analogy.
Draw a digital 8 on the board to introduce an activity that uses the seven segment display to show how any information can be encoded into functions.
Have students develop a geographic visualization of Twitter data across America in Python to give them experience using dictionaries, lists, and data abstraction techniques.
Have students write a program that generates a collage of images and/or sounds. This will help them practice image manipulation and function decomposition.
Incorporate robotics into your class to increase students’ interest in computer science in order to motivate their learning.
Use Droplet, a blocks-based text editor, to help bridge students’ learning gap between blocks and text.
Have students create a Python program that implements an automated authorship detection algorithm, which gives them an opportunity to practice working with strings, lists, and loops.