IT classes: Pupils need more than just coding skills We need to teach principles and theory if pupils are to develop a deeper conceptual understanding of how technology actually works, and how it can be used to solve problems. Computational thinking means solving problems and designing systems in a way that draws on concepts fundamental to computer science. There is a quote commonly misattributed to Edsger Dijkstra: "Computer science is no more about computers than astronomy is about telescopes." This is where computational thinking fits in. It means thinking algorithmically and with the ability to apply mathematical concepts. It means understanding concepts of scale and abstraction. Of course, there is an important balance to strike between focusing on developing practical programming skills (i.e. being able to write code for a specific task) and embedding a deeper understanding of languages and constructs: principles of programming. Programming is a creative endeavour - it offers a tangible way for children to express themselves by hacking, making and sharing - and so it is easier to engage and enthuse pupils with this approach. But because we know technology changes quickly, we need to make sure that when Technology X appears, there is transferable knowledge and a deeper conceptual understanding of how it works and how it can be used. The Royal Society's Shut down or restart? report in January highlighted the highly unsatisfactory state of IT education in the UK, recommending that every child should have the opportunity to study the rigorous academic discipline of computer science. With the shelving of the existing ICT curriculum and the development of a new programme of study as part of the National Curriculum Review in England, we are at an exciting crossroads, with a real opportunity to make technology and computing a key focus of our education system. But if there's one lesson we should take away from the problems of the past 15 years is that we must not focus on transient and superficial technology skills. Computer science is not programming (and vice versa) - we should be wary of teaching programming just for the sake of teaching programming, without thinking about why we want to get kids to program. Dr Tom Crick is a Senior Lecturer in Computer Science at Cardiff Metropolitan University and Chair in Wales of Computing At School (CAS). He blogs at Computing: The Science of Nearly Everything or you can find him on Twitter: @DrTomCrick.