Sparking Interest in Computer Science for the young

What started as a thought to spark interest in computer science in our 10 year old daughter, who found her regular lessons too bookish and uninspiring, is slowly but surely evolving into a full-fledged structured program to introduce youngsters (ages 8 +) to the basics of computer programming (www.wibyte.in). Nearly 300 students from at least 20 countries across 4 continents have joined us in this amazing journey so far.

Programming, an important skill

Getting youngsters excited about Science, Technology, Engineering and Mathematics (STEM) subjects is something very close to my heart. I have conducted several workshops across India and Singapore around this theme. Wibyte’s coding program for youngsters is thus really just a logical extension of this passion with a specific focus on an extremely important skill, namely, computer programming.   

Computer programming, or the art and science of getting a computer to do what we would want it to do, is projected to be an essential skill for the future generation. Youngsters across the globe are being introduced to computer programming for the logical thinking it inculcates, apart from being a creative enterprise.

Scratch – Our platform of choice

However, designing a program suited for young kids has its challenges. Firstly, we are dealing with young digital natives who are fluently interacting with amazingly complex technologies — some even hosting their own Youtube channels – but have had limited exposure to basic science and mathematics. Secondly, the landscape of technology is extremely dynamic with ever increasing abstraction.

The challenge thus is to build the right foundation and create strong enough mental models that enable, engage and spark curiosity in the young minds.  

We chose Scratch from MIT labs as our starting platform as it provides the ideal balance between abstraction and engagement: youngsters can make programs that are engaging enough but still need sufficient work (and debugging) to get them to work. Hence Scratch can be used to illustrate basic programming structures like loops, variables, lists and functions etc. Also, the Scratch platform imbibes the values that are very important to us: openness and collaboration.  Indeed, these are the pillars of our program.

Activity Based Curriculum

Our curriculum is activity based. We conduct interactive group classes where we introduce concepts not as stand-alone entities but through their application in games and activities. The difficulty level keeps increasing as we move through the classes, and we keep giving direct and indirect reinforcement of concepts. The role of practice and debugging and the occasional frustration that it brings cannot be overstated in an enterprise like programming.

Hence, every lesson in our curriculum culminates in an independent project that the every student must build on their own, at their own time.

An Independent Activity with room for creativity

In fact, the independent activity is the centerpiece of our methodology. It acts as the glue between the teacher and the student. Every activity illustrates and reinforces concepts which we have covered in the class, giving students the chance to grasp them in their own ways by doing the project. For every activity, we publish a basic marking criterion. But we also encourage students to go beyond the basics and try to earn bonus points, if they are clear with the basics. This creates the flexibility and gives room to every student to attempt the activity depending on their interest. Every so often, we see students unleashing tremendous creativity and initiative in making their projects.

Leaderboard and a Gamified Experience

The submission of the activity is where the excitement truly starts. We mark every project that we receive and provide timely, detailed and individual feedback – highlighting the areas of improvement and a clear point wise score.

Till date we have marked nearly 1700 Scratch projects!

The individual scores are then fed into a leaderboard that classifies projects based on their technical and creative merits, the highest category being the heavenly projects. These are outstanding projects, which we then share with the entire cohort. The leaderboard provides a gamified learning experience which we have seen drives students and encourages them to try more, as we say, in the quest for the heavenly tag! And the cycle continues class after class, activity after activity.

Collaborative learning

Our methodology underscores and inculcates the core values of openness and collaboration that we truly believe in. We want students to not only try to get better on their own, but also learn from each other. Hence, our classes have students from across the globe learning together. It is heartening to see youngsters building on each other’s ideas and even coming together to form remote teams to participate in design contests, in what looks like a glimpse of the world they are moving towards!

The right age

I am often asked what the right age for a program like this is. We have seen that our program requires significant independent work on part of the students, hence we do not take students lower than 8. The mean age in our program is close to 10 years (we have even had a few adults in the course), but interestingly, some of our highest achievers have also been less than 10! So my answer is simple, if you think the child is enjoying the process – and you would know when he/she is – then do continue. Else, there is always a next time. In programming language, n = n + 1. Scratch cleverly avoids this usage by using set/change variables, probably to calm parents who may fret over programming messing up with maths concepts!)

A humbling journey

All in all, it has been a tremendously exciting journey dealing with young kids and their sometimes innocent but truly deep questions. It is also deeply humbling to realize and respect each child’s own unique personality and strengths and how it shows directly and indirectly in their work (again, all comes through in the independent activities).  And it is a great learning experience too, as we have to keep reminding ourselves that in an educational venture, the teacher has to be the best student at all times!

Looking to expand

We are looking to expand in multiple ways. If you are passionate about STEM education and would like to be a part of this exciting endeavor, in capacity of a curriculum developer, teaching assistant or a backend technology professional, please do get in touch. 

Our journey towards making “boring” Computer Science “interesting”

Computer Science, the most boring interesting subject

Mummy, Computer Science is the most boring subject in school” my then 9 years old daughter mentioned casually one day.

I was taken aback by her utterance. She is academically inclined and usually does well in subjects requiring logical thinking. For her not to like Computer Science didn’t quite seem right. I assumed it to be a phase and didn’t delve too much into it.

Few weeks later, when her school test results came back her scores in Computer Science were very low. While I am not one of the Tiger moms who pushes her kids to excel in every possible field, but this irked me. Being a Computer Science student myself I couldn’t understand how one can love subjects like Mathematics and show no interest in Computer Science.

Theory, without Practical

I just had to get to the bottom of this mystery. I started looking through her books, notes, assignments and question papers. The curriculum consisted of theoretical details on things like parts of the computer. Even applications like Microsoft Word or Scratch were explained in a very theoretical and mundane manner.

What was missing were projects which could help her learn and practice the concepts and feel a sense of accomplishment. It was theory minus the practical. My daughter doesn’t like cramming and gets put off if there are too many details to be remembered. Given Computer Science was being taught this way, it started to make sense to me why she didn’t like it.

When schools closed in April, my husband and I brainstormed on how we could get her more interested in Computers. We came to conclude that the theory being taught had to be augmented with practical hands-on experimentation.

We also realized that a very good place to start would be Scratch, an amazingly beautiful and well design platform developed by MIT Media Labs to introduce kids to programming. It has easy to understand programming blocks that fit together like Lego blocks. We felt that we could utilize the natural appeal and the large online community of Scratch and get my daughter to do stuff that she would like, e.g. simple animations, games and so on.

We started giving her some projects from a book, and suddenly her interest started to increase. We gave her a target of 1 project a day and could see that she was enthusiastic in completing that every day.

A regular program

That is when we started envisaging a regular program in a flipped class model where we got kids to learn on their own with just enough guidance so that kids could give a shape to their own creative ideas in ways they like. We charted out a rough outline and decided to do a pilot in my apartment.

We asked in our WhatsApp group for kids who were interested in learning Scratch programming. To our surprise, we received interest from 25 kids. That was the start of our journey of teaching Scratch to kids and trying to build interest in programming among kids.

Every day, we would find a video/tutorial for an activity and share it on the WhatsApp group for kids to solve. The activities started from simple animations and evolved into more complicated games as the days progressed. Kids would share their code by the end of the day, and we would mark them based on pre-defined criteria. We even had a leaderboard to give a sense of healthy competition.

Kids were hooked – A fun way to learn scratch

The kids were hooked. We received 18-20 submissions daily. The kids would look at the tutorial, code the activity, search on Google to enhance the activity for bonus points and submit. They would then look at each other’s codes, give feedback and try to learn. The leaderboard was the most eagerly awaited event of the day and we had to sometimes provide justifications for our scoring.

Our daughter’s attitude, meanwhile, changed from being indifferent to passionately doing her own activity and helping her friends. The program lasted for 4 weeks and the kids completed ~15 activities each. Some kids were slow to start, but got hooked on as the program progressed. The concepts we covered in our experience-based learning journey were – programming logic, loops, variables, broadcast, cloning, lists, layers and functions.

To be honest we were taken aback by the enthusiastic response we received from the kids and parents. One of the kids said, “I have learnt Scratch in school, but this was way more fun”. Another remarked, “I had no idea we could do so much on Scratch”. I think the experience driven learning, timely feedback, collaborative environment and healthy competition were the key ingredients that made this experiment a success.

Smitten by the Heavenly Bug

What started as a simple tea-time conversation about my daughter’s computer science scores is today a well-formulated but ever-evolving platform that we offer to anybody, anywhere in the world who may be interested to learn programming in a fun way.

We conduct a class to cover a simple concept and then ask kids to build projects based on that concept. The best projects are showcased in a ‘Heavenly’ studio that other take inspiration from. Happy to note that in this short time, we have got nearly 90 kids smitten by the ‘Heavenly’ project bug, pun intended, who have been amazing us and others with their amazingly creative projects. And we have parents calling up saying their kids were super charged up to make sure their next project is heavenly.

In the meantime, my daughter, from being indifferent to bordering on rejecting the subject, is actively involved in debugging codes submitted by students. She is taking ideas from other students and applying her own thoughts to make better projects, thinking about how we could illustrate some concepts better and so on, in short, a fully involved member of our ‘core’ team.

Programming is a skill that would be indispensable in the world that they are growing up in. We are hoping this small attempt would help other kids become more passionate about programming and self-learning.