I'm not sure whether the computer science major is that bad over in the states, but if it is, maybe you should take a look at how we do it?
I'm not sure whether the computer science major is that bad over in the states, but if it is, maybe you should take a look at how we do it?
Our languages and machines course is excellent, as is our algorithms/data structures course (also using the Cormen text). The two intro to CS courses cover OO with Java, and also taught basic data structures like double linked lists and binary trees. Algorithms also used Java for homework assignments, but there was nothing specific to Java in the course. We do have a C++ course and a silly web programming course that covers html/css/js/php, but they're elective. The Database course is required and goes in depth about relational algebra. The Software Engineering course is required but I haven't taken it yet. Edit: forgot about the computer architecture course; it's required and had no math beyond arithmetic for calculating cpu efficiency with different pipeline sizes, etc.
I honestly think the anti-CS major crowd is misguided. There's no way I would have been qualified for an entry level programming job before college. I barely knew how to program, and more importantly, I didn't know how to learn to program better. Now I do.
The other 2 main modules are: technical cs and practical cs (methodical and practical basics of cs) in "practical cs" we learnt a functional pl (1st semester) and java (2nd). In technical cs: MIPS assembler (2nd), C and ARM assembler were a requirement in the 3rd semester.
So, although if you just look at the modules, the practical part takes up the biggest chunk (ECTS), it's only about 1/4th of the study.
That's it.