- Here is more information about the problem we (Feynlabs) are trying to solve and why it matters
- I spoke at the CAS conference on Friday last week and it was indeed very inspiring to meet teachers other s in the industry who are committed to encouraging Computer Science in UK schools.
- Speaking at this event also gave me the chance to crystallise my own thinking about the exact problem we are trying to solve.
- The challenge is huge
- See the diagram below (source BAz Nijjar posted at CAS) which shows the depth of the new syllabus
- There are a number of areas which are unknown ex: The navigation of a steep learning curve by students and teachers, the introduction of computational thinking (ex algorithms), the evaluation of progress etc etc
- PS although the diagram is based on the UK syllabus, I see other countries also following the same trend.
Why does this matter?
There is a significant shift from ICT to Computer Science. ICT involves using tools. Computer Science involves understanding how to build tools and their impact on other scientific domains
However, teaching Computer Science (and in our case for feynlabs, trying to accelerate the learning of Computer Science) involves combining the abstract concepts (algorithms, data structures etc) alongwith very concrete programming
An insightful article from a Stanford University researcher says ( Shuchi Grover – Learning to Code is not enough)
- Science itself is changing in a subtle but fundamental way--from the use of computing to support scientific work, to integrating Computer Science (CS) concepts and tools into the very fabric of science.
- The essence of computational thinking is in ‘thinking like a computer scientist’ when confronted with a problem. (logically, algorithmically, breaking down a problem)
- Block-based programming tools such as Scratch, Alice, Kodu, and web avenues like Khan Academy, Code Academy, and CodeHS (among others), place programming within easy reach of children today. Even 9 and 10 year-olds who tinker in these environments create artefacts and animations literally within minutes of starting out.
- Computational thinking involves conceptualizing, not just coding and learning the syntax of a language, and it’s more about the ideas, not the artefacts. It is the thinking we employ to design solutions, not the end product or projects.
- While children comfortably learn the WHAT (blocks or syntax) of programming languages and environments, the HOW and WHY is much harder as they construct programming solutions.
The problem we are trying to solve
- In the kickstarter video, we speak of a three stage approach – Concept – Compute and Extrapolate.
- The objective is to study a wide range of concrete implementations (Programming Languages) and also to abstract what is common amongst them so that the learner can master any programming language.
- This is not a trivial task. It involves learning to code in specific environments (I love the Raspberry Pi because we can explore the entire stack) but then also extrapolating that knowledge to other languages . Ex R Language, Mathematica, C, Lua, Dog(yes its a real language!)
- Think of it as driving a car
- You can never drive a car conceptually i.e. you have to physically drive it ..
- However, if you ALSO combined the concepts with insights from a broader range of vehicles you could potentially ‘drive’ (cars, trains, planes, space ships!) – you could learn the concepts in a very unique way. In theory, it would allow you learn to drive any vehicle – even one not yet invented
- In a nutshell, that’s the problem we are trying to solve ..
- It involves understanding the Computer Science syllabus but also looking far beyond the syllabus – into a new way to teach Computer science.
- Its a way to learn Computer Science by combining the abstract and the concrete
- For most people, it is easier to start with the concrete and then move to the abstract. By working with a range of platforms(programming languages) we can cover a wider variety of concepts – including Computational thinking and problem solving
- Finally, the Raspberry Pi is an excellent platform for this goal since it allows us to explore the entire stack. But I also like Touch Develop.
- So, its a case of balancing the abstract with the concrete and also accelerating the learning of Computer Science itself.
- A challenge which we enjoy working with!!
- PS – met some very interesting people who attended my sessions – for example ) Piface creator Andrew Robinson (http://www.youtube.com/watch?v=6HHfeWTV0Kc)
Image – NASA funzone – learning to drive a space ship