Why only Delphi, Java (and VB) for South African schools?

All I can say is that I was in the first batch of IT students and matriculated in 2008. It is probably the only subject you do at school which takes you quite far into its corresponding university degree. My BSc Computer Science degree was a breeze. We did Java in all 3 years and I would say for the first 1.5 years, about 80% of the content covered I had already learnt from my high school IT. My second major was Information Systems and this too was simplified because of my matric IT. DB created, SQL queries, normalisation, DFDs, ERDs.

I agree with you fully, I matriculated in 2011 with Delphi being used still and studying BSc IT now coming to the end of my 2nd year. The basics helped tremendously and all because of the fact that i could relate bits and pieces here and their to my matric and prior IT work. Up till now in my 2nd year i can still see pointers pointing to what i already knew. First year was a breeze with the prior knowledge.
 
It should n't really matter what language is used since at school level since you're laying the foundations for later studies. However, the language should be fairly easy to learn and use.
 
While we are all coming out - I matriculated in 2004 with Java...



...and throughout my 3 years at uni I never needed to study for any of the programming exams and finished them in 20 minutes. Information Systems on the other hand though :cry:

The point? I don't think the language you study in school has any bearing on how well you are going to do in uni. I was able to ace the programming classes because it interested me and because of that I read through all the study materials ahead of time, bought extra books (Worx etc.) and programmed during my free time - that's the difference (granted my social life took a knock).

The same thing would've happened whether I did C++, Delphi, VB or whatever in school.

+1 once you learn the basics of programming then learning any language is so much easier, since you can skip the chapters on variables, methods, if else statements etc.
 
Something that should not be discounted is the fact that Pascal, when originally designed in the late 1960s, was largely intended for the purposes of teaching students structured programming, and while the language is definitely not something that I'd use in a production environment, it works great for its intended purpose. I can attest to this: I took my first foray into Turbo Pascal when my age was in the single figures, used it when I matriculated (2002), and the concepts that the language taught me has definitely served me well in other languages I've used since (I'm mainly C# at the moment, but have experience with a lot of languages). Though, we were the last group to use Turbo Pascal; the 2003 crowd were on Delphi.

Java is, in my opinion (and several others' opinions, notably ESR), a poor teaching language. The problem is: you have to write a lot of boilerplate code to get a simple "Hello World" program up and running (see comments made by previous posters around parrot-learning "public static void Main()" without understanding what "public", "static" and "void" mean and why they are important), and a first-timer cannot, as this critique of Java (search for "The Pitfalls of Java as a First Programming Langauge" within it) puts it, "approach problem-solving like a plumber in a hardware store"; I feel that one has to know what the components actually do. I saw a lot of this when I worked as an instructor at CTI (many, many aeons ago!): people that had done programming in school (and it was still mainly Pascal and Delphi folks filtering through) were generally OK, but the people that hadn't were typically way out of their depth when having to deal with all the Java (and C#, for that matter) boilerplate.

ESR makes the general point that "if a language does too much for you, it may be simultaneously a good tool for production and a bad one for learning. It's not only languages that have this problem; web application frameworks like RubyOnRails, CakePHP, Django may make it too easy to reach a superficial sort of understanding that will leave you without resources when you have to tackle a hard problem, or even just debug the solution to an easy one". From my own experiences, I tend to agree with that point.

Having said that however, I have some concerns about the Department of Education's approach. From TFA, it looks like the curriculum will be primarily based on using wizards; I may be a bit old-school, but this approach makes me uncomfortable. To me, it's just a different type of boilerplate (just a different iteration of "public static void Main()" in a way) -- great for production, where time is a factor, but for learning and educational purposes, you want people to know (0) what the wizard is doing, and (1) why it's doing what it's doing. Nothing that I read in TFA gives me any confidence that pupils will be taught this.

As an aside, if the Department of Education wants a language that's great for learning and that meets the software freedom requirements, I suggest Python. From a pure beginner point of view, it's relatively kind, cleanly designed, and well documented; and yet has power and flexibility that makes it suitable for much larger projects.
 
I never liked Delphi and would rather do Java/C/C++/C#. I am glad I am not at school anymore :)
 
I matriculated in 99 and we used Turbo Pascal 7. I think that foundation worked out really well for me.

similar story. I finished in 96 with computer science as a 6th subject. Our programming language/ide was turbo pascal 6. I went straight into a job as a pascal developer for a Point of Sale company (We ran some of the biggest restaurant chains on turbo pascal POS). Been doing many different things since then, but pascal is a great foundation.

At the moment I'm a fulltime freelance native iOS and Android developer contracting for fortune500 US corporates.
 
In the late 80's I was taught Turbo Pascal 3.0 at University... (also PL/M, ASM, C, Modula2, etc). In 1991 I was a 'Computer Studies' teacher for Std 8 to Matric. We taught Logo in Std 8, it was great for basic programming concepts, and was a source of fun for the pupils. We taught Turbo Pascal 5 (Dos based) to the higher standards.
Later on in life I wrote database systems in both Delphi and Java (and dBase and Clipper and Clarion), my Delphi systems were always more stable and ran faster than my Java apps. I think Java is OK for in-house systems, not commercial systems though. In my opinion Delphi is great as a teaching tool due to it's easy to read structured constraints, and even more importantly, because of it's strict "strong typing" (say compared to C++). Easier to teach, and definitely easier to mark as a teacher. My R2 worth.
 
I think Java is OK for in-house systems, not commercial systems though.

You have to take in effect the difference between java on its own and JEE. I know JEE is just java in the end but it is a enterprise framework and set of standards and depending on your application server, extremely. Most of the high volume banking system's middleware in this and most countries is JEE.

I've worked on internet banking systems written in Java that handle upwards of 8000 logon's per minute in peak times nad thats logon's. The amount transactions going through to host is much higher.

EDIT: Its also good to some else who has played with Clarion as well
 
I think Java is OK for in-house systems, not commercial systems though.

Before we get out the pitch forks and cry blasphemy from the bell tower, mind expanding on this?

EDIT: unless by commercial you meant of the shelf software and by in-house you meant enterprise?
 
Before we get out the pitch forks and cry blasphemy from the bell tower, mind expanding on this?

EDIT: unless by commercial you meant of the shelf software and by in-house you meant enterprise?

Haha, well put. Being old school OO type person, what I am struggling to get my mind around every time I have do something in the new-age type of languages like python / jython is the concept of convention instead of configuration.
 
Borland is dead, Delphi will follow soon enough.

Sure, Delphi gave you an advantage back in the day when everyone else programmed in C++
What is used out in the real world shouldn't even be a factor in the decision.

but languages like C# allow for even more rapid development than Delphi
So that's a very good reason not to use C#. RAD is reason not to use Delphi too, but instead to the core which is Pascal.

In my view python is a scripting language, when you start out with that people find it difficult to comprehend the more complex concepts.
I'm not sure I use Python over Pascal as a teaching language, although it's one good aspect from a teaching point of view is the absolute enforcement of code structure. But Python also isn't really just a scripting language. So what are the complex concepts they couldn't understand if they used Python?

Something that should not be discounted is the fact that Pascal, when originally designed in the late 1960s, was largely intended for the purposes of teaching students structured programming, and while the language is definitely not something that I'd use in a production environment, it works great for its intended purpose.
Exactly.

As an aside, if the Department of Education wants a language that's great for learning and that meets the software freedom requirements, I suggest Python. From a pure beginner point of view, it's relatively kind, cleanly designed, and well documented; and yet has power and flexibility that makes it suitable for much larger projects.
You can even do graphical interfaces.

But whatever the failings of Java as a teaching language I'm suspecting Delphi may well have been chosen based on extremely poor criteria.
 
What is used out in the real world shouldn't even be a factor in the decision.

So that's a very good reason not to use C#. RAD is reason not to use Delphi too, but instead to the core which is Pascal.

Wouldn't console programming in any language suffice then? Why not use C# or C++, which are both strongly typed and highly structured languages with OOP (if needed), and simply force students to only program console apps? That way you can still focus on CS concepts like algorithms and data structures.
 
Top
Sign up to the MyBroadband newsletter
X