I disagree. "Hello World" as a problem is completely uninteresting. But it can be a part of a great introduction. I'd expect most "Hello World" tutorials to quickly tell me how to go from reading text in my browser to running code on my pc. And that is really useful.
It's definitely useful, but if we can do that and also be interesting, wouldn't that be better?
If this was a marketing course and the assignment was to sell people on the idea of learning to program, "Hello World" introductions would get a failing grade.
What's distinct about Hello World is that it's a ritualized version of learning how to write a print statement. Teachers sell it as an important rite of passage, but that just isn't how students feel about it (and they shouldn't). I think this disconnect only causes students to disengage.
"Hello World" is basically the bare minimum you need to demonstrate that you got the computer to run the program and do something (so it's setup and configured correctly, and you understand some of the syntax). It also demonstrates how much of the way programmers actually communicate with each other is through conventions and not more formal standards. AFAIK there isn't a programming language with a specific built-in "Hello World" function, but, like Goldilocks and the Three Bears, everyone Just Knows About It.
Granted, if the rest of the course was just like it, I agree it would be terrible, but the first lesson itself is actually not that bad.
i really like this mythos argument that the first lesson is about communication to enforce the convention that languages should communicate
this is interesting
and trying to dream up languages that fail, or refuse, or do anything else but communicate, is fascinating.. what would a language like that look like, what would it be capable of?
i do like the idea that conventions supersede standards, but hello world seems even counter intuitive to the programming convention of efficiency
print("hello world")
demonstrates communication, but also has the individual typing 20 things to print 11 thing out of the same editor thae typed into
print(2**71)
demonstrates communication and running code, as well as having the potential to elicit awe at the capabilities of a collaboration with this machine
i said in the original comment that i think programming should be folded into mathematics education, in time parallel
stead trying to compartmentalise education into disparate parts we should be showing everything's interconnected nature
Yeah, I think that that print(2*71) might also be just as useful as print("hello world"). But I don't really think it is any more useful than hello world.
And how connected do you think computer science and mathematical education should be? I think they should definitely be different subjects, but they are definitely related. I'd be really surprised if I found a cs student from a decent program who graduated without realizing how connected they are. I'd expect the average cs student to have more programming experience than the average math major. But I think most math majors have some of the same general skill sets, and would have done well in cs classes.