Originally posted by: mAdMaLuDaWg
Computer Science is a comparitively young degree program and universities, IMO, haven't found an effective method of teaching it yet
Considering the type of programming that most people will end up doing, which is database manipulation and retrieval, there is entirely too much focus on higher mathematics and physics in most computer science programs, and a woefully inadequate amount of focus on techniques. I've yet to see a program that has enough emphasis on code reusability, decoupling, abstraction (how to properly use it, not just what it is) and design patterns (especially factories and MVC), unit testing, design by contract, delegation of responsibilities, the vital nature of documentation, and especially debugging. These are all things that should be taught VERY early on before bad habits set in and are hard to break. These are all things that could dramatically improve the quality of the software that is produced.
I'm not saying that it's not worth the effort to know calculus and discrete math to do scientific programming if that's what your objective is, but I think there needs to be a lot more emphasis on software engineering. Software doesn't have to always be buggy, late, and complicated.
