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.
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.
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?
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: