When students are learning HTML and CSS, have them make personal websites featuring their resumés and hobbies or websites about another topic they find meaningful.
Have students design a Java program that detects plagiarism within a set of documents so that they gain practice designing and applying data structures in a relevant context.
Have students use spreadsheets to analyze a dataset of their choice in order to provide an interesting and relevant context for developing their spreadsheet skills.
Have students design a program in Python that performs various sound-processing tasks to give them a fun way to practice using variables, assignments, if-statements, and functions.
Have students implement a web-based driving game in JavaScript to pick up classmates, who appear as 2D avatars, within Google Earth and drop them off at their homes to show students that arrays and objects are applicable to real-world problems.
Have students use Python’s Turtle graphics to draw fractals using a Lindenmayer system, instead of recursion, to give students experience with string manipulation.
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.
Incorporate robotics into your class to increase students’ interest in computer science in order to motivate their learning.
Have students write a program that generates a collage of images and/or sounds. This will help them practice image manipulation and function decomposition.
Have students develop a geographic visualization of Twitter data across America in Python to give them experience using dictionaries, lists, and data abstraction techniques.