"understand several key algorithms that reflect computational thinking [for example,ones for sorting and searching]; use logical reasoning to compare the utility ofalternative algorithms for the same problem" [The National Curriculum in England - Framework Document, Sept 2013]
While I was preparing for my talk on mapping Python to Keystage 3 (for sake of openness I don't teach KS3, I teach 16+) the above quote stood out to me and made me very concerned about a new possible future of the teaching of computing.
Last year in a discussion with an examining board representative a comment was made about how for databases the vast majority of submissions were for film databases. The impression given was there was no variety, no "real world" application.
When I saw the above quote and the examples given I instantly feared that the new KS3 computing version of the film database is going to be sorting and searching algorithms, especially the bubble sort.
I know how busy teachers are (being a lecturer at an FE college gives me a bit of insight here), I also have a pretty good idea the sort of background a lot of those who will have to teach this have (the CAS site is great for this sort of thing, getting a pulse of things, and I have seen the resources going up to be shared). All the indications at the moment seem to be a focus on sorting and searching, and very little on other key algorithms. And busy teachers with very little time will fall back on resources available to them, and what they are comfortable with.
So I know what you are thinking, "that's fine and dandy saying this but what other algorithms should we be teaching?" This is where I think the DoE wimped out. They should of given more examples to guide teachers. By just mentioning sorting and searching that is all some teachers will cover. Especially if they do not have a computer science background.
Does the book 9 Algorithms That Changed The Future just cover sorting and searching algorithms?
No, it covers cryptology, data compression, pattern recognition, error-correcting, as well as page rank and indexing.
And there is the hint about what other algorithms should be covered.
How about a free resource in the flavour of the month programming language for education Python? Here is a pdf book Hacking Secret Ciphers with Python: A beginner's guide to cryptography and computer programming with Python , which you can also buy (please do, as the proceeds go to support the EFF) as a physical copy. So no excuse not to also cover basic cryptology now along side sorting and searching algorithms.
I know time is in very short supply but this Christmas "break", however if you are a computing teacher, or moving from ICT to computing get the book Algorithms Unplugged. It's very accessible, and will hopefully widen the options available on what algorithms you teach.
The book covers 41 algorithms in 4 main areas (sorting and searching, arithmetic and encryption, planning coordination and simulation, and optimization) written using "colloquial and nontechnical language". So there should be plenty there to choose from.
I'm not saying don't cover sorting and searching, they still need covering. What I am saying is make sure you don't place so much emphasis on them to the detriment or exclusion of other algorithms.
Hopefully this has given some food for thought, pointed you in the direction of where to go for ideas and information on algorithms, and helped me sleep at night knowing my worries are unfounded.