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.
This information is referred to in the GCSE (9-1) Computer Science specification.
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:
CodecademyProgram Arcade GamesInvent with PythonPython Developer's GuideCSc resourcesStack OverflowInteractive PythonComputer Science CirclesPythonByteSizeSS64Code By MathComputer HopeThe Young Person's Guide to Programming in MinecraftFree Programming BooksW3SchoolsProgrammrScratch Programming EventsA 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 firstname.lastname@example.org
Rob Leeman - Subject Specialist - Computer Science