The Good Parts:
- Allows students to develop and build on their own ideas.
- Lets them exercise the knowledge they've gained.
- Gives opportunities to discover gaps in their knowledge.
- Introduces time and resource constraints to practical work.
- Teaches teamwork skills.
- Opens up "teachable moments" not accessible through regular classwork.
The (sort of) Bad Parts:
- Time and resources are never sufficient.
- Substantial amounts of effort can be expended on fruitless effort.
- Non-self starters can falter easily.
- Much of the class grade rests on work patterns with which many students are unskilled.
- Teams don't always gel.
I say "sort of" bad, because these are the same sorts of problems that are encountered outside the classroom. In the classroom, the cost of failure is a less than sterling grade--and not even necessarily that. Failure in the classroom is not the same as commercial failure. A non-working project does not necessarily result in a poor grade (though one that works as planned will usually garner a better grade.) The classroom is a good place to be pushed and challenged.
The Future Value:
- Lessons learned when doing projects are often more valuable outside the classroom, in terms of time spent, than much else that is done in the classroom.
- Recognition of the value of people and communications skills alongside technical skills.
- Understanding that technical work must be accomplished to have success, even in the face of uncertainty.
- Learning to build on strengths, rather than be halted by shortcomings.
- Experiencing how great the gap is between a technically successful demonstration and a finished product.
The road to a finished product is seldom traveled to its end in a class project. There just isn't time in most class schedules, even if the students spend time outside class working on the project. However, a sense of the length of that road is obtained, I find. And a new appreciation for the effort that goes into the "second 90%" of work on a product is developed.
In my class, the teams get a chance to see what happens when actual users lay hands on the project results as well. The developers of a program have to watch silently as members of another team try to use their product. They get to learn more in 20 minutes than I could give them in hours of lecture.
The best part of class projects, in my opinion? It's a lot more fun than limiting a class to assigned classwork. I try to spend as little time on teaching the necessary material as possible before setting my students loose to discover on their own. It's something that not only do I enjoy more, but my students, so long as they keep the project in perspective, can enjoy a lot more than assigned work. It's very jarring for some to be set loose this way, but once they're helped over the hump everyone has a really good time with it.
Plus, they get to have an actual thing out there with their name on it. Something they can point to and say