Which programming language should be taught in South African high schools?

Paul Hjul

Honorary Master
Joined
Aug 31, 2006
Messages
14,902
An excellent suggestion Paul. COBOL devs are the highest paid in the industry. Since the language has now developed to become object-orientated they no longer need to lie at parties about what they do for a living.

FORTRAN is one of the two main languages for high-performance computing and an important part of an Engineer's skill set. When we get new graduates in at work we typically have to teach them the language.

And as for BASIC ... can someone help me out here?

On a more serious note I agree with your reservations on vendor lock-in. This is why I would not support Delphi, no matter what the advantages or the disadvantages of the language are.

The furthest I've gotten with an interest into COBOL is acquiring (I think for 50c) an Introduction to COBOL Programming book off a library clearance table - actually I did page through it briefly. I think COBOL is sort of the original VB 6 and in 1960 it was thought it would be dead within a decade (so the fact that it is still actually used - COBOL 2014?)

FORTRAN is also an interesting one and my jest should not be viewed as to suggest their irrelevance (BASIC maybe a little, but my non-programmer take is teaching some BASIC nomenclature and cultural aspects is an important component of having in-industry humour - you'll spot the jokes on this forum) but rather the fact that the maths is too hard for me.

Although the argument in favour of FORTRAN 2015 (yep revised this year - so ...) as an introductory language is probably more in the vain of inclusion in postgraduate science studies for students who haven't done any computer science
 

Swa

Honorary Master
Joined
May 4, 2012
Messages
31,217
Keep living in your little bubble. While the rest of the computer science community lives on and the millions of java developers around the world using linux / os x continue making cash.
You are the ones living in a bubble. The people with professional programming jobs is a microcosm of the programming community. There are millions of other competent programmers making cash off it. No wait, that isn't entirely true. There are millions of programmers with other jobs, even mundane jobs, with great developments and ideas.

Yes, but why do you feel the need to add that to a statement which has nothing to do with what he said. YOU claimed that C# was not complete. So please back it up so everyone can see.
You dragged "completeness" into this whatever that means in terms of programming languages.

No by defacto standard in which google, the creators decided that it to be the language. http://developer.android.com/tools/revisions/studio.html
Exactly what I said.

the incompatibility issues has nothing to do with java but more to do with the fragmentation of the operating system itself.
That was supposed to be a joke. But while on the subject and you're confirming it, it's just more fuel to the fire of it never realising the dream of cross-platform under which it was promoted. So we have to take a step back here then and ask if it was never fulfilled but promoted under that then why continue with it?
 

konfab

Honorary Master
Joined
Jun 23, 2008
Messages
36,120
Python.
1) Open source
2) Attempts to make people better programmers, whitespace automatically makes code more readable
3) Allows people to focus on problem solving as opposed to finding that missing semicolon
4) Sets people nicely up for engineering where you use high level interpreted languages all the time.
5) Cross platform
6) Wide variety of libraries.
 

me_

Senior Member
Joined
Oct 11, 2013
Messages
830
My favourite languages are C# and Java and I think they have the widest relevance in business, but I don't think C based languages are the easiest for someone starting out and they can appear quite daunting to students. As others have mentioned, it's less important to have business relevance and is more about the learning process.
Delphi and Pascal have usually been really good starting points as they are very close to pseudocode and are easily understandable.
Similarly the various iterations of Basic have also been good starting points as they are more English readable than C based languages.
While VB.NET has little business merit, I think it's the best language to teach at schools. It has a number of extensions that make it easier than C# and it is good for teaching programming fundamentals. It allows people learning it to understand the .NET object model while worrying less about syntax.
I wouldn't be completely against Python as a learning language either and that does have more business relevance than VB.NET, but I would still prefer VB.NET. The ability to drag and drop objects onto a form and have an application that users can interact with at the end of the day gives them something that they can get excited about.
 

Hamster

Resident Rodent
Joined
Aug 22, 2006
Messages
42,928
Python.
1) Open source
Irrelevant for the topic, but a lot of C# is open source too

2) Attempts to make people better programmers, whitespace automatically makes code more readable
Fair enough but reading braces hardly difficult. You almost get the same look with Java/JavaScript style braces

3) Allows people to focus on problem solving as opposed to finding that missing semicolon
I cannot tell you how many man hours have been wasted searching for a TAB that wasn't converted to spaces. Missing "semicolons" are relatively easy to find.

4) Sets people nicely up for engineering where you use high level interpreted languages all the time.

5) Cross platform
So are most languages including C#

6) Wide variety of libraries.
C#/Java has many libraries, JavaScript has a new library/framework every other week. Golang is the exception here

There. Even though Python is a good language for schools (purely because it really is one of the easiest languages to learn), I don't think your reasons are good enough to make a case for it. I still reckon you should give them something they can develop GUI's (proper GUIs, not pyGTK or something :p )
 

Edwe

Expert Member
Joined
Nov 5, 2006
Messages
2,026
Whoa whoa... C# is not at all cross platform. In practice, Mono is absolutely useless. I mean, I like C# and I have worked with it extensively, and I also have had the misfortune of being involved in a project where we had to get a large C# codebase running under Ubuntu. It was not pretty.

Also, I think Python being (radically) open source is very relevant to education in terms of what it has allowed the Python community to become. The Python support community is unparalleled.
 

diabolus

Executive Member
Joined
Feb 4, 2005
Messages
6,312
I didn't see anyone mention it, but a big factor should be the availability of the tools/IDEs/resources of the platform you intend to teach.

Python has a ton of -free- tools , plugins, extensions, frameworks . You can literally write a world class app in notepad .

Microsoft is also now giving away Visual Studio for free (VS Community Edition 2015 is serious stuff) which opens up C#/VB and Python inside VS (IronPython/CPython programming in VS is pretty great).

So right there, you can cover C# and Python in one go for free.

Now look at Delphi....is that free? Last i checked i had to get licenses from Borland / Embarcadero , and the IDE was not free at all. So WTF do you want to use this in schools? Seriously WHY? I have coded in Pascal and Delphi, the language itself is solid, but again, why use it when the tools are obsolete and not even free ?!!

Java is also relatively free still (while Oracle is not trying to cash in somewhere), but i've always absolutely despised the Java IDEs/Tools available out there. Free IDEs like Eclipse is nowhere near Visual Studio . If i had to pick between kids using something like Netbeans/Eclipse vs. Visual Studio, i'd take VS every single time.

Now of course in school you don't want to get stuck on the IDE, hence Python or any scripting language for that matter is probably much easier to teach. I honestly don't recall doing OOP concepts in high school, only in univ. My high school times were pretty straight forward algorithm focused . I definitely didn't do classes/inheritance type of things in high school.

Which again implies, a language like Python is perfect for this task, it reads easy, it codes easy , yet you can do anything you want in it if you go far enough. I use the Django Python framework at work, this is right up there with any MVC coming out of .NET ....so anyone telling me Python is suddenly looking like "toddler code" compared to C# has not used it properly...
 
Last edited:

DA-LION-619

Honorary Master
Joined
Aug 22, 2009
Messages
13,777
I didn't see anyone mention it, but a big factor should be the availability of the tools/IDEs/resources of the platform you intend to teach.

Python has a ton of -free- tools , plugins, extensions, frameworks . You can literally write a world class app in notepad .

Microsoft is also now giving away Visual Studio for free (VS Community Edition 2015 is serious stuff) which opens up C#/VB and Python inside VS (IronPython/CPython programming in VS is pretty great).

So right there, you can cover C# and Python in one go for free.

Now look at Delphi....is that free? Last i checked i had to get licenses from Borland / Embarcadero , and the IDE was not free at all. So WTF do you want to use this in schools? Seriously WHY? I have coded in Pascal and Delphi, the language itself is solid, but again, why use it when the tools are obsolete and not even free ?!!

Java is also relatively free still (while Oracle is not trying to cash in somewhere), but i've always absolutely despised the Java IDEs/Tools available out there. Free IDEs like Eclipse is nowhere near Visual Studio . If i had to pick between kids using something like Netbeans/Eclipse vs. Visual Studio, i'd take VS every single time.

Now of course in school you don't want to get stuck on the IDE, hence Python or any scripting language for that matter is probably much easier to teach. I honestly don't recall doing OOB concepts in high school, only in univ. My high school times were pretty straight forward algorithm focused . I definitely didn't do classes/inheritance type of things in high school.


+1, Jetbrains' products are free for students
 

diabolus

Executive Member
Joined
Feb 4, 2005
Messages
6,312
On a random note, Delphi XE8 Starter Edition (this is like the basic-got-almost-nothing-edition) is R3,000.00 !! I'm sorry, i would consider it almost criminal if i hear the govnment is spending millions to roll this out to schools when you can use any other language and not pay a single cent for the IDE.

And sure, while one might say maybe they get some sort of student discount, but if you want to encourage kids to play around with programming in their own time, in their own homes on their own devices...a product like this will not stick.
 
Last edited:

Paul Hjul

Honorary Master
Joined
Aug 31, 2006
Messages
14,902
as far as I know Embarcadero provide educational licences etc ... and so the cost to the DoE isn't a factor
what they don't do is have a large community of cheap text books or mechanisms to allow learners to expand their own horizons
the costs are felt by the learner - unless they buy into the Delphi routine and become a Delphi teacher ...

But this is the whole point and problem:
Embarcadero is more locked in as a proprietary option than Microsoft and offer none of the "ecosystem" benefits which Microsoft does.
 

noxibox

Honorary Master
Joined
Apr 6, 2005
Messages
23,338
but I don't think C based languages are the easiest for someone starting out and they can appear quite daunting to students.
I've taught C to complete beginners without any difficulty.
 

.QQ.

Expert Member
Joined
Dec 23, 2009
Messages
1,035
I've taught C to complete beginners without any difficulty.

I honestly think lower level languages like C and C++ are worth teaching to beginners, there are so many developers out there that don't understand fundamental concepts like value vs reference types.

While C/C++ can be daunting, it doesn't have to be, a C/C++ hello world isn't any more complex than in other languages.
 

Edwe

Expert Member
Joined
Nov 5, 2006
Messages
2,026
I've taught C to complete beginners without any difficulty.

Yeah, it's all fine until you start doing dynamic memory allocation and complex string manipulations.b9Ä© éÊ gaw f»"☻
Segmentaion fault.

EDIT: in all seriousness, I think C is a great starting language for people who want to become serious programmers and are enrolled for tertiary eduction. However, at a school level, it's possibly not the easiest introduction and will likely frustrate students who are just there because they don't want to take home economics.
 

that_other_guy

Active Member
Joined
Feb 20, 2015
Messages
33
I'd recommend Python as it is very easy to pick up without worrying too much about strict syntax...but I've heard some people struggle to pick up other languages after starting on Python, whereas if you started on something like C/C++, picking up other languages is simpler....

And it depends largely on what the teachers are qualified to teach.
 

.QQ.

Expert Member
Joined
Dec 23, 2009
Messages
1,035
frustrate students who are just there because they don't want to take home economics.

Curriculum shouldn't have to cater for people like that, the industry has enough mediocre developers.
 

Noah

Expert Member
Joined
Jan 21, 2008
Messages
1,539
I'd recommend Python as it is very easy to pick up without worrying too much about strict syntax...but I've heard some people struggle to pick up other languages after starting on Python, whereas if you started on something like C/C++, picking up other languages is simpler....

And it depends largely on what the teachers are qualified to teach.

Wtf, syntax is piss easy, where do people get this "hard syntax" meme from?
 
Top