I'm a TA for some introductory CS classes and one thing that really bothers me about the curriculum here is the inconsistency. For instance they teach object oriented stuff first but when they introduce a new algorithm or language concept it's all about getting it to work rather than getting it to work and maintaining a good design pattern or object oriented program.
In our labs they're graded on the formatting in the source code but not on the way it's organized. Although if they have a magic number instead of a named constant they're penalized.
It seems to me that everything is haphazardly implemented which, at such a low level of CS, is detrimental to the major itself because bad habits fester and perpetuate until-- I've met grad students that don't know how to do a java program without a driver.
Believe me I understand your frustration, maybe not with the EE major but the haphazard teaching style I completely understand.
I have to say though one of the great things about a CS, CIS, CE, or EE major is that it's one of the most practical degrees you can get. It's not just a piece of paper, you'll use what you learn literally everyday.
It's a shame we're required to have a degree these days to get a decent job though.
Also I wrote this metaphor the other day and it needs some fleshing out but I like it and I dunno if someone else has thought of it yet... it's 3am so I'm going to sleep.
Windows is like a pair of steel handcuffs.
Mac is like a pair of fluffy/kinky handcuffs.
Linux doesn't cuff you.
Post edited at 12:37 am on Oct. 28, 2009 by ranman