<p>"I have to admit that we don't have any hardware-related CS courses. But while there are no courses on systems engineering or computer architecture, we do have standard CS courses such as the theory of computation, compiler design, computer graphics and artificial intelligence. I'm not sure why someone would call this "not a "real" CS major.""</p>
<p>In the current CACM (Communications of the ACM), there's a Point/Counterpoint article on Technology Curriculum with one point that CS majors should be learning how to work with software packages and building blocks. The other point by Eric Roberts is more towards the traditional CS approach - math, algorithms, etc. There are company heads looking for programmers and engineers in both domains and they sometimes complain about the lack of candidates with the skills that they want and they blame universities. Well, there's a need for both but probably in different programs.</p>
<p>The issue of a real CS major includes studying physics so that you have at least an idea of what is happening in the hardware at a physical level so that you just don't assume that it is magic. It also allows you to read papers put out by the chipmakers while understanding what they are talking about at the physical level and at the gate logic level.</p>
<p>Like mathmom's son, our son took 200 and 300 level courses in his freshman year and is on track to finish his undergrad in 3 years. He has the option for a 4-year combined undergrad/masters degree. Having a lot of options is nice. The problem is that there are so many interesting areas to go into right now.</p>