Programming is one process of the larger problem-solving methodology of creating digital solutions. Using a programming language can create a solution to a problem. The starting point for the problem-solving methodology is finding out about (investigating) and working out (defining) the problem. Once the problem has been defined the next step is to represent the solution as a series of steps (an algorithm). The algorithm can highlight any decisions (branching) that need to be made and what pathways might result, as well as how a user might engage and provide input. Algorithms at this level might be described verbally, written as a series of steps, represented on card, drawn or created digitally. The algorithm may then be implemented using a programming solution where students use a visual programming language that involves dragging and dropping programming blocks into a sequence. The final process is to evaluate how well their solution solved the problem.
Flow of Activities
When trying to solve a simple problem an important first step is to define the problem. This helps us work out a relevant solution. A simple problem is one that has a straightforward solution. At this level the students should attempt to create a solution that meets a common personal, school or community need; however, for this unit the focus is restricted to a personal or school need.
At this level, defining a problem initially involves students summarising the facts or features of an existing problem or an opportunity (being proactive in creating a solution rather than responding to a problem) so they can draw some conclusions about it.
Note: Typically, when defining problems you do not ask ‘how’ as this belongs to the process of designing a solution (how can a solution be created?)
Once the problem has been defined, the solution (how it can be solved) can be represented as an algorithm.
Students need to determine how the solution will be created. This is done by stating or following an algorithm. At this level the algorithm can be verbal or drawn using a combination of images and text or perhaps by sequencing ready-made cards.
The algorithm needs:
Problems that require a digital solution often need content that is prepared or sourced prior to programming the solution. For example, for a simple guessing game where the user selects the correct coding instruction to create a geometrical shape, the content includes the correct coding sequences in a suitable language. Consideration is also given to the kinds of processes to be used; for example, checking the coding instruction using a Pro-Bot or a turtle program such as Pencil Code to draw the shape.
Creating storyboards or flow charts helps to record relationships between the content and processes.
Once the plan (algorithm) for the solution is completed, students follow the instructions using their visual programming language.
Design a sequence of instructions using words and/or symbols for others to follow. For example:
One student creates an image made up of several attribute blocks. The student then instructs their partner to recreate the image by selecting from a pool of blocks. This task uses technical language of correct shape name, colour and size as well as directional language: above, beside to the left or right.
Discuss the algorithms: How easy was the algorithm to follow? Were the steps in order? Did the steps lead to the completion of the desired outcome?
Asking procedural type questions (How do you build …? How do you make …?) may give rise to the need for instructions to solve the problem. These instructions are considered an algorithm, a series of step-by-step instructions to complete a desired task.
Depending on the problem, a digital solution may be required; for example, as with these design-based questions:
Visual programs are made by dragging and dropping blocks to create a computer program. Each block represents a different instruction.
In most visual programming languages, the blocks are grouped by colour with each one signifying a particular function; for example: movement or adding sound. They could also signify traditional instructions to control decisions such as the repeat loop instruction.
At this level, students need skills in using a programming language that creates options for users to make choices in solutions. For example, a user input and branching mechanism such as buttons in a slideshow or selecting a different sprite to follow an alternate pathway in a story created in Scratch.
Programmable robotic devices that use a visual programming language can be used in engaging ways to develop computational thinking skills. There are many types of robotic devices available, each with its own mobile app to enable control and/or programming.
Robotic devices can be used effectively across a range of learning areas.
After students implement their digital solution it is important that they evaluate it.
One form of evaluation considers how well the solution met the desired outcome and in particular the problem defined at the beginning of the process. Did the content and processes used, contribute to a suitable solution? Did the solution meet a common personal or school need?
At this level, students use the criteria to determine how well their solution met one or more of the following needs:
For this unit, students should restrict their criteria to personal or school needs.