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.
Have students design a game of Asteroid in Java to introduce developing an object and class hierarchy.
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 a seam carving program in Java to give them experience with dynamic programming, and with manipulating 2D and 3D arrays.
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 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.
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.