Teaching schoolchildren programming or coding skills is a worthy goal, for more than the obvious reason of giving them a taste for a career in technology.
Learning syntax is part of learning a new programming language, just like learning vocabulary is part of learning any other language. But a valuable benefit of learning to code is learning and practising algorithmic thinking. Algorithmic thinking is the ability to break down large complex problems into smaller bite-sized problems until the solution can be expressed in steps small enough to be expressed in the particular programming language being used.
The cognitive benefits of coding and learning to program are often compared to learning any other language. However, a recent detailed study conducted at and released by MIT’s Computer Science and Artificial Intelligence Lab and Tufts University a few weeks ago reported that reading code does not activate the regions of the brain used in the use of language. Instead, it uses something called the multiple demand network which means that, from a cognitive perspective, reading and writing code exercises the parts of the brain used in complex problem solving, math problem solving and crossword puzzles. There have always been many well-established reasons to teach and learn computer programming to school children; These recent findings add one more to that list.
The Ministry of Federal Education and Professional Training recently released ‘Draft 0’ of the Single National Curriculum (SNC) for middle school grades VI to VIII. The passionate public debate around the leaked (and later officially released) SNC for grades I-V last summer has nudged the ministry into taking a more open approach early on this time, which should be welcomed.
I reviewed the latest public draft of the SNC for grades VI-VIII currently in the works, specifically the Computer Studies (CS) curriculum. Let me begin with what I found is right with it. On the plus side, unlike many CS curricula offered at good private schools, the SNC is ambitious enough to include programming at the middle school level starting in grade VI. It includes teaching basic computer literacy and use, word processing, and introduces students to programming using ‘Scratch,’ a widely used flowchart-like graphical programming language developed at MIT. It includes topics on cybersecurity, cybercrimes, and introduces students to a variety of applications. However, it delays introducing students to the first real programming language, Python, until grade VIII.
That brings me to the parts of the CS SNC that need review and reconsideration. The curriculum loses sight of what should be its primary focus – introducing students to using computers and basics of programming – and is loaded with bloatware that eats into valuable class time. Sections on entrepreneurship are tacked on at the end of every grade. It does not take much imagination to see how these and many other course contents could become little more than contents to be rote memorized for reproduction in exams.
The current draft allocates very little time to what is most important – problem solving, flowcharting and programming. Even if all contents of the CS are dedicated to these topics alone, there will be no dearth of material to spend time on. Instead, by the looks of the existing draft SNC, programming is being paid lip-service and could relegated CS to just another book to be rote memorized instead of an exciting subject.
The balance between teaching students to become computer users and learning the basics of how computers work and program them is non-trivial. From the 70s to the 80s, similar subjects introduced in schools in the US and Europe tilted from teaching programming to using applications. The result was a shortage of programmers that has hobbled the UK tech-industry and is felt to this day. The present draft of the CS curriculum is heavily tilted towards computer use, rather than programming fundamentals and algorithmic thinking.
The new SNC is also supposed to emphasize interdisciplinary learning. However, CS and other subject curricula still look as if they were developed in silos. For example, the CS curriculum includes several excellent tools that support learning other subjects, GeoGebra for Mathematics, PhET simulator for Science, etc. It would make more sense to include these tools in respective curricula – Mathematics and General Science.
To be useful, the topics listed in the curriculum need to be practised on computers with internet access, rather than be shown in a book. To assess how likely that is to materialize, consider this: a school, in a certain province, qualifies to become a middle school with grades VI to VIII if it fulfills the following minimum requirements: 1) Three classrooms; 2) has a store and other facilities; 3) a headmaster / headmistress office with its own bathroom; and 4) a perimeter wall around x kanals of land. Teaching students to use computers and the applications listed in the curriculum requires 1) computers, 2) a steady supply of electricity, 3) Internet access, and 4) trained teachers. In 2016-17 there were 49,090 middle schools in Pakistan. Will all these schools be provided these prerequisite resources?
A better approach would be to introduce children to basic computer and internet use and then move on to teaching children to program, which should be the focus of CS and where most time should be spent to reap benefits. The great universities of the world are in the business of introducing new courses on emerging areas of knowledge into programs. This begins by adding new content to existing courses. As the content grows, and become enough to justify a separate course, they are spun off as a ‘special topics’ course. After a few iterations, if the course continues to attract sufficient interest, it is eventually regularized and made part of the department’s permanent offering.
As an alternative to introducing programming in a separate elective subject, we could initially introduce it as a section in an existing subject like Physics or Mathematics. That could be achieved by shedding the bloated list of contents currently proposed in Draft 0, and instead focusing on the most valuable and beneficial contents. Making these contents part of an existing subject will avoid the need for additional teacher hiring (a major expense) but retraining existing teachers instead. This approach would reach more children, beyond those choosing an elective subject. In time, with the benefit of experience of teaching programming in high school classes, these contents can be pushed down to lower grades, as has historically been the case.
It is possible to take a similar approach in schools. Instead of introducing CS at the level of under-resourced middle schools (numbering 49,090), it could be introduced at the high-school level (numbering 31,551), which are generally better equipped, already have computer labs, are more likely to be electrified and staffed by more qualified teachers. This would reduce the resource gap that needs to be bridged to roll out the CS curriculum.
The shortcomings leave me with the impression that the SNC draft for grades VI-VIII is hastily put together and not the best possible work product of the best minds in the ministry. Contrary to its name, the ‘Draft 0’ we are seeing should not be the first internal version, but the best possible document generated by bringing all expertise and official resources to bear on the task. In the case of the education sector, that process should cast a wide net and extend as far down as soliciting input from parent-teacher committees from schools by mobilizing District Education Officers. Only after the government has taken its best shot should it release a ‘Draft 0’ to solicit public comments.
Catching inconsistencies like the ones above and designing a sensible curriculum that aligns course contents with learning outcomes and instruction is standard curriculum development process. Any grad student in education from a decent school is familiar with it. It does not happen overnight or on the short timelines typically given in government, but it is merely a question of investing into a qualified team. Instead, the process appears to be fueled solely by the goodwill, charity and volunteerism of a small group of people, which is why the curriculum reads like a disconnected patchwork of ideas from various sources that are included without much scrutiny. Education, at the national as much as at the individual level, is an investment in the future. Like in everything else in life, you only get what you pay for.