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 write a genetic algorithm in Java to solve instances of the Traveling Salesman Problem so that they can practice object-oriented programming and responsibility-driven design.
Emphasize the importance of documentation when working with spreadsheets or any programming language for future reference.
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.
Compare classes in Java to the drawers of a file cabinet to model object oriented programming through an easy to recognize analogy.
Introduce recursion using the example of opening a present wrapped in several layers of wrapping paper.
Emphasize the importance of developing a consistent naming schema, especially for booleans, as a part of good style.