<p>
</p>
<p>I don’t disagree with this, although I do think it’s a bad idea to design core courses around topical subjects (I’ll use your terminology). It’d be dumb to teach CS61A in the “latest” language because then we’d have to change the course every few years to adapt to the new “topical” language. That would be completely needless, since we could instead just offer some electives (e.g., the CS198 RoR course and the CS9H Python course) that hit that area for interested students (though in reality, learning it on their own in a week would be no problem if they understood the core curriculum).</p>
<p>
</p>
<p>That sounds much, much more like a graduate level course than an undergraduate level course. A very specific, highly complex topic meant for students interested in that area? That’s how I view grad classes, not undergrad classes (such as CS298-11, though there’s nothing wrong with an advanced undergrad taking that class). I think it would be fine to have a nice, comprehensive algorithms course in the undergraduate realm (e.g., CS170) that could use Internet search algorithms as a specific example. I don’t see a place for a course on Internet search algorithms in the undergraduate curriculum, though.</p>
<p>I think we’re getting a bit too much into the philosophical question of what the purpose of a college education should be. Is it to best prepare students to get a job in the industry, ignoring theory in favor of practice? Is it to teach a balance of theory and practice? Or is it to focus on theory only and let students figure out how to code themselves? It’s a pretty subjective choice.</p>
<p>I agree that the courses at a university should reflect current technology. For example, the EE series of courses shifted focus heavily from BJT to MOS technology over the last decade or so as industry shifted similarly. But I don’t see that as justification for scratching theory from the CS curriculum or adding needlessly specific or advanced courses to the undergraduate curriculum (unless you subscribe to the idea that the sole purpose of college is job preparation), especially since learning to be a code monkey is really easy (you don’t even need a textbook, just some free time).</p>