|
|
|
|
|
by jgg
5868 days ago
|
|
A nice start would be actually teaching Computer Science. Computer Science is a branch of mathematics, with both theoretical and applied aspects. This does not mean that learning Java syntax constitutes as "applied". I think it should be expected that CS students pick up languages on their own in order to complete and understand theory-based assignments. Anything else is probably just pandering to people who shouldn't major in CS. This doesn't mean programming projects are entirely out; if they serve to reinforce understanding something like logic programming or pointers, then by all means they're useful. The "open source contribution" and whatnot should be done on your own time, and doesn't belong in the curriculum, period. Remember, you don't major in Physics to learn which brand of concrete you need to build a bridge. Not teaching a concept because it isn't "used in industry" is a sickening corruption of what academia is supposed to be about. See my comment here:
http://news.ycombinator.com/item?id=1345596 |
|
You correctly said that Physics majors do not study which details of bridge building. Indeed this is part of a different major (Civil Engineering, I suppose).
In contrast, Computer Science is a very broad discipline. Large portions of it are science; large portions are engineering (or similar to engineering, if we exclude Computer Engineering per se). A good student, or a student with a good mentor, should be able to choose a more theoretical (scientific) or more practical (engineering) path and work on the curriculum accordingly. I understand that it is not always possible (in some places, for example, students cannot choose classes), but at least a student should be able to choose where to focus.
A small point about "picking languages on their own". I think basics of languages can be taught to freshmen, at least selectively, to help those students who may be lacking in previous exposure to computers in high school. (Depending on the university, this may or may not be an issue.) Teaching basics of C or Java or, I don't know, Python, whatever, this way does not turn a university in a Java school or anything like that. Indeed it may be as useful as remedial classes in calculus.