In The Making: Coding as Part of Primary School Education

This morning today marked a new beginning as we finally able to collaborate with a school in the city of Gresik. A collaboration that saw for the first time the introduction of computer science into the school’s classroom.

But what’s the purpose?

My wish and desire to build a programming language stretched many years back when I was still an elementary school student. (I am not joking.)

At that time, I created a simple language that I thought would be cooler than C/C++, and so I called it D. It was a poor man’s attempt.

But what’s the purpose?

Learning programming language is difficult. Even more so when we have to, at first, be convenient at commanding a third, unrelated language. When I was an elementary school student, I tried to teach computer programming to my own younger brother, and the eldest son of my neighbor …and rightly so, it was a tremendously painful experience for all of us, due to, for the most part: the language barrier.

But this morning was different for me as I entered a new chapter in my life I have long been waiting to do so.

Intro to Computer Science 101

Remember that my younger brother and my neighbor’s eldest son was having a bad time learning a programming language with me?

It hasn’t changed that much. I still don’t see computer science being taught at schools the way math, physics do.

Children these days may be comfortable using various software on their PCs or mobile phones. But, how those things are made is beyond everyone’s guess.

So the question remained: how can we bring computer science education into Indonesian classrooms without making them feel they are absolutely not gonna make it. Believe it or not, for various factors, this has not been easy.

As this is something new, I made a basic agreement with my students that there’s no stupid student in my class, and by extension, there is no stupid question either.

Although we started slow, as we try not to left anyone behind, we learned together various new concepts such as string and integer. This Saturday, we will learn iteration. I can clearly see their enthusiasm.

Students were indeed very enthusiastic. For example, not all computers were working as expected. For those unlucky few, they couldn’t just accept the fact that they were not able to register and hack together what we’re learning. They wanted me to address the issue to the point I feel sad and I feel bad for answering their nagging by asking them to join their friends with working computers. Luckily, in the end, theirs started to work as well thanks to the help from the school’s teacher.

I am happy that in this intro 101 class, I can see that level of enthusiasm. In addition, I have not seen any indication of language barrier. The issue I faced years ago when teaching how to code to my own brother and my neighbor’s oldest son is gone without a mark. A great starting point.

But, how could the barrier be gone?

That the language barrier is gone is a fact (although I have not done a further research to back this claim). I said it as a “fact” because I did not receive a blank stare. Instead, questions/problems have moved to be so much more technical:

  • Why the program throws an error when a string literal is missing a double quote
  • What is a null?
  • Why calling a function cannot have a space in between of the function name and the right parenthesis.

How is this possible? I suspect, this is in part because in the class, students are learning using a programming language I carefully develop, inside a platform not unlike HackerRank but so much simpler.

Future works

I want to bring these kind of smiles to more and more students.

I truly have never felt this much satisfied/happier/determined/purposeful than ever before:

But this is just the beginning. I wanted to expand this offering to as many more schools, to as many more classes, to as many more labs throughout the country. I wanted to see computer science be like any other “normal” subjects normally taught at schools.

Would it be possible? I don’t know. I will keep updating on this journey as promised. At least if I failed, future generations have something to learn from; something to refer and offer a much better solution.

Thanks to Sayuti Mulyo, Amin, and SD NU 1 Gresik’s principal and teachers who have been very open to this program since the beginning. Harvard has played a part in this journey as well, as from the class of Prof. James Frankel, the professor teaching Compiler Design and Implementation, I have gained a much better understanding of compiler-making. I will always be forever indebted to the Extension School as its mere existence was the starting point that made all of this a possibility.