▲ 1 points
back
2 comments
Is the goal to teach the process of programming or the process of programming in X? If it’s an intro course, I would think the former is required: how to understand the request, what kind(s) of answers to expect, how to design a program. Given a design, implement and debug a solution and review its output vs expectations. Constraints can be added such as programming tools and environments but these should be deferred until students understand the process.
Everything else builds on this process. The kinds of things one might create. How to handle complexity, application domains, understanding architecture and program performance, etc. - the theoretical and engineering aspects of creating computational solutions to problems.
However, if the goal is getting people hired, choosing the language and tools du jour should be used to create good technicians. The problem as everybody has noted is that the winds change (see Asimov’s “Profession”).
There's a large number of languages out there that I wouldn't teach at least as a first programming language. Some of them aren't even that esoteric or particularly old. The list of plausible languages left after eliminating all the ones that are a terrible idea for someone's first experience isn't actually all that long.
I guess that comes under the "constraints" section in the article.