Problem: My School is not as energy efficient as it could be
Creating Digital Solutions – Level 10
Define and decompose real-world problems precisely, taking into account functional and non-functional requirements and including interviewing stakeholders to identify needs.
What is meant by define and decompose a real-world problem: A real problem or difficulty students can identify in their own lives, or the lives of those around them, maybe a social difficulty students encounter, a lack of familiarity with an environment, or a lack of cohesion in a study group or classroom. It could be anything a student might deem problematic that could possibly be improved by a game or app. To decompose means to break it down: what is at the heart of the problem, and what are the factors impacting it?
Our example problem involves Quinten, an environmentally conscious year 10 student who has become concerned that his school wastes too much electricity. He feels the school isn’t doing as much as it could to be energy efficient. He knows that many of his peers play computer and video games, but that few of them consider their individual impact on the environment.
Quentin will need to brainstorm some ideas that he thinks will convince his classmates to more consciously consider the impact of their electronic usage.
What is meant by Functional requirements: If the solution to the problem is a digital product of some description, what is required to ensure the product works the way it is intended to work?
After drafting and redrafting a range of unique concepts, Quentin plans to create a mobile app for all students in years 10, 11 and 12 to gamify their energy use.
Gamification is the process of taking everyday tasks and marrying them with elements of video games. If you think of an Xbox gamerscore, players earn points for their accounts by completing challenges in certain video games. As in the days of arcade machines, today’s players compete to get the highest gamerscores they can. Quinten plans to develop a score system for energy use, that will encourage students to reduce their electricity usage.
Functional requirements for Quinten’s game might include:
- Fun and rewards – His goal is to reward players for saving energy. If the students get nothing out of the experience they are unlikely to continue playing.
- Scoring system – How will the score be calculated? Does using a brand new high performance gaming computer suffer the same penalty as working on a 7 year old laptop plugged into the wall?
- Online connectivity – The app will need to connect to the internet to sync and share player data and scores.
- Timer – He plans to award points to players based on how long they use a particular electrical device. The longer a player uses an electrical device, the lower their score will be when they finish using it. This will be multi-layered including the lights in the room, any computers which are turned on, if the player is listening to music through a stereo, etc.
- Pre-programmed electronic devices – To make it easier for players should Quentin include a list of electrical devices players can choose from? Should players also be able to input their own, or should it be entirely decided by the app?
- Platform – Since he’s making a mobile app, it would be a good idea to support Android, iOS and Windows phone platforms to ensure as many students as possible can play.
What is meant by Non-Functional requirements: What is required outside of the app or digital product’s internal eco-system? Think about elements that are not needed for the digital product itself to physically function as intended, but rather outside influences that will determine whether or not it is a success.
Quentin drafts a list of non-functional requirements for his energy saving app. Some ideas he comes up with are:
- Players – His most important factor. How will he entice his schoolmates to play his app? If his end goal is to reduce energy usage, what will he do if no one wants to play?
- Budget – What costs will be involved? Does Quentin intend to create the entire app on his own time and release it for free? Does he have access to all the software required to build it? Will players have to pay to own the app?
- Time constraints – How long will this app take to create? Is Quentin creating this in and around all of his other schoolwork and homework? How quickly does he need to finish it to maximise the amount of successful energy reduction?
What is meant by interviewing stakeholders? Stakeholders can be a variety of different people. A stakeholder could be a company or an individual who commissions a digital product with the intention of financing development and publishing the release. A stakeholder could equally be an end-user who is a member of the target audience.
Conduct an interview with the stakeholder, whoever that may be, and create a comprehensive list of their desires and requirements. Knowing the audience of an app or game, and those that may be affected by it are paramount. It is important to see the project from a variety of perspectives, particularly those who may not be the intended audience, but might be directly or indirectly affected by its existence and use.
Quentin intends to build and fund the app himself, therefore he has no external body to respond to. Crucially however, players are needed for the app’s success. He sets out to interview a group of his peers, describing his app idea to them, and asking what they would want to see in a game like this.
Some crucial requirements he might receive:
- No cost – Almost all of those interviewed indicated they would not pay for an app like this.
- Fun – It must be fun to play. The idea sounds good on paper, but if it isn’t interesting or entertaining most indicated they would drop it fairly quickly.
- Low battery consumption – Keeping this app running throughout the day sounds resource intensive. If it causes the player’s phone to drain the battery quickly, they will stop playing it.
- Feedback – If a player does a fantastic job saving energy, they want the app to tell them. Their success should be shouted from the rooftops to ensure maximum bragging rights.
Design the user experience of a digital system, evaluating alternative designs against criteria including functionality, accessibility, usability and aesthetics.
Students should look over the criteria provided before beginning their project in earnest, and consistently refer back to it as they progress through the major steps of their game or app development. Students should brainstorm, draft and sketch possibilities with careful evaluation and annotation of all ideas. Ideally a large number of unique designs will be created before ultimately deciding on the digital product’s final form.
This is the crucial stage of development where students will take their prior research regarding all functionality, and begin to craft an appearance around these requirements.
What is the user experience? During the design process students should be creating a visual draft of how their digital product will perform from the user’s perspective. Ideally this should be almost like a storyboard of the app or game. This is an early paper prototype.
What is meant by accessibility, usability and aesthetics: Remain mindful during the design phase of these three key criteria. The digital product should not alienate members of the target audience. This can even include something as simple as the size of the text on-screen. The design should be easy to use and not confusing. However these requirements should not jeopardise the product’s overall appearance. Students should strive to achieve a balance between a functional, accessible product, and a well designed and aesthetically pleasing one.
What is Quentin’s app going to look like? Will he draw some inspiration from Xbox Live or other online gaming services? What might regular operation of his app look like to the players?
He will need to produce a large variety of sketches and designs demonstrating a suitable range of unique ideas. He is targeting 15-18 year old high school students and so his app will need to be suitable for this audience. They are unlikely to respond to bright and gaudy colours, and much more likely to enjoy a muted palette. He will need to present his concepts to his classmates and get feedback on what they like and don’t like. The customer is always right.
As he creates design sketches he regularly evaluates his work, ensuring that his app’s functionality never suffers. If he finds a design which he thinks might jeopardise his app’s core functionality, he is sure to note the fact, justifying his decisions.
Design algorithms represented diagrammatically and in structured English and validate algorithms and programs through tracing and test cases.
What is meant by diagrammatically: The solution to the problem expressed in a visual diagram that is easy for others to follow, like a mind map or flowchart.
Students should develop diagrams of their algorithms before any coding or use of software takes place. To complement these diagrams, students should also express their digital product’s algorithms in structured English in a form like pseudocode. Students need to test their algorithms at various stages, in both planning and development, and should keep records of the various changes to the algorithm design as it evolves.
What is meant by validation through tracing and test cases: The ‘validation’ of algorithms and programs depends on the aims and goals of the application or game. The purpose is to create a test case where an algorithm is performed with a specific result in mind. The test determines whether or not the specific result can be achieved satisfactorily.
Tracing an algorithm involves following one’s diagram from start to finish with the purpose of prototyping its functions to discover any unforeseen consequences or missed information. Algorithms will have many different branches, and it is important to refine them early in development.
Quinten begins by clearly setting out the aims and goals of his application – to reduce the electrical consumption of the school through gamification. He developes a diagrammatical representation of his app’s functions in the form of a flowchart to represent how someone would navigate the app, and the features and outcomes. To complement this, he expresses his algorithms in pseudocode to improve readability for those unfamiliar with his app.
He trials it himself through a ‘desk check’, but invites many of his peers to test it also to see if they can navigate to the desired outcomes. They find several problems with it, so he produces more versions, tracking the progress he has made.
Develop modular programs, applying selected algorithms and data structures including using an object-oriented programming language.
What is meant by modular programs: A software design technique where the larger functions of a program are separated into smaller, self-contained pieces that can be run from the main program. This is done in such a way as to ensure that each module of the program contains everything necessary to execute one specific function.
Think of your body as a computer program. When you were very little you were programmed by your parents to walk. Learning to walk (your programming) was a tricky process: “Place the left foot in front of the right, now position the right foot in front of the left. Careful not to lose your balance,” and so on. Nowadays you don’t think about the act of walking, you just do it. Your brain decides “I want to go to the kitchen” and the modular program ‘Walk’ is enacted,and takes you there.
If your body wasn’t a modular program, the act of walking would require you to recall all of the steps in the walking process each time you moved somewhere.
What is meant by an object-oriented programming language: A programming language model based on the concept of “objects” rather than “actions” and data rather than logic. Examples of object-oriented programming languages include C++, C#, Java, Python, Swift and Visual Basic.
In the real word, an object is anything that is well-defined with its own characteristics; think of a car, a chair, a light bulb, a door, etc. The characteristics of these objects make them easily identifiable from other objects. Object-oriented programming encourages us to think about how a program can be reduced to objects with their own characteristics, and their interactions between other objects.
Students should consider the algorithms of their digital products, and break them into separate modules. At this level students should be developing their products using an object-oriented programming language.
With the diagrammatical prototyping of his algorithms complete, Quentin now begins dividing his app’s code into modular programs. He determines which elements can be separated and designs new smaller flowcharts of these algorithms expressed exclusively.
His next challenge is to choose a specific object-oriented programming language to code his app in. Quentin has prior experience writing apps for his iPhone in Swift, but Android does not currently support it. There is talk of support in the future, but Quentin needs to build this app now. Android uses Java, which he has used but to a much lesser extent. One final thing to consider is that it is possible to port Java to iOS.
If he intends to target as many students as possible, targeting both platforms is vital. He will have to consider and then justify his final decision.
Evaluate critically how well student-developed solutions and existing information systems and policies take account of future risks and sustainability and provide opportunities for innovation.
A student should produce a self-reflection and evaluation of their work, addressing how their solution to the problem is effective or not-effective. Students should consider the risks of future developments for their products, being mindful that others may create something inspired by their own idea. Lastly how does the student intend to use their own work as an opportunity to build future innovations?
Quentin has released his app into the hands of his peers and enjoys a brief respite before composing a reflection of his work. He studies his classmates playing the game and builds comprehensive notes detailing whether his initial goal has been achieved and whether the students are now using less electricity than before.
He reflects on what he would do differently if he were to undertake the same project with the knowledge he now has. He writes about his positive impact on the school’s immediate environment, and speculates on the larger climate were this app to be deployed on a much larger scale. He thinks of potential risks that may develop on a larger scale and includes them.
Finally he discusses opportunities he is providing for future innovation. Quentin decides to release the source code for his app online, freely exchanging it with other programmers around the world to build upon and change his initial idea. He hopes that this will create bigger and better opportunities.
Creating Designed Solutions – Level 10
By the end of Level 10 students critique needs or opportunities to develop design briefs and investigate and select an increasingly sophisticated range of materials, systems, components, tools and equipment to develop design ideas.
Apply design thinking, creativity, innovation and enterprise skills to develop, modify and communicate design ideas of increasing sophistication
To satisfy this criteria a student should adequately demonstrate their ability to design creatively and innovatively. Ideally a student should exhibit an ability to effectively and clearly communicate increasingly sophisticated design ideas.
The documentation Quinten has produced over the production of his app will serve as clear evidence of his ability to satisfy this criteria.
Generate, develop and test design ideas, plans and processes using appropriate technical terms and technologies including graphical representation techniques.
A student should demonstrate their ability to generate, develop and test design ideas during their initial drafting and prototyping. Where applicable students should use appropriate language across the scope of their production, including across any diagrams.
Work flexibly to safely test, select, justify and use appropriate technologies and processes to make designed solutions.
Students should regularly prototype and test the different stages and functions of their digital product, with a keen intent to discover unforeseen errors. Any software that a student uses during the creation of their digital product should be compared to competitors and its use justified.
With Quentin’s prototyping complete, he can now begin to build and program the app. What sort of software does he think he will use for this project? If he is going to build the app’s graphics in Adobe Illustrator and Photoshop, he needs to produce a justification for doing so. This can be as simple as prior experience and knowledge of these particular software suites, but ideally should include justification over other software options.
Evaluate design ideas, processes and solutions against comprehensive criteria for success recognising the need for sustainability.
A student should produce a self-reflection and evaluation of their work, addressing how their solution to the problem is effective, while recognising the need to address sustainability requirements.
Sustainability requirements can include environmental and economic needs. Does the student’s solution to the problem generate a lot of waste like paper? Is the student’s solution to the problem free for others to consume?
Planning and managing
Develop project plans to plan and manage projects individually and collaboratively taking into consideration time, cost, risk and production processes. Students create designed solutions for each of the prescribed technologies contexts based on an evaluation of needs or opportunities. They develop criteria for success, including sustainability considerations, and use these to judge the suitability of their ideas and designed solutions and processes. They create and adapt design ideas, make considered decisions and communicate to different audiences using appropriate technical terms and a range of technologies and graphical representation techniques. Students apply project management skills to document and use project plans to manage production processes. They independently and safely produce effective designed solutions for the intended purpose.
Before a student begins building their digital solution to the problem, they should engage in adequate planning which indicates a consideration of the time available, projected costs, risks involved and production processes such as software required.
Since he wants to reduce his classmate’s electrical consumption as soon as possible, Quentin plans to finish his game within the month. His plan should indicate how he intends to stay within that timeframe, and what milestones he is setting. He is planning to use some of the Adobe programs for the app’s graphics, but fortunately his school has access to them, eliminating any external cost. He provides evidence of his considered risks which include time mismanagement, and his own lack of experience creating games and apps in Java as opposed to Swift. Nevertheless he provides a clear and concise production process.
Investigate the connections and distinctions between and the relative value of concepts including fairness and equality, and respect and tolerance
Students should ensure their digital products uphold a degree of fairness and equality, and should promote respect and tolerance. Even amongst competitive apps and video games, there are rules which should be upheld. Ideally students will spend time discussing the ethical properties of their digital products and how these values are maintained and promoted.
Explore a range of ethical problems and examine the extent to which different positions are related to commonly held ethical concepts and principles, considering the influence of cultural norms, religion, world views and philosophical thought
A student should consider the context in which their digital product will be produced and consumed. Different cultures appreciate different societal expectations and what is inoffensive to one may be of grave offence to another. Students should maintain a crucial balance between desired design outcomes and ethical responsibilities.
Distinguish between the ethical and non-ethical dimensions of complex issues, including the distinction between ethical and legal issues
While a student is considering their ethical responsibilities, evidence should be presented which demonstrates a firm grasp of the difference between ethical and legal issues.
Quentin is under no legal obligation to ensure his app is not misused or misappropriated once it has been released. However feels he has an ethical obligation to ensure players do not attempt to hijack his good intentions and use them for unforeseen means.
He has been careful to observe all copyright and intellectual property laws, and is confident his app can be released without legal concern.
Decision Making and Actions
Discuss issues raised by thinking about consequences and duties, in approaches to decision-making and action, and arguments for and against these approaches
Students should think about the potential consequence and implications their game or app might have, and let these concerns filter into their decision making process, the design and potential safeguards of their project. They should think about the potential pros and cons that use of their app or game in wider society might hold.
Quentin has drafted a small list of ethical concerns that he foresees might arise with students playing his app. The biggest and most important one he can think of is abuse of the leaderboard. The leaderboard will be accessible by everyone playing the app, and so without proper moderation, it could become a hub of crude and offensive language, or insults aimed at other players. To combat this, he intends to create a maximum character limit of 8 for all usernames, and install a word filter to ban commonly used crude words.
Investigate how different factors involved in ethical decision-making can be managed by people and groups
Students may very well find there are concerns about how their digital product might be interpreted, used or misused. Students could then investigate games and apps that may have had similar concerns either during development stage, or post release. How did these groups manage these decisions? What changes did they make during the development, or what alterations did they make once they realised it was being misused? Students could then apply their findings to their own projects.