When starting out with people learning software development I recommend a set of resources to get them started. Usually these are Code Kata’s and lanuage fundamentals with some reading.
At some point there is a need to translate these things into a bigger “thing”. Something that gives them a better idea of code design and decoupling. Today I would like to suggest the following Tic Tac Toe game as a good candidate to do this.
I’ve broken the approach up into slices:
Slice 1: Just engine for determining whether a game is won or not. Slice 2: Put a Web Based UI over it – try keep the logic for the UI separate from the logic from the game Slice 3: Put a Desktop UI over it - again keep the logic for the UI separate from the logic from the game Slice 3: Implement a “Play the computer” option
Give it a try and see how you find it.