For a good "what's programming really is" class mobile app development and some web dev would be great. First a mobile hello world. Kotlin preferably. Then they can whip up a very basic backend (it just spews out rows from a DB), again in Kotlin. And then they can slap an admin UI on top in HTML.
And then over the next few years it would be great to dissect this. CPU, ALU, ASM, raw memory, network basics, IP (BGP ~ distance vector routing), TCP, buffers, syscalls. RDBMS, MVCC, B-trees, merge sort, heap sort, and so on.
Oh well, one can dream. But usually students are just bombarded with completely disconnected courses.
Re:Don't Make Students Use Eclipse
by 29athrowaway on Sunday April 12, 2020 @06:48AM
(#22847300)
In the context of higher education it is OK.
Re:Don't Make Students Use Eclipse
by tsimionescu on Sunday April 12, 2020 @02:21PM
(#22850049)
I was thinking of higher education. I think it's far more useful to teach algorithm design first and the nitty gritty of computer implementation later. This is, after all, how the field actually evolved. We had algorithms and programs far before we had the first computer.
Here I disagree. I would not start teaching programming in a manual memory language (though that is how I started) because memory corruption is really hard to deal with and completely inconsequential to the basics of programming.
I do think it's important that every programmer should know how to work with raw memory and pointers, but it is a good subject for an intermediate class, after you have the basics of what you are supposed to do while programming.