Editor’s note: Ajit Jaokar is the co-founder of Feynlabs, an initiative to teach the concepts of programming languages to kids (as opposed to a specific programming language).
Muriel Devillers: What is feynabs?
Ajit Jaokar: Feynlabs is the first initiative to teach the concepts of programming languages to kids (as opposed to a specific programming language). By abstracting the common elements of programming languages, our aim is to enable learners to rapidly learn any programming language.
Our work has been covered in academic journals and also in leading education blogs like Edutopia. In the first six months of the launch of our page of Facebook, we have 40K fans. Currently, we are conducting trials in some schools in the UK and Europe. We contribute to the ‘Computing at Schools’ initiative in the UK which aims to promote the teaching of Computer Science in schools.
Thus, Feynlabs is creating a set of unique techniques to teach computer science to kids based on
- Teaching the concepts of Programming Languages to kids and
- Fostering an interest in Computer Science using the Raspberry Pi and other devices.
- Sharing content. We are a social enterprise because we share content with schools using Open source principles.
Muriel Devillers: Where did the idea come from?
Ajit Jaokar: The idea originally evolved as I was teaching Programming to my son Aditya (then 8 years old). I began to observe how he was grasping ideas and co-relating programming concepts to so many other domains.
As a father, I was fascinated by this and I felt that if only I could keep up his interest and explain the interconnections – he would pick so many things up on his own. As pedagogy, I would consider it the re-application of Constructivist principles to the learning of Programming Languages and teaching of Computer Science in the age of the Internet. From this, arose the idea of teaching Concepts of programming languages first. If I asked you – What was the first programming language you learned?
What if you could switch the two? What if you could teach concepts of programming languages upfront – even to kids? This seemingly simple switch has many advantages. Learners have a fast on-ramp and interest. They learn at a unique pace and keep up interest. They see how programming applies to real life problems at a very early stage of their learning and they learn complex concepts of programming within a wider context
Thus, our end goal is not to teach programming. Rather, it is to enable the participants to rapidly master any programming language and in doing so, explore computer science.
The name Feynlabs is inspired from Richard Feynmann – and the spirit of Feynmann encapsulates our vision of curiosity, science and humanity.
Muriel Devillers: Today, there are many attempts to teach programming .. What is different with Feynlabs?
Ajit Jaokar: In the UK and the USA, there is currently a grassroots movement to teach programming and it’s great to see that. Feynlabs is indeed a part of that movement. However, we are addressing a slightly different problem. Feynlabs is not just about teaching programming to kids. Our vision is to inculcate the principles of Computer Science.
Feynlabs is addressing a unique (not yet addressed) problem – which I can encapsulate as ‘How do we take learners from 0 to 60 fast?’ i.e. accelerate the computer science learning at an early stage so that learners don’t get bogged down and can quickly see the ‘vista’ i.e. the big picture vision’. From a learning standpoint this would useful because once the participant can see the big picture and they can add their own unique contribution/imagination to learning
This leads to a different conversation in teaching. Instead of discussing endless variants of IF-THEN-ELSE statements and FOR loops, we have the freedom to explore the beauty and interconnectedness of Computer Science at an early stage. We can talk of hardware and software and algorithms holistically. We can introduce the principles of Systems thinking. We can prepare kids for the next way of computing by looking at a variety of computing devices (not just PCs). Thus, Feynlabs is preparing learners for a career in Computer Science.
Muriel Devillers: Our gadget fans would like to know how you use the Raspberry Pi as a platform…
Ajit Jaokar: The Raspberry Pi is a platform i.e. as its creators have always indicated, the community will drive its direction and evolution. Feynlabs is using the Raspberry Pi to teach the concepts of programming languages to kids and in doing so, creating a new way in which deep principles of Computer Science can be introduced to kids.
From our early trials, we can say that teaching ‘concepts of programming languages’ to kids is a unique experience because you have to start with the abstract (which can be more complex in some ways) – and then move to the concrete and finally move back to the abstract again i.e. move back to concepts. Specifically, our current approach is to start with the concepts (including the question of what is a ‘concept’) – then address the concrete implementation using Raspberry Pi and Python.
Using the Raspberry Pi in this way allows us to explore many aspects of Computer Science through Pi add-ons like Pi-face , Pygames (which comes installed on the Pi) and the Gertboard etc. I first learnt computing on the ZX Spectrum (in India) so I can relate to the philosophical vision of the Raspberry Pi. But the Pi allows you to explore much deeper (IMHO – it’s no co-incidence that the Raspberry Pi does not have a ‘case’). Finally, we move back to the abstract domain by looking at a classification of programming languages and specific implementations in other languages such as Processing, C, Java Script and others.
The combination of our techniques (Concepts of Programming Languages) and the opportune timing of the Raspberry Pi allow us to truly introduce Computer Science principles to kids.
Muriel Devillers: Is Feynlabs is a commercial enterprise or a nonprofit?
Ajit Jaokar: Prof. Muhammad Yunus Founder of the Grameen Bank once said “A social business addresses social needs in a financially sustainable way; and while investors may recoup their investment, all further profits are reinvested to advance the social goals.”
I think we will see many businesses founded on similar principles. Feynlabs is a Social enterprise in the sense that it has a social objective. We share content in creative commons format. We work with schools by sharing our insights. We aim to subsequently launch a commercial certification service which could be used to rapidly learn the concepts of programming languages. Thus, we are not a charity but a social enterprise.
Muriel Devillers: So, in this context, what is computer science?
Ajit Jaokar: Here, I am building upon some excellent work in a paper called Computer Science: A curriculum for schools by the Computing at School Working Group endorsed by BCS, Microsoft, Google and Intellect – March 2012. You can read the full paper – Computer Science: A curriculum for schools. In a nutshell (adapted from the Computer Science: A curriculum for schools)
Computer Science is the study of principles and practices that underpin an understanding and modeling of computation, and of their application in the development of computer systems. At its heart lies the notion of computational thinking: a mode of thought that goes well beyond software and hardware, and that provides a framework within which to reason about systems and problems. Pupils studying computing gain insight into computational systems of all kinds, whether or not they include computers. Computational thinking influences fields such as biology, chemistry, linguistics, psychology, economics and statistics. Computer Science is a discipline.
A “discipline” is characterized by: A body of knowledge, A set of techniques and methods, A way of thinking and working, Longevity:, Independence from specific technologies especially those that have a short shelf-life. Computer Science is a quintessential STEM discipline, sharing attributes with Engineering, Mathematics, Science, and Technology
An analogy from a related field is the work of Conrad Wolfram. Mathematician and technologist Conrad Wolfram has an insightful TED talk about teaching mathematics to kids in which he says that math as taught in schools looks very different from math as used in practice. In the real world, math is not necessarily done by mathematicians, but rather by other scientists like geologists, etc. The same ideas apply to the teaching of programming. Programming also does not exist in isolation but rather should be seen in the context of other scientific domains.
Muriel Devillers: What next?
Ajit Jaokar: We are still evolving and at an early stage. We will share content and material as we develop it – including videos. People can sign up on our site Feynlabs and we would love to get some feedback