When the Department of Basic Education (DBE) decided to drop Java as an option for the high school Information Technology (IT) programme, it had only considered Delphi, Java, and Visual Basic as programming language possibilities.
This is according to the response document issued by the DBE at the start of October 2013 in which it said that only rapid application development (RAD) tools met the requirements of the curriculum.
According to the DBE, the requirements for the high-level programming tool that only RAD systems meet are stipulated in the Curriculum and Assessment Policy Statement (CAPS) document for the IT programme.
They are specified as follows:
High-level software development tool that includes an integrated development environment (IDE) which:
- supports both structured and object oriented methodologies;
- uses a visual development environment with a graphical user interface builder; and
- allows for event-driven programming
Another specification that turns out to be very important appears on pages 32–33 of the CAPS document under the Grade 11 curriculum.
The DBE said that it requires that students learn to develop “data-aware applications” in which they establish a connection to a database and apply transactions.
IDE requirements: what do they mean?
The DBE’s requirements are not as general as they could be, however.
Particularly, the requirement of an IDE seems to be an expression of the need to have the decision around toolchain, framework, text editor, and user interface editor as simple as possible.
For readers not familiar with the terminology, a toolchain is a “chain” of tools used to produce a program from code. These could include programs such as an interpreter, compiler, linker, and debugger.
Different languages may use different tools to produce a program from their source code.
The definition of a software framework can be an article in its own right, but in general it is a set of reusable software components that programmers can use to build their own applications.
Delphi, Java, and Visual Basic (.NET) arguably have frameworks baked right in, so when the language decision is made, a framework decision is also made implicitly.
Similarly, Delphi and Visual Basic also come with text and graphical user interface (GUI) editors. Provinces currently teaching Java to students have standardised on NetBeans, one of the many IDE options available for Java.
CAPS favours Delphi
These extra decisions on frameworks, editors, and toolchain could explain why the DBE might steer clear of languages such as C, Python, and C++.
Opponents of the DBE’s decision have also argued that the CAPS document for IT appears to be written to favour Delphi.
Whether the thinly veiled accusation is true or not, the document certainly does favour Delphi, and some of the requirements laid down for IT are certainly worth questioning.
For example, why is a visual development environment with a GUI builder and data-aware application programming a requirement?
On the one hand the DBE says, “The aim of school is not to provide vocational training (that is the task of higher education institutions or FET colleges) but to lay a solid foundation to enable a learner to pursue further education at [a higher education institution] in the IT field.”
Yet on the other hand it favours Delphi’s easy-to-use wizards and GUI editor to satisfy the CAPS requirement of “developing data-aware applications”.
What “solid foundation” do learners receive when taught an environment- or platform-specific way of connecting and interacting with databases?
Is it really of value to learn how to use a wizard, click and drag UI elements onto a form and use drop-down menus to databind them? What was learnt?
Perhaps the more interesting question is, “What was not learnt in favour of teaching Delphi’s database wizards?”
Since we’re looking at proprietary tools anyway…
What if instead of a curriculum that focuses on building desktop applications for Windows and linking them to Microsoft Access databases, we satisfy the requirements of “event-driven”, “data-aware” programming with other forms of interactivity.
Video games and computer graphics, for example.
One example that comes to mind is Unity, a RAD tool used by a number of video game developers, local and international.
There are no difficult decisions to make with respect to toolchain, framework, or editors, and a version of Unity is available for free for personal use.
As with Delphi, however, some kind of deal would have to be struck with Unity to use it in South African schools.
Asked about the suitability of Unity given the education department’s requirements, Christopher Pope, a technical account specialist at Unity Technologies said that it does fit within the specifications.
“Unity is definitely suitable for teaching programming fundamentals,” Pope said. “Aside from the fact that you can write in C#, one of the most flexible and widely used languages in programming, you’ll be able to encourage OOP (object oriented programming) approaches from day one.”
He said that crucially, students will be able to apply what they learn to a medium (2D and 3D graphics and interactivity), that makes learning to code inspiring.
This last point from Pope deserves some attention.
Who wants to learn to program?
As highlighted by the DBE (and concerned teachers), the number of students taking IT, and the number of schools offering the subject, were in sharp decline between 2008 and 2011.
While the DBE doesn’t make the statement outright, it insinuates that switching to Delphi will help boost these numbers.
No substantiation is offered other than anecdotal evidence and research from 2001 that Delphi is simpler than Java. The implication is that if a simpler language is chosen, more schools will be able to offer it, which means more students will be able to take it.
However, the DBE document contains no evidence to support this.
Something that should not be discounted is the inertia Delphi has in high school education in South Africa.
Before its adoption, many schools taught their students Turbo Pascal, from which Delphi has inherited much.
There are already many educational resources for Delphi and Turbo Pascal from which teachers, examiners, and textbook authors can draw.
The curriculum is also already established and would take significant resources to adapt to not favour Delphi so heavily.
If changed, Unity is also not necessarily the best choice for South African schools, though it does already fit many of the requirements found in the CAPS document for IT.
For one, neither Delphi nor Unity fits the government’s free and open source software policy, while Java does.
That said, the decline in the number of students taking IT at school is the larger problem here.
Will the move to Delphi really reverse the decline? Would a different language excite students while remaining simple enough for teachers so that more and more schools could take it on?
Those are the questions worth investigating.
More SA school tech articles
The opinions expressed in this column are those of the author and do not necessarily represent those of MyBroadband.