Use the context of apps and digital games development to build students’ capabilities and confidence in creating a digital solution that uses a general-purpose (text based/scripting) programming that allows for choices (branching) and repetition (iteration). There is a wide range of interactive online tutorials that students could work through to learn and practise coding for a particular programming language, such as Python and Ruby. Once students have determined the purpose and requirements of the game, they describe how the solution will be created and consider design features appropriate to the audience. After the game has been developed, students evaluate its success.
Flow of Activities
It is very important to clearly state the intention of the game, namely what it is required to do (functional requirements) as well as identify if there are any constraints or factors that should influence the nature of the game or how it is developed. An important aspect of this process is developing empathy for the user. What possible constraints (usability) might the user have? Are there any accessibility needs such as having both sound and images to indicate an action (social constraint)? Are there any technical constraints such as a game requiring a specific input device to issue instructions such as a 3D mouse or a Gamepad (technical constraint)? Also user preference is important in this process, for example the users might prefer touch screen over device inputs.
At this level students are required to decompose a problem. For example for an adventure game it could mean identifying for each character their characteristics, actions, settings and sequences. Decomposition is about isolating the key elements and then teasing out features of each. This allows identification of patterns, relationships and anomalies.
Once these aspects are understood, the process then moves on the identification and design of algorithms that represent a complete, logically structured set of instructions that are needed to solve the problem as well as factors contributing to user experience.
Examining existing digital solutions enable students to identify features that may be transferable to new but similar digital solutions.
Look for cross-curricula opportunities when designing an app. For example, make links to History: What would a smartphone contain from someone in ancient times? [contacts, maps, notes, SMS, photos etc]
An algorithm is a logical step-by-step process for stating how to create a digital solution. Algorithms are generally written as a flowchart or in pseudocode. Note: There is not an expectation that both algorithm techniques are used when designing one solution.
A flow chart is a common way to visually represent an algorithm. Another relevant approach particular for games and apps is to do a storyboard which often focuses on the onscreen actions.
Pseudocode is a way of describing a set of instructions that does not have to use specific syntax. At the level students use structured English to express these instructions, for example using ‘while’ and ‘endwhile’ when describing a ‘while loop’.
When designing how the solution is created students need to refer back to any constraints identified when defining the problem, such as social and technical ones. The design of the user interface (drawing on design principles such as contrast, space and balance, and repetition) and consideration of these constraints is referred to as user experience.
At this level, students generate two or three different design ideas (ideas as to how the game/app will operate and look). These are just broad ideas with not a lot of detail. This process draws on creative thinking skills (Critical and Creative Thinking general capability) and students use their functional requirements to judge what idea best meets these requirements.
This might involve students undertaking interviews of the target audience to support the user-centred design process. They may offer screen options or initial design ideas to gauge what users like and dislike. This helps students select the best design idea for further development.
It can be expected that students at this level may be transitioning from block-based visual programming languages to general-purpose (text-based) languages. Note: General-purposes languages allow students to solve more complex problems as they are not restricted by the functionality of visual programming languages.
Some block-based visual programming languages such as the app Tynker, provide the equivalent programming instructions in a text-based language.
Python and Java are programming languages commonly used in schools.
At this level, students begin to test their solutions and make changes to the program if needed. It is a good idea for students to plan what tests they will conduct before they start coding (expected/actual results). For example, students might test if the allowed number of repeated actions in their game is the same as they planned or if a navigation path takes them to the destination stated in the design.
The process of evaluating involves judging if the digital game met its purpose. Evaluating involves using criteria to make that judgement, and at this level, students can determine the value of their game/app based on criteria related to one or more of the following: the stated requirements, innovativeness, sustainability and risks. For example, students might evaluate their games on: