I realize that people who have gone to college and then moved on will think that what I am saying is crazy, but they don’t really get how a research university works. Professors at top universities run large research labs (in the sciences anyhow). They spend a great deal of time raising money for these labs, keeping sponsors happy, and then actually running the lab and managing all the graduate students and researchers that their money pays for.
Usually these professors are asked to teach an undergraduate class from time to time. It is the last thing on their minds to worry about and most would admit they don’t do the job well. They know that lecturing and then testing students to see if they listened is not really education. Education is what happens when they help their PhD students individually with their research problems.
I am writing this while visiting an excellent research university and just after having been at another excellent one. The only time undergraduate teaching comes up in conversations I have with faculty is when I bring it up and then there is simply a collective sigh. How do you teach 200 students sitting in one room?
Universities like the tuitions these kids pay and fool themselves into thinking that they are prepared for something after taking 40 random courses, even though they are certainly recommending graduate school to these students as their real option.
The other day, an official at a lesser ranked university asked me in passing what I would do if I were to create a computer science department at his university. It is was an odd question to say the least. I have only been a professor at top research universities, and the answer there would certainly be to go after some great researchers and start building a great graduate program that was well funded by outside money. But there are plenty of such departments, and these days my mind goes to education rather than research.
So I proposed something radical. I suggested we could build a computer science undergraduate program that taught students to program. Students sign up to be CS majors because they like programming and then they are led into theoretical courses or arcane research courses by the faculty. (All in the supposed interest of breadth and readiness for some imagined future.) I suggested that instead we combine the student’s interest in building stuff with people who need stuff built. This particular school happens to have a great medical school for example. There are lots of opportunities to build important medical software and medical apps. This would happen by letting the CS undergraduates hear about the issues in medicine these days and helping them to interact with medical students and practitioners. There is also a great business school at this place. Students could learn how to invent new software for use in business and also how to fund a company to market what they built possibly by partnering with students in these other schools.
So my idea boils down to this: Let undergraduates do what they came to college to do. In computer science this is rather simple actually. They love computers in the first place so let professors simply help students do interesting things that make them able to build a product and run their own company, or else become valuable employees in a company that might employ them.
Harvard won’t go for this. Where are the liberal arts? What about discussing great ideas? Fine, go to Harvard for that. But it is time that some universities start paying attention to undergraduates in exactly this way, by helping them be what they want to be. No courses, just helping students attain skills and practical experience in what interests them.