CS in VN
16 March 2013
During my recent trip to Vietnam I took the opportunity to visit some schools and see how computer science was taught there. Officially, foreigners require permission from the department of education to enter schools. But it's much simpler (and the results are more representative) to simply show up unannounced. A business card from Google doesn't hurt either.
Computer classes start in grade 2. They begin with the basics -- which of course includes how to take care of your 5.25" floppy disks.
By grade 3 they are learning to how to use Microsoft Windows. Vietnam is a 100% Windows XP monoculture. Probably all with the same serial number. However, given that a copy of Windows costs one month's salary, it's easy to understand.
Touch-typing is taught using Microsoft Word. As with all their software, it is in English, which adds to the difficulty at that age.
By grade 4 they start programming in Logo. Starting with sequences of commands, then progressing to loops.
By grade 5 they are writing procedures containing loops calling procedures containing loops.
At this point a quick comparison with the United States is in order. A couple of visits to San Francisco's magnet school for science and technology (Galileo Academy) revealed grade 11 and 12 students struggling with HTML's image tag. Loops and conditionals were poorly understood. Computer Science homework was banned by the school board.
It is an understatement to say that I was impressed with the Vietnamese primary school CS curriculum. I asked what I could do to help. Unexpectedly, the answer was "software". Educational software doesn't even exist in Vietnamese, and even if it did exist, there was no budget to purchase any. So the rest of my vacation was spent writing software. The result was the Blockly Maze, a self-teaching set of tutorials that introduces loops and conditionals. Everything had to be burned to CD because the school couldn't afford reliable Internet.
Handing over the software two weeks later was a surreal experience: Sitting in the principal's office is as intimidating as an adult as it is as a child. Looking down from the wall was the ever-present portrait of Ho Chi Minh. Outside were 1500 children doing their morning exercises, which in part consisted of the Chicken Dance.
The CS teacher was excited and promised to teach Blockly the next day. But there was another issue compromising the class. Due to a lack of funds, the school could not afford two CS teachers, so half the school was unable to take CS. I asked what a teacher's salary was. $100 per month. So I went to an ATM and bought them a second teacher for the next year.
It turns out that donating both software and a teacher makes one somewhat popular.
If grade 5 students in Vietnam are performing at least on par with their grade 11 peers in the USA, what does grade 11 in Vietnam look like? I walked into a high school CS class, again without any advance notice. The class was working on the assignment below (partially translated by their teacher for my benefit afterwards). Given a data file describing a maze with diagonal walls, count the number of enclosed areas, and measure the size of the largest one.
After returning to the US, I asked a senior engineer how he'd rank this question on a Google interview. Without knowing the source of the question, he judged that this would be in the top third. The class had 45 minutes to design a solution and implement it in Pascal. Most of them finished, a few just needed another five minutes. There is no question that half of the students in that grade 11 class could pass the Google interview process.
I had walked into that high school class prepared to help them in any way that I could. But instead of the school learning from my experience, I learned from them. They showed how computer science education should be done. Start everyone early, and offer those who are passionate about the subject limitless room to grow.
However, there is still one major wrinkle in the system. The introduction of computer science in the Vietnamese education system is relatively recent. It appears to have arrived at all levels simultaneously a few years ago. One temporary consequence of this is that when I visited a university, I wasn't impressed at all with what they were doing. But this will change rapidly once the incoming freshman have years of experience under their belts.
The state of American computer science education is striking in comparison.
The result in America is a prefect storm of opposition from every level. Effecting meaningful change is virtually impossible. I work for the education department at Google and the stories our external educators return with are as shocking as they are unpublishable. We've been spending enormous resources with frankly minimal impact.
Whereas Vietnam is the exact opposite. Schools, teachers, parents, and students are eager in a way I've never seen here in the US. It took less than ten minutes to show Blockly's maze to the Vietnamese CS teacher. Her kids burned through it in one class, with most of them completing the first nine levels. They want more.