My first encounter with flow charts was via Flowol, a simple programming tool that uses flow chart symbols to activate simple outputs such as lights and buzzers and enabled you to control these using inputs such as switches and sensors. Three years ago, knowing that I was about to embark on a revolutionary new job teaching computing science in five primary schools, I went out and purchased some flow diagramming templates.
Before I was able to unleash these on the pupils I went to an excellent talk at our CAS hub at Southampton University on programming planning methods. The speaker talked about agile methods of planning and demonstrated noun verb analysis of the programming project to draw out and decompose the problem. When asked if anyone still used flow diagrams to plan programs in 'the real world' the speaker replied in the negative. However the talk was mainly aimed at teachers about to embark on teaching GCSE Computing Science so I didn't take this as the final word on flowcharts for those working with younger pupils.
Before any draft computing curriculum was designed I experimented with Year 4 pupils (8-9 Years Old)
creating simple flow diagrams to explain school procedures such as what happens when you are injured on the playground. Pupils were able to describe the processes verbally. We kept to just decision diamonds and process rectangles with start and stop terminators. I started by creating a simple breakfast flow chart with the pupils before they went on to work in pairs at the main task. If I am honest it was a real disaster. Pupils were able to sequence but few were able to create a working decision. The most common error was to create a sensible decision but to have both yes and no branches go to the same block. I wondered at the time if the problem was that the task was not common enough so later tried a similar exercise with Year 3 and 4 pupils around getting up
and going to school. This was more successful but still significant numbers struggled with creating a working decision.
Children s reading skills are always higher than their writing skills. It struck me that pupils might need
experience of reading and working with fully formed flow charts before they will be able to create one. With this in mind I created five playground games
flow charts. Pupils were not taught how to use a flow chart apart from being told that they needed to start at the start. The Year 3 & 4 classes loved this activity and were able to work in small groups to decipher the flow charts. The only difficulty came with some SEN pupils reading ability but mixed ability groups helped with this.
I then took pupils inside and they were given a bugged version of the flow chart. They worked in pairs or threes to try and work out the error. It was fascinating listening to pupils conversations. In Year 4 all but one pair solved at least one bugged flow chart and many groups went on to solve two or three in the 25 minutes we had left. At the end I asked about strategies the group developed. Some said that they had each followed a different path once they reached a decision and then reported back, others that they had all followed the same path so they could check each others findings.
In some primary programming situations I can see the sense of using a flow diagram. A previously prepared flow chart could be shown to help pupils understand a more complex program. I used one when explaining a more complex virtual pet
program. Pupils can complete a partially filled in one if it helps to see if they can spot a programming pattern. They can work with programs which are linear such as my clock planning
. They are less use in programs that have multiple threads ( lots of things going on at the same time) such as game designing. Here I think a decomposed
planner is more useful.
In conclusion, I would encourage you to give your pupils opportunities to create simple 'everyday' algorithms such as brushing your teeth using basic flow chart shapes first. Then read and debug flow charts second, followed by opportunities to debug them. If you are going to use them to help plan a program I would only use them after pupils have had these earlier opportunities and when the type of programming fits with using this tool. I always ask myself if I am adding an obstacle or a gateway before using a flowchart. Will it just add complexity or aid understanding?
But if my conclusion is too long winded here it is as a flowchart