Python is the de facto language in Secondary schools currently. I’m a fan of it myself. I have used it as part of teaching GCSE computing in the past and I like the clean and simple syntax which presents a low barrier to entry for pupils creating simple programs. I actually see a need for it at KS3 as a getting-things-done-easily introductory textual programming language.The trouble is, with recent changes to the GCSE specifications, I’m not convinced about how suitable it remains into KS4.
Good functional programmers will construct functions that are modularised and pure so that they don’t produce any side effects. This means that functions will be limited in scope as to what they can (or perhaps shouldn’t) affect. They should handle small, simple tasks that, when called, produce individual results. (more…)
I have seen a lot of toing and froing on social media recently about the merits of different exam boards and who is going with which specification and why. Unfortunately, I feel that many teachers are misleading themselves and haven’t really considered the full facts before making a decision.
Perhaps they are basing this on their past experiences with older qualifications but it is now time to think again.
When teaching programming theory it is best to apply some of the concepts as practical examples. Often teachers neglect one area or the other but pupils need to see how both elements relate. Teaching content from any of the previous posts should be punctuated with appropriate examples but it is now a good point to try and draw lists and functions together into more concrete examples that apply the skills learnt so that we can solve problems.
It’s about time we considered the function part of Functional Programming if we are going to write any useful programs! The AQA specification outlines some theory about what functions are. Whilst this is not crucial for understanding how to program using Haskell, it helps us understand what we should be trying to achieve and, importantly, the key terms we should use:
Haskell uses static typing. This means that the data type of any assignment or expression evaluation is determined at compile time before the program is run, (some languages don’t decide this until the program is running.) This generally means that the code you produce is less prone to errors as any clashing types in expressions will be caught before the program runs. It is worth considering that functions we write and their associated parameters should also be given a specified type.
If you didn’t know, Computer Science A-level specifications are changing from September 2015. Computing is filtering through the Key Stages all the way to Primary school. It follows that some topics traditionally taught at University level are going to need to be pushed down as well if we are going to stretch the pupils we teach.
One topic that teachers seem cautious of is Functional Programming, (though only for those teaching the AQA specification). It doesn’t appear in the AS specification so it’s likely that most schools will only teach this in Year 13. The details in the specification stretch over 4 pages which some find daunting. I personally prefer that exam boards take this approach rather than omit details that are useful for medium-term planning.
The new GCSE specifications for Computer Science have now been submitted to Ofqual by the four main exam boards, each with their own take on the 80 / 20 coursework (aka non-exam assessment, aka controlled assessment) split.
At first glance they seem to be a step-up from the existing qualifications and that’s understandable based on the demands of the new A-levels and KS1-4 Computing curriculum. Subject content has been shifted down a Key Stage. Where basic programming skills have been taught at KS3 this now finds itself down to KS2. Obviously the new GCSEs have to reflect this and dove-tail into the more challenging A-levels.
The assessment of these qualifications seems to be the main deciding factor as to which board becomes most popular and there are quite a variety of different models to choose from. Comparing these qualifications side-by-side helps understand the differences:
When I look back at all the exam courses I have taught over the last few years it strikes me how much change I have actually seen. From 2004 until now I have delivered: AQA GCSE Spec B ICT, AQA A-level ICT, CLAiT, AiDA & CiDA, Edexcel Applied A-level ICT, OCR A-level ICT, OCR A-level Computing, AQA A-level Computing, Level 2 OCR Nationals, Level 3 OCR Nationals, Edexcel GCSE ICT, AQA ICT Functional Skills and OCR GCSE Computing.