January 22nd, 2012
|10:14 am - Programming languages in schools|
I have just written a post on the new computing curriculum for schools. People might be interested in the list of suggested programming languages. This is not mandated, but I think it is interesting. It is found on page 13.
Every student should have repeated opportunities to design, write, run and debug an executable program. What an executable program means can range widely depending on the level of the student and the amount of time available. The following are included in programming:
- Small domain-specific languages, such as instructions to a simple robot, or Logo-style turtle.
- Visual languages such as Scratch BYOB or Kodu.
- Text-based languages, such as C#, C++, Java, Pascal, PHP, Python, Visual Basic, and so on.
- Spreadsheet formulae
I just wrote a book for a curriculum in another country which is based around Pascal and pseudocode, so it is still used. I think it's a good teaching language.
The problem with a curriculum is that it either mandates, and gets out of date, or leaves the question open, and can lead to confusion.
|Date:||January 22nd, 2012 04:00 pm (UTC)|| |
We used Modula-2 for quite a few years in the nineties, followed by Pascal briefly (in the days when our students were taught by the CS department rather than in-house, but we ran the practical classes). Modula-2 was halfway towards object-oriented programming, but clunky by today's standards. Straight Pascal doesn't have any OO features, does it?
One of the things OO programming reinforces is that programming isn't an abstract puzzle-solving activity, you are at some level modelling a real or virtual object or system with relationships, and you need to think carefully about how you represent that (I remember the reaction when one of the CS lecturers started talking to first year engineers about "the universe of discourse", which didn't go down well, but that's the sort of concept which needs to be got across somehow). If you program with something like the Arduino system or LabVIEW, the relationship with the real world is more apparent.