What is a design pattern?
A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples. The solution is a general arrangement of objects and classes that solve the problem. The solution is customized and implemented to solve the problem in a particular context.Note the richness (detailed elaboration) of a design pattern. They contain a lot of information, both conceptual and practical. I'd see the rich practical structure of design patterns as very useful in generating and guiding discussion. This could be facilitated through a wiki format. I've had a look at some of the design pattern websites and so far the Joseph Bergin papers seem to be the most useful and applicable to a secondary school teaching situation.
Would anyone else be interested in collaborating in a wiki which, starting from the Bergin paper, developed some design patterns for a Game Making course?
Here is my (brief, yet to be documented) argument for going down this path:
- Design pattern theory has excellent credentials
- Resources are available
- It provides a framework (scaffold) for teachers who want more structure in a game making course - and in turn for students completing such a course
- It's a step forward from the present ad-hoc approach
- Design patterns are accessible and helpful to students, it would not swamp them with irrelevant or inappropriate theory
- It could help facilitate a dialogue where alternative design tools could be compared and evaluated (eg. patterns, flowboards, Event Progress Diagrams, UML). What design tools are suitable / optimal / age appropriate for game development?
TEST TUBE (also known as: Try It and See)
Students can answer their own "What if ..." programming questions
Problem / Issue: Students often ask questions they could answer for themselves ... they need to learn to be effective in answering their own questions about programs.
Forces: Students can chew up a lot of time asking low level questions and can become frustrated if they don't receive answers quickly
Solution: Provide students with small programs and get them to use the computer to probe for the answers to "What happens if ..."
Special Resources: Student questions can be a good source of these sorts of exercises. The instructor can take a student question and turn it into an exercise.
The meaning of for loops can be explored in a sequence of exercises in which the initialisation, test and increment portions of the loop are varied.
When a while loop exits and when it does not can be explored.