Department of Basic Education bans JAVA in favour of Delphi, FOSS in favour of Microsoft

At least they won’t have to worry about Java Update notifications…

It is a dark time in South African education. Already South African features near the bottom of any study featuring Mathematics and Science ability amongst its learners (GITR 2013, World Economic Forum Report 2012, 2011/2012 World Competitiveness Report, PIRLS 2011 to name a few) and yet again we see the Department of Education making poor choices based on bad information. This time, however, it is towards the teaching of Information Technology (IT) and Computer Applications Technology (CAT) in the state education system.

Circular S9/2013 (DBE website is down at the time of writing: dkeats.com’s reaction also includes a link to the circular) was recently released stating that for the IT examination, the only permissible programming language was Delphi (a number of provinces have standardised on Java) and that the office suite required for the CAT examination was MS Office 2010 or MS Office 2013.

Computer Applications Technology

Let’s address the CAT issue first, because it is so preposterous, it’s comical.

In order to run MS Office 2010 or 2013, the minimum specifications for a computer are more than twice the processing power, RAM and storage space required for Office 2003 (see Microsoft’s Minimum Specifications for Office). While they don’t look challenging on the face of it (any computer released after 2003 should be able to cope), these are very real challenges to many state school’s IT infrastructure.

In addition to that, licensing a workstation to run Windows and a version of Office will cost money that many schools can ill-afford. While one might imagine that a once-off licence might be able to last a while, it should be noted that all those computers with Office 2003 (possibly the most successful Office yet?) cannot read native data files created in Office 2007 and up (the XML file types). This necessitates potential software and hardware upgrades for schools that can ill-afford to do so.

Given that the DBE is only supporting the last two versions of Office, how much longer will Office 2010 be supported for? Microsoft are rubbing their hands together in glee!

This decision also runs contrary to government’s Free and Open Source Policy (PDF download, or cached copy from Google) which was published in May 2006 in that this encourages vendor lock-in and perpetual licensing costs.

Information Technology

Some history: Computer Studies started in the late 1970s with a handful of schools offering the subject. Over time, the number of students taking the subject grew. The generally accepted teaching language of the day was Pascal, developed by Niklaus Wirth in the late 1960s specifically for education to teach structured programming and data structuring (see Wikipedia).

Delphi is syntactically equivalent to Pascal, but adds in Graphical User Interfaces (i.e. windows) and allows the rapid design of interfaces using drag and drop techniques. It should be said that Delphi also includes object orientation and so while is functionally equivalent to Java and many other programming languages, it remains as one of the less frequently used languages. The TIOBE Software Index ranks Delphi 14th in September 2013, having dropped two positions since this time last year.

Java originates from C, syntactically, and was designed – from that point of view, at least – to be a language better suited to education than, perhaps C or C++ were. Java was purely object oriented, and contained far fewer “low level issues” for programmers to worry about (technically speaking, I’m referring to pointers, garbage collection and other such issues that people love/hate C and C++ for). Java also has the advantage of being a universal language in that it will run on (nearly) any computer, be it Windows, Mac, Linux or anything in between. TIOBE ranks it 2nd, after C.

A language popularity website calculated that Delphi is a significantly less popular language than Java.

I suppose that while a language’s popularity is important, its educational roots and benefits must be looked at with more vigour. With Object Oriented Programming recognised as an industry leading paradigm (embodied by languages such as Java, C++, C#, Objective-C and many others), Java lends itself to this way of thinking much more easily than Delphi. In addition, Java is syntactically similar to C, C++, PHP and a number of other languages which potentially means quicker learning for graduates.

The argument for Delphi to be chosen as a single language for all schools is, therefore, flawed.

When the National Curriculum Statements (NCS) were released, it was said that the programming language could be anything that was “object orientated and netcentric”. While Delphi can do both, it was designed as neither. With the release of the CAPS curriculum, the programming language was changed to a “RAD-supported language” and, in its reading, was to be largely database centric. Thus the idea of teaching towards OOP was abandoned.

The IEB, thanks to a standardisation of the syllabus and that they were able to understand that the language is irrelevant to the concepts being taught, has been able to set a language-neutral paper for the last five years. There were certainly teething problems as the Delphi crowd slowly got used to vendor-neutral terminology already inherent in Java thanks to its multilingual origins. Thanks to successful training, have done remarkably well.

The move away from OOP is simply because key decision makers do not have any real-world programming experience and cannot therefore understand the importance and relevance of teaching computational thinking with Object Orientation as a logical starting point. Instead, attempts to introduce OOP in the syllabus were backwards – as an afterthought.

Certainly there are (good) reasons for standardisation on language: both teachers and pupils move between schools and a pupil who moves and has to change programming language because of that is disadvantaged (anecdotally they do not perform as well as their peers, but this is not well studied). Pupils are also disadvantaged if they get a teacher who is not proficient in the language.

Up to now, provinces have been able to choose which language they will standardise on thus avoiding most of the problems of migration. Inter-provincial migration is not common (anecdotal reports suggest). But now at least two provinces, the Western Cape included, will have to spend time and effort re-training teachers to use an obscure and obsolete programming language.

Sadly, our pupils are being taught by professionally trained teachers and not, in most instances, by competent computer scientists or real-world software developers. Thus this language switch is not just inconvenient – it is likely to be disastrous.

While I’m extremely disappointed by this decision, I do know that the idea of computational thinking has been lost a long time ago in this mire of politicking and point scoring. Computational thinking skills are needed to save a struggling software industry from being outsourced to countries like India. Countries like the UK have realised this and are now introducing computational thinking skills as early as primary school and have re-introduced a programming course at secondary (GCSE) level.

Other reactions