Teaching computational baking - Rob Leeman
12 December 2016
One of the challenges for the newly reformed Computer Science GCSE is the shift in assessment to linear exams and emphasis on algorithms and computational thinking. What was before assessed though controlled assessment is now (mostly) assessed through an exam and this requires a change in approach and pedagogy when teaching the required skills. This is something that many teachers may not have considered and it is something that needs planning for and “baking in” to KS4 as well as KS3.
There are many ways to teach and practice computational thinking skills but one of the most effective ways to prepare for the GCSE is to use the techniques in the specification as a starting point and as a focal point for learning and building confidence. These are the tools or ingredients that can be used to solve any problem as long as the techniques are combined in the right way.
The ingredients:
- variables, constants, operators, inputs, outputs and assignments
- sequence
- selection
- iteration (count and condition controlled loops)
- string manipulation
- file handling operations:
- records to store data
- sequence
- selection
- iteration (count and condition controlled loops)
- SQL to search for data
- arrays (or equivalent) when solving problems
- how to use sub programs (functions and procedures)
- the use of data types:
- integer
- real
- Boolean
- character and string
- casting
- the common arithmetic operators
- the common Boolean operators.
This information is referred to in the GCSE (9-1) Computer Science specification.
The recipe
Students need to be confident in solving problems using these techniques and this can be achieved through introducing them early (in KS3) and applying them in lots of novel situations with an emphasis on using the right tool for the job. Independently, all of these techniques are fairly straightforward to learn but the complexity occurs when they need to be combined to solve a problem. This complexity is compounded when these computational concepts must be applied in a language with its own rules and syntax.
A common mistake in this subject is focusing exclusively on a language and learning that language’s given syntax. Whilst the techniques can be addressed this way, there is a dual burden for the student as they must learn the conceptual model of the technique or combination of techniques and then they need to learn to express them in an unfamiliar language. This process can de-motivate students and can sour the mix. This process can be simplified and made more accessible by starting out with the techniques independent of language by using flowcharts or even informal pseudocode. Problems can be broken down and worked through in this way in lessons in a similar way to how Maths can be taught. This also happens to be one way in which computational thinking is assessed in the exams and so practicing this skill is invaluable.
Once students are confident with the techniques they should be challenged by giving them more complex problems that involve the use of various combinations of techniques including problems that involve expressing mathematical concepts and even some that provide real world utility. Another skill to develop here is getting students to articulate what is happening in flowcharts and in code. This can be practiced by providing flowcharts or stubs of code that students then have to annotate. I have written an example resource in this fashion both with Scratch and pseudocode algorithms.
Teaching computational thinking to this degree at KS3/4 is fairly new and so this is a growing field of interest and activity with pedagogy and best practice constantly evolving. There are however lots of tools online to help, here are some I have come across on my culinary coding travels:
Codecademy
Program Arcade Games
Invent with Python
Python Developer's Guide
CSc resources
Stack Overflow
Interactive Python
Computer Science Circles
PythonByteSize
SS64
Code By Math
Computer Hope
The Young Person's Guide to Programming in Minecraft
Free Programming Books
W3Schools
Programmr
Scratch Programming Events
A Taste of Scratch
If you have any other computational baking based resources and wish to share them please do so via our OCR Computing (GCSE) Facebook group, on Twitter @OCR_ICT, or email them to us at computerscience@ocr.org.uk
About the author
Rob Leeman - Subject Specialist - Computer Science
Following on from his work on the Computing A Level, Rob is now assigned to lead the development for GCSE Computer Science qualification. His experience began in IT support before embarking on a career in teaching and assessment having taught and managed A Level IT, and prior to joining OCR in 2013 Rob held the post of Head of ICT and Computer Science at a secondary school in Cambridgeshire. In his spare time Rob loves to exercise his dogs and indulge in CrossFit, airsoft, diving, clay pigeon shooting and is a keen proponent of Open Source.