Have students draw a scalable smiley face through programming to motivate the importance of using variables.
Promote useful and efficient code in order to encourage students to make better design choices and develop good style.
Have students create a game of Tetris in Java to work on object-oriented programming and decomposing complex programs.
Have students follow the 3-Steps Method to simplify the task of designing a deterministic finite automaton in order to further develop their problem solving skills.
Use patternCoder to help students move from conceptual model classes to code by selecting class relationships that reflect the system they want to create in Java.
Use an auto-grading tool to provide students with instant feedback on their programs and allow them to resubmit multiple times before the deadline so they can learn to find problems with and debug their code.
Have each student contribute test cases to a class-wide testing suite for assignments in order to get students thinking about edge cases and improving their implementations.
Show students how to use StackOverflow appropriately to establish standards for using internet resources in your classroom and beyond.
Have students explain their problem and ask questions about it to an inanimate object when debugging so they have a clearer idea of what the problem is before asking for help.
Have students decompose problems in a more structured way by acting as project managers who need to build teams (of methods and classes) and divide the work amongst them in a clearly organized manner.