|
|
|
|
|
by pfranz
3224 days ago
|
|
There's room for both. There's a reason why a lot of CS programs have shuffled from primarily C to Python (some had Java in between). Not having to deal with boilerplate and housekeeping lets you focus on learning the topic at hand. Especially in a classroom setting where you're probably focusing on the specific subject instead of real-world dirtiness. But after learning the basic concept, you do need an actual implementation if you want to do anything. |
|
Sure. I'm all for learning ML, Scheme, C/C++, Python, Ruby, Java/C#, etc.
> There's a reason why a lot of CS programs have shuffled from primarily C to Python (some had Java in between).
The reason is called dumbing down the curriculum. My fall freshman year, my college tried to switch from C to Java in order to make it easier for the general population to get into CS and there was a major pushback from the CS student body, alumni and a bunch of the CS professors. We went back to C/C++ my sophomore year.
> Not having to deal with boilerplate and housekeeping lets you focus on learning the topic at hand.
I disagree. Having to deal with the boilerplate and housekeeping helps you learn the topic at hand.
> But after learning the basic concept, you do need an actual implementation if you want to do anything.
I disagree. Giving them "training wheels" will keep them dependent on training wheels. In an idealistic world, people go from Java/Python to C/Assembly, but that's rarely the case.
CS should begin with Math ( boolean algebra/logic/etc ), Assembly and C. Then go on to functional paradigms. Then to OOP. Etc ( in the language ). Of course they should also learn about OS( kernel/filesystems/etc ), networks, computation theory/etc, compilers, etc.
The dumbing down of the curriculum so that music/english majors can pass CS classes doesn't do anyone any favors.