On a trip to Vietnam he wanted to discover how computer science was taught there and to do this he visited some schools - and was very impressed. He discovered that by Grade 5 Vietnamese school students are writing procedures containing loops - an achievement he contrasts with grade 11 and 12 students back home in California, having a poor grasp of loops and conditionals. However it isn't fair to just blame the students as in that particular school Computer Science homework was banned by the school board,
Having discovered that educational software doesn't exist in Vietnamese Neil spent the rest of his vacation writing Blockly Maze, a self-teaching set of tutorials that introduces loops and conditionals, that was immediately put to use in the classroom with the pupils completing the first nine levels in a single sitting and asking for more.
Having discovered that Year 5 students in Vietnam could outperform Year 11 ones in the US, Neil next visited a high school Computer Science class and discovered that the type of problems being solved there were on a par with those included in Google's interview process which is considered "spectacularly hard".
Given a data file describing a maze with diagonal walls, count the number of enclosed areas, and measure the size of the largest one. The maze pictured below has two closed area, the larger of which has an area of 8.
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.
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. There is no question that half of the students in that grade 11 class could pass the Google interview process.
Having looked at computer science education in Vietnam, Neil came away feeling he had learned a lesson about how computer science education should be done:
Start everyone early, and offer those who are passionate about the subject limitless room to grow.
Learn or play?
So should children be taught to program in the classroom or should they "experience" it through Kodu and other kid-centric environments?
Surely the two are not incompatible.
The Australians include Kodu, Scratch, App Inventor, Lego Mindstorms, Alice and GameMaker as visual programming languages suitable for use with primary school children and appreciate the difference between playing video games and creating video games. There is a definite place for Microsoft's Kodu Challenge - and it is inside the classroom as well as in after-school clubs.