Wednesday, May 23, 2007

Learning by Doing Part 2

Is it not hypocrisy to slam current education practices while being a professor who practices them?

In my defense, it took me a while as teacher to understand what is wrong with our education. In other words, I had to learn by doing. I can't say much with confidence about education before college, although I have opinions as a parent of two kids who went through worse and better schools.

However, I think that it would be worth trying a radical experiment in college-level computer science education. This experiment would start with a small group of students, but be conducted with serious attention to scalability. A four-year program would be based on a small set of big projects addressing problems we do not know how to solve. If the projects are successful, they could have major impact. Those projects would be defined by a rolling committee of faculty and students with external input, and would be hard but not unrealistic for making substantial progress in four years; would involve several areas, skills, and talents; and would be manageable by faculty and students. The projects would be organized to cover the core knowledge, skills, and open questions that we believe computer scientists need to command. Let's call those the topics. Incoming students would go through an initial period in which they would select a subset of projects with a balanced coverage of topics, with the help of a faculty advisor and more senior students. Like when selecting a major, students would sample different projects before settling on a portfolio with a balanced coverage. Instead of signing up for classes, students would sign up for tasks in projects. Their evaluation would depend only on how they perform on their selected tasks. Specific tasks would need specific knowledge and skills, which students would be free to acquire in whichever way works best for them. Faculty (and possibly) others would offer short courses on important topics that serve multiple projects, but the main role of faculty would be to guide projects and their participants. There would be no difference between research and teaching. Faculty would ensure that projects and project assignments are demanding so that students have to get deep knowledge and skills across a range of topics. Faculty would work with students to help them find the best way to succeed. But each student would have an individualized curriculum tied to their projects and their topic coverage requirements.

In other words, undergraduate education would be run like a (large) set of graduate research or cutting-edge industrial R&D projects. Lectures, reading, assignments would be provided to satisfy problem-solving demand, instead of the current model in which they are imposed on students independently of their stage in their education.

Projects would have concrete outcomes, for example papers, online services, and open-source software. Individual faculty, or small groups of faculty, would be project directors, with students playing appropriate roles in different project functions.

This is a very rough sketch. I'm sure there are many objections. But something like it has to emerge. Fun and profit demand it.


Anonymous said...


this is very interesting.

For your domain of expertise could you:

a) give an example of a topic;

b) give an example of a current research activity that you would not consider a suitable topic;

c) identify the (set of) principle(s) that would allow you and others to distinguish between a) and b)?

Stefano Bertolo

steve said...

I think it could be made to work, but the load on the professors would be higher - to do the job right they would need to be more attentive to the students and what they actually know than more are. (this would be a good thing, but I think you'd find resistance)

There is the issue of changing majors ... this isn't as "modular" as conventional programs.

But I think it makes a good deal of sense and should be tried. It would be interesting for a group of schools to do this with some rotation of students among them.

Chris Koenig said...

Love the idea... You can't buck formal classes altogether, since you'd want to teach fundamentals and normalize a bit, plus allow for those who aren't 4-year CSEs. But you're right, there's latent demand.

At Penn, the senior project is the greatest facet of the CSE curriculum. Profs post ideas, too, so it begins to resemble this idea. But why not have a junior project, and a sophomore project? Offer it as something independent-study-ish, and you'll have takers.

steve said...

My undergrad school was something of a glorified trade school/guild. While I can fault it for some things (my undergrad education was extremely narrow ... about 70% of my classes were in math and physics), there was also a very strong mentoring program that put kids, usually starting with sophomores, on experiments and other investigations that often lasted more than a year and taught them about science at a fundamental level.

There was still formal classroom work, but the hands on work was much more important to me ultimately.

I would love to see a major constructed around this.

Perhaps the place to begin is in emerging fields where the perceptions of what constitutes an education aren't as strongly established. Perhaps the blend of applied physics/chemistry/cs/mechanical engineering (or fill in your favorites) that is emerging for dealing with climate change or new energy demands would be a good area.

But I would love to see it done in CS or Physics.

chris brew said...

Very attractive. I tend to agree that this is something which is likely to happen. I'm not sure of whether or how it can fit in to current institutions. A college that
already has a highly distinctive profile, like Cooper Union in New York, might more easily do this than others. From the advertising, it looks as if Cooper Union may already be several steps down this road. (I don't necessarily read college advertising for pleasure, but we have a 16-year old going into the senior year, so...)

It was Steve's second comment here that reminded me of Cooper Union. I wonder if that was the place that he went.

I'm not convinced that the demands of this kind of educational experience are either greater or lesser than those on existing faculty, but it does seem clear that a different balance of technical, interpersonal and managerial skills will be called for. This may mean that only a small percentage of existing faculty will want to take up the challenge.

A major role of the faculty would be to make sure that projects are such as to allow education to happen even in the face of the kind of schedule slippage Brooks talks about in the Mythical Man Month. Quarter- or semester-length courses have the feature (or bug) that when they don't work out too well, the next quarter is something of a fresh start for all.

Bob Carpenter said...

When I was teaching computational linguistics at Carnegie Mellon, I thought the most useful class we taught was NLP III. David Evans developed the basic model, but I inherited the class and taught it after it was established.

NLP III was for second year MS and PhD students. It followed three NLP lecture/project courses (intro, I and II for those who want the math to work out), and itself ran for two semesters.

We tried to compress the whole Ph.D. experience into a supervised 1-year project. We had students start thinking about and researching topics over the summer, then they hit the ground running with proposals in the fall. You have to start by teaching people what a doable project is, and you can only learn that by doing, too.

Learning to focus research was almost invariably the most difficult part of grad school for ambitious students.

What made NLP III different is that we focused on academic skills, not NLP skills. My students already knew more than me about their own research areas at that time.

We assigned students to be the "host" of other student's talks, and the host had to do the introduction and always had to ask at least one question. I made the students give each other written feedback on papers like they were refereeing journal submissions, and yes. When other people gave the class, they had students do posters like at a conference. We had them write "elevator pitches" that condensed their project into what they'd tell someone else in the field who asked them what they were doing when they were in line for coffee at a conference.

This class was *easy* to teach and almost as rewarding as meeting one-on-one with good grad students. An observation that a lot of us who taught this class had was that the students worked harder when they knew the other students were grading them. Not to mention when they cared about the outcomes. Students can be harsh critics and they care what their peers think.

My one experience in teaching an intro-level undergrad humanities class was a disaster (a freshman intro to psycholinguistics designed by Ted Gibson, who probably went to MIT just to avoid teaching the class). I couldn't get the students into thinking about projects. We ran experiments in class (Johnson-Laird style syllogistic reasoning) and then analzyed the results in class, which I thought would catch their attention. Nope. The main comment on the evals was that the students wanted more well defined tasks. Basically, I'd have scored top marks with lectures and multiple choice tests. I don't have any insight on how to jump start project-oriented work with freshmen. My upper-level undergrad philosophy of language classes never had that problem.

Kevin said...

I'm a computer science major/rising sophomore at Penn, can we do this please? I had a long discussion with Rita Powell about how computer science is too much lecture.

You should read Teaching as a Subversive Activity by Neil Postman.