Here's a practical suggestion to Philip Greenspun's issue.
Create ongoing seminars of 10-12 people. These would go for years or decades at a time. They would be like small businesses. Each would have a faculty member in some role (leader, advisor, evaluator, silent observor). One or more graduate students. And a variety of students from different years.
The purpose of the seminar would be to create something on a long-term basis (at least two semesters). It could be for a company (in which case you might get paid). It could manage an open source project. It could do academic research. It could be for a nonprofit organization. It could create something totally new. If your school did new business incubation it could spin directly into an incubator after being cultured as a class for one or more semesters. They would continue on a year-round basis, if appropriate.
During the student's first year of Computer Science, they would learn the foundations. Then they could apply to a seminar. Some seminars would give total academic freedom for the other 75% of your courseload. Others would specialize, and require certain electives, in preparation for a capstone research course in the field later on. Of course, your teams in your other courses would normally be made of people from your seminar. Because if there was any leeway in the assignment, you'd craft something useful to the product of your seminar.
Seminars would have code repositories. Some might have relationships with companies in their specialized field. A veritable revolving door of seminar to summer job to permanent job to graduate student, etc.
After sophomore year, top students could start their own seminar. Get an office. A tiny amount of seed money. A faculty sponsor. If they could find five other people to break away. And no second years until the seminar is established -- no inflicting a new seminar on impressionable minds.
Some seminars would sponsor their own advanced classes, attracting the elective efforts of other students to their cutting edge work. Some would be published a lot. Some would be unheard of until their IPO. Some would focus on CMM Level 5. Some would be an open source cat herding crew.
One class a semester is all it would take to go beyond the textbooks and problem sets to drive home the principles of computer science.
Comments