|
Very quickly, two comments:
1. Over the years I've noticed the near complete demise of teaching of how computers works at near-hardware level. CS students were once taught assembler (and even machine langauge) and basic hardware logic. Today I'd add more concepts like caching, pipelining, OOE, etc. The point is that do todays students really have any notion of what the computer is actually doing? This impacts on a lot of performance-related issues. For example, its hard to appreciate how a good compiler contributes to code performance unless you have some appreciation of what the hardware is up to. (You could have a similar thread on OS structures now that I think about it.) Some might argue that this isn't needed much anymore, but in many areas its still vital.
2. I've always thought that universities should emphasis the underlying theory/structure, with the practical as just a necessity, not the essence, unless its the "lower stream" course for people in other disciplines to pick up programming. For a CS course, ompiler theory, OS structures and approaches, number representation (incl. IEEE), parsing theory, etc., etc. And, err, you've listed nothing on algorithms??! better not start me on that ;-)
Your course so far looks like a "lower stream" practical course to me, with the CS students to take additional course(s) that teach the actual computer science, as opposed to programming (as croach touched on).
myc18's suggestion of technical writing is excellent, but I'd prefer to see that taught as a short course by the appropriate Arts dept. Ditto for the legal side of things, but done by the Law dept. of course.
andy, I agree with the DRY and coding practice issue. I've seen published graduates from the "new" bioinformatics crowd with code that horrifies me.
|
2. This is EXACTLY how it worked at my alma mater and it seems to be the case at many other schools. A lot of time and energy (and money;}) was spent on these topics you mention as well as the design and analysis of algorithms in my program. I think part of the reason certain professionals share the opinion that the author expressed is in part related to this fact. The link to the real-world is not always apparent to all parties involved.