Teaching programming for a year
Well, I am writing this post to share a recent success story with you.
Just about a year ago, back in the summer of 2019, my younger sister asked me if I could help her with the preparation she would do for the national exams, and more specifically for the computer science course.
The national exams are an educational process in Greece for the admission of high school graduates to higher education institutions (aka Universities) of the country. They are held at the end of each school year.
Without having any related teaching experience before, but being a professional software engineer for almost a decade, I accepted the challenge.
I was pretty confident that I could help her get properly prepared for the exams but also allow her to discover how wonderful and powerful this domain is.
I will walk you through this whole one-year process by breaking it into four parts.
Part 1: Overcoming difficulties
During our first lessons, it was not clear how we should proceed. This whole situation was something completely new to me, the responsibility I had taken was great, but of course, I never thought I could give up on her.
In order to have something to start with, we found out which book chapters we had to go through. That helped us create a clearly defined roadmap so that I could keep track of our progress.
Another problem that occurred to me, was that the school book was written in Greek. Believe it or not, although our language is a great and powerful one, it doesn't work the same way when translating computer science terms from English to Greek.
Having said that, there were times I had to read the same sentence twice or thrice until I get the point and explain it to her.
To conclude the list of the difficulties that came up, I had to search over the internet or other books for appropriate exercises to solve so that she could practice on what we had learned so far.
Also, the way that we had to solve these exercises was by using a specific language that was introduced in the school book. Fortunately, that language provided all the basic commands to construct any algorithm we wanted.
I had to get out of my comfort zone as there was no option for JavaScript or Python.
Unlucky me...
Part 2: Finding the right approach
As time went by, lesson by lesson, we started finding our pace.
To make our sessions more interesting, I adopted an approach which was that I would always try to explain to her how we would apply the subjects we were reading in real-word.
For example, we went through arrays, functions, computer memory, bytes, testing the code, logical and syntax errors, compilers, object oriented programming, and stuff like that.
All these aforementioned topics are basic knowledge for a software engineer, but I had to find a way to explain them in a simple way to my 17-year-old sister whose relationship with computers were Facebook and Sims until that moment.
The good news is that I saw her showing interest in computer science.
She used to ask me many questions and I have to admit that I liked the whole process too. There were times when we were opening actual technical discussions or we were trying to find the optimum way to solve a problem.
It felt like we both were in the right direction.
Part 3: The finish line
About three months before the final exams, this COVID-19 pandemic occurred when we were quarantined and the whole city was locked-down.
During these challenging times, we kept doing our lessons remotely and we managed to keep the momentum.
Somewhere at that stage, my advice was that it would be very helpful to document all these things she had learned so far. Thus, I created a Google Document and in collaboration with her we documented everything that was important and she had to learn by heart for the final exams.
In that way, instead of having to read the whole book, she could just focus on the important things. Apart from that, to my experience, if I write something down it is easier to memorize it. I am under the impression that it also worked for her too.
As a final step, I asked her to find previous decade's tests and solve them so that we could identify any pain-points and work on them exclusively.
Part 4: The last one
The result of our one-year effort was that she managed to score 97/100 in the final exams for this particular course.
Her intelligence, her patience, and the methods she applied while studying, allowed her to score the almost perfect result.
How wouldn't I feel successful as a teacher who helped her achieve such great things ?
Not to mention how happy and proud I am that she wants to become a software engineer after all.
Looking forward to working with her at some point in the future !
To her, for inspiring me.