Student should develop an understanding of computer programming as a collection of smaller programs – functions that collectively work to solve complex problems. Students could use programmable robots or microcontrollers to solve problems of increasing complexity, progressively adding additional functions such as the control of motors, lights, sounds and sensors. Students should apply the problem-solving processes of defining the problem, generating design solutions and prototypes and following their algorithm when implementing their program. The final solution should be evaluated against stated criteria.
Flow of Activities
Before a solution can be designed and created it is necessary to find out what is the cause of any existing problem and what will solve it or for a new situation, what is required of a solution. This means students must initially define the problem and decompose into a set of functional requirements that consider the social, technical and usability constraints to their solution.
Electronic programming boards can be used by students to create digital solutions for a range of problems. The programming boards typically use a microcontroller which is a small chip (a tiny computer) that sends and receives signals to turn things on and off. The microcontroller is connected to inputs such as buttons or sensors and outputs such as lights or a speaker. These components combined together are referred to as an embedded system. An embedded system is designed to run one program.
Examples of programing boards include Arduino (many different types including Lily Pad, Nano or Esplora), BBC MicroBit, Raspberry Pi and BlueBerry4.
LEGO® MINDSTORMS® products such as EV3 incorporate an on-board microcontroller referred to as an intelligent brick.
Discuss the internet of things (IoT), which has made it possible to automate many processes we undertake in our daily lives. Now with the emergence of AI and the opportunities for voice commands, another level of automation is possible. It is possible student’s developed systems incorporate speech recognition to identify spoken commands.
Programmable robots or microcontrollers can be incorporated into digital solutions to solve problems of increasing complexity, progressively adding additional functions such as the control of motors, lights, sounds and sensors.
At this level, students should be generating design ideas using techniques such as brainstorming, forced analogies, prototyping and SCAMPER (substitute, combine, add something, magnify or minify, put to other use, eliminate), A paper prototype can also be used in the design process to map out plans what’s on screen, the logic behind transitioning between screens and how various elements may work together as a system. The paper prototype can inform algorithm development.
Algorithms are generally written as a flowchart or in pseudocode. At this level, students are expected to write their algorithms in structured English.
This context may also include things like chatbots. You may wish to incorporate Artificial Intelligence (AI) and the ways in which we engage with chatbots for product and service information. Students can follow a sequence of lessons that enables them to design their own chatbot.
Natural Language Processing (NLP) interprets text and speech. Chatbots provide a useful context to explore NLP. Students consider a user interface that is based on a user interacting with a chatbot online.
Student should develop an understanding of computer programming as a collection of smaller programs – functions, that collectively work to solve complex problems.
Link to Digital Systems: Many educational robot kits and microcontrollers can be connected together to form a networked environment, with opportunities to explore how data is transmitted to and from devices using wired connection, infrared, wireless connections, and in some cases data transmission methods such as sound, light or touch.
At this level, students are required to test and make modifications to their solutions as they are developing it. Testing involves selecting specific functions/features of the solution to check that they operate as planned, for example, did a light go on when a specific button was pushed?
Explore implementing a digital solution that demonstrates how to control appliances, and to investigate home automation. Examples may include programming a binary switch using (0 and 1) as input for off and on, or detecting speech and recognising a command to turn the appliance on or off. Alternatively students record an audio file and incorporate this into their computer program.
Students code a chatbot in Python, a conversational program capable of responding in varied ways to user input, including with the use of smart sentiment analysis.
Evaluation differs from testing as it requires a judgement about how well the entire solution meets the functional requirements. This process happens once the solution has been created, whereas testing takes placing during the development of the solution.
When evaluating, students may assess their solutions on: