Hacker News new | ask | show | jobs
by dehef 3164 days ago
In my university (in Paris) we used to learn programming that way for the licence degree

1st year -> pascal only

2nd year -> c only

3d year -> java only

That was a very nice learning curve for the core course of programming.

6 comments

For absolute beginners, I still think Pascal, or Turbo Pascal is best to start. It has a syntax that doesn't scare people away, and very readable. Deploying is also 1 trillion times easier then what ever we have today, ( C , Python , Ruby , Node.js ... )

I would have picked Ruby if it could compiled into a single executable file, and if the Dev environment actually work on Windows.

P.S: It does work on Windows, but not as simple and easy as it should be. Compared to every other alternative on the market.

At my university, we skipped Pascal and went straight to Modula 2. This was in the late 80's - early 90's.
> Deploying is also 1 trillion times easier then what ever we have today, ( C , Python , Ruby , Node.js ... )

What makes it easier?

Distributing an executable from C seems easy. And using package managers from others also seems easy.

Press F9 and you get a self contained exe which was not dependent on any libraries in about a second.. I think that was what the poster was getting at.
Absolute beginners don’t deploy though, they write lessons down and then hit run. “Scripting” langs work great for this.
I was enrolled at a university that had you progress like this:

1. Imperative programming with Pascal

2. Object-oriented programming with Java

3. Functional and logic programming with Prolog and Scheme

4. Advanced functional programming with ML

All the software engineering & project management courses basically assumed Java-brand OOP and related practices, though.

Before that I was enrolled at a different university that did three things at the same time in no obvious order:

A. HTML/CSS/JavaScript and PHP for web development (yes, like in the 2000 era)

B. Java for linguistics programming and software engineering (but the professor wouldn't shut up about how much he likes Oberon-2)

C. C++ for interactive graphics programming (and maybe other things to)

Basically all the advanced "computer sciencey" stuff was in C++, all the more "software engineeringy" stuff was in Java and everybody pretended web development wasn't really a thing.

Pascal is definitely a very good language for teaching the basic of procedural/imperative programming. It has several good properties : it teaches you structured data (which helps to understand formalization), is strongly typed (which helps to reduce the uncertainty about the behavior of a program which in turn helps student to understand what they do precisely); you don't have to face pointers (which in my own experience are tough to understand); etc.
But when you need them, pointers are there
Ah maybe I'm a bit orthodox here :-) But you're right. At least in Turbo Pascal, there were pointers and super nice in line assembly language.
I learned pointers in my first semester of CS with ^Pascal, and glad I did because the syntax was more readable.
A friend taught me QBasic and then another friend taught me Turbo Pascal.

Later, in high school, I learned Delphi and we did Java at Monash University.

This really funny or strange.

This is exactly how IT classes went in my high school.

Uni was really scattered though: Java, C++, C, Prolog, Python.

yeah in Spain it was pretty much the same (almost 20 years ago), touching others just a bit (haskel, prolog, etc.)