Algorithmn/Programming Plan
The following programming plan has been largely based on using Scratch. It is equally (if not more) important to develop computational thinking as teaching the language of programming. Using the blocks in Scratch enables even very young children to begin to programme without having to worry about mistakes in syntax. Using a single programming environment allows for greater progression of skills. Although, children will also be introduced to Tynker and Rapid Router to allow them to evaluate the benefits and disadvantages of different applications.
The plan aims to introduce skills progressively from year 1 to year 6. At the end of each unit pupils are given the opportunity to use the skills they have learnt to create their own project.
At all times pupils are encouraged to develop resilience and to find their own solutions to problems. They are also encouraged to work collaboratively. Children are invited to join the online Scratch community and there is a school studio where they can share and comment on one another’s projects. Therefore learning from one another.
By the end of year 6 pupils will also have had experience of using textual language.
The skills have been linked to the progression pathways. Many skills are repeated throughout all units but have only been mentioned when first introduced.
Wherever possible activities are linked to the class topic.
Many of these ideas based on activities suggested by Phil Bagge
Year Group |
Planning/unplugged Activity |
Programming Activity |
Skills |
Concepts/ Computational thinking |
1 -Develop
|
Create symbolic algorithm (ie using arrow cards) Use this to program Beebots to follow given route. Use Bee Bot maze planning sheet to plan route. (with symbols) |
Use ready made Scratch “games” to direct object along given route (also use Rapid Router for some tasks) |
Is able to express a linear algorithm symbolically Inputs precise instructions Executes, checks and changes programs
|
Knows that computers need precise instructions (AL) Knows what an algorithm is |
2 -Engage
|
None – this is “tinker time” |
Exploration – adding sprites, changing sizes, looks, making sprite move, turn |
Inputs commands to control objects for a predicted outcome |
Know that users can develop their own programs
|
2- Develop |
Dress child in a different costume. Are they now a different child? Change the costume? Are they still the same child? How many children did we have? |
Changing costumes – dressing up game Create various costumes for a sprite, when sprite clicked the costume changes |
Creates and edits digital content
|
Understands the difference between programming an object to change and creating a new object |
2- Develop
|
Discuss actions in real life which happen repeatedly – what words could we use to describe these? |
Make a face go repeatedly from sad to happy using costumes |
Uses loops within programs Applies solutions to different situations |
Knows that solutions can be applied in different situations |
2 - Develop
|
Conversation algorithm planning sheet
Stress each line is what characters do simultaneously |
Create a conversation between 2- 3 sprites. Use their algorithm to write script for each sprite so that sprites “take turn” in speaking Test program/debug algorithm and program as required Can program be tidied up? (eg combine wait commands) |
Sequences and pauses Debugging Coding multiple sequences alongside each other Use logical reasoning to predict the behaviour of programs/outcomes |
Understands that algorithms are implemented on digital devices as programs
Detects and corrects error in algorithms
|
2 - Innovate
|
|
Draw on prior knowledge or by experimentation to add elements to conversation (background/animation/sound) |
|
|
3 - Develop |
“program” the teacher to draw a square. Express this as an algorithm How could we shorten/tidy up this algorithm?
Design algorithms to draw other shapes |
Test algorithm by using blocks to write procedures to draw shapes. Combine this with other commands to create pattern Duplicate and edit the block to draw other shapes (direct pupils with online accounts to save these to their backpack) |
Using repeat Creating “efficient” code Create a program that implements algorithms to achieve a given goal Design a solution that uses repetition Uses logical reasoning to predict outputs, showing an awareness of inputs Uses diagrams to express solutions |
Abstraction (removing part of the procedure and making a sub-procedure) Generalisation/patterns (solutions which can be adapted to suit any shape) Knows that a procedure can be used to hide the detail with a sub-solution Recognise that different solutions exist for the same problem |
3 - Develop |
Play ready made dressing up games on line. Think about how they work. |
Create a dressing up game. Create/upload a character. Add or create clothes/accessories, when sprite clicked go to set position |
Using co-ordinates Setting costume centre |
|
3 - Innovate |
|
Create a musical instrument in Scratch Combine what learnt so far to create an exciting animation |
|
|
4 - Develop |
Look at animations. Consider how they work. Explain the physical theory behind cartoons. Recap changing costumes. |
Use webcam to take photos of their teeth. Duplicate costume and alter by blacking out teeth. Create an animation to show how they would feel if their teeth decayed. Create an animation showing the human digestive process. |
|
|
4 - Develop |
Think about “forever until” loops in daily life. Tease out language used.
|
Create game based on round the river bend. Add a score
|
Using “if/then” statements Using loops Using co-ordinates Use relational operator within a loop to govern termination Use a variable |
|
4 - Innovate |
Use game planning sheet to plan a game using what learnt so far |
Program game using plan. Can we adapt some of the things we know how to do already to do something else? (eg increase speed of a sprite) |
Adapting and applying solutions Debugging Abstraction Decomposition |
Know that different solutions exist for the same problem Know that a procedure can be used to hide the detail |
4 - Innovate |
Recap code used to create music in Scratch. Compare with language used in Python |
Use Sonic Pi to create a piece of music. |
Has practical experience of high level textual language including using standard libraries when programming |
Understand that programming languages are text based. Opportunities for de-bugging as this is live coding. |
5 - Develop |
Play “Simon Says” discuss rules of the game. Add “if”, “then”, “else” to the instructions. Design a quiz game and represent this as a flowchart |
Create a quiz game using two way selection and repetition |
Create code using simple and two way selection Uses nested statements Use diagrams to express solutions Design algorithms using loops and selection |
Understands the difference between if and if, then and else statements |
5 - Develop |
What if we could get the computer to select the numbers to create a number quiz? “program” volunteer to select a number card from two pots and multiply them together How is this different/better than the last quiz game we made? |
Create a times table games using random selection
|
Uses a range of operators and negation expressions (eg Boolean ) Uses arithmetic operators Uses random selection
|
Shows an awareness of tasks best completed by humans or computers Can identify similarities and differences in situations and can use these to solve problems Understand that iteration is the repetition of a process such as a loop |
5 - Innovate |
Use decompose planner to design an algorithm to program game to play between levels
|
Add new levels to the times table game. Can pupils apply/adapt prior knowledge to create a fun game to play in between levels |
Uses broadcast and receive |
Recognise that different algorithms exist for the same problem Understands the notion of performance for algorithms |
6 - Develop |
After experimenting with greater than/less than code pupils design an algorithm to create a program to calculate and record how many coins there are in a given number of pence |
(Phil Bagge coin programme) Pupils write program using their flowcharts They will use Boolean operators (< >) and loops to |
Reading a flow chart Converting algorithm into code Subtracting from a variable |
Pattern recognition |
6 - Develop |
Place selection of numbered balls 1-50 under cups. Devise an algorithm to guess what the number might be using least possible guesses |
Use the algorithm to write a program to guess a number |
Converting algorithm into code. |
Recognises that some problems share the same characteristics and use the same algorithm to solve both |
6 - Engage, Develop, Innovate |
Gather selection of pictures for idioms |
Create an idioms game in Powerpoint using a VBA code to check if answer correct |
Detects and corrects syntactical errors
|
|
6 |
|
Create own websites using HTML |
(although HTML is a markup text it is useful in teaching syntax |
Debugging – finding and correcting errors in code |