I’ve just finished teaching our undergraduate algorithms course this quarter. I changed the course quite a bit from previous iterations. This was mostly because I have been designing an online version of the course for our online post-bacc degree (more on that in another post). It gave me a chance to rethink many aspects of the course. One was in how the project assignments were managed.
There were 4 projects. Two were rather large and involved and the other two were still challenging, but not as time intensive. The projects involved: designing, analyzing run times of, proving the correctness of, implementing and experimentally analyzing algorithms using the techniques we learn in class (divide and conquer, dynamic programming, etc.) I had the students work in groups of 2-3. Groups were formed in the first class with the only constraint that each group contain one person who self identifies as being better at theory than practice (based on grades in the discrete math and programming intro course sequences). I did have feedback that the students were thankful the projects were done in groups as they were challenging.
Anyhow, after the first project I started getting feedback of the form “my team members didn’t do any work!” Unfortunately, I didn’t really plan a mechanism for correcting for this. The projects account for 40% of the final grade and looking at the current grades, not all the group ‘leaders’ are ahead based on test performance and not all group ‘slackers’ are behind (as I would have thought). It’s too late to really do much for this quarter, but I would like to be prepared for next time.
I’ve kicked around some ideas:
- Have the groups be randomly assigned and change them for each project. At least then a given student would be unlikely to be always stuck with a slacker, but a slacker could still ride the coattails of the rotating groups. I do this in my graduate class, but there the tests are worth much more and I don’t want to do that for an undergraduate class. Also, the last project is the most difficult, and I would like groups to establish a good working pattern by then.
- Take feedback from groups on who the ‘slackers’ are after the first project and take the ‘leaders’ of those groups and have them form new groups amongst themselves and take the ‘slackers’ and do the same. I think with this the slackers would end up being forced to work or be penalized and the leaders would get a break. It might get complicated though. It would likely piss off some people. Doing so only after the first project might not be sufficient. The groups of ‘leaders’ may not be big enough to form new groups.
- Have the groups distribute the points for each project among the members of the group orhave a group participation score incorporated and based on group members rating each other. I’ve heard of these mechanisms being used but I’m not sure how successful that would be.
- Have a graded question (either on the midterm or as a quick start of class quiz on the day of the project hand-in) that would only be easy to answer if a student was involved in the working of the assignment.
I’d love to hear your thoughts. Or am I over-thinking this and should care less?
I think unfortunately with any graded group project this sort of scenario is inevitable – I would say that those who do not participate are losing out in the long run anyway by not having as good an understanding as the other members of the group. Personally, I would not be as bothered about the issue because as they say “You only get out of university what you put in”..
This is interesting and I hope you get some good responses. I have always hesitated assigning group work for the reasons you describe and because of my experience with the worker/slacker thing way back when I was in school. I know of people who try the solutions you propose, but I am not aware of their effectiveness. Some faculty have each student present their part of the project to them in office hours and then ask oral questions about it. That does seem to work, perhaps in conjunction with your other suggestions.
I do know that former students who have gone to work for some large companies report the worker/slacker thing still goes on in the “real world”!
For item 3, Chris Wallace (OSU ENGR EECS) had the similar thing for a midterm. For a project, we had to implement a virtual file system in C and was very time intensive. Later, we had a midterm where half of the questions dealt with the concepts of file systems were simple enough to answer if you did the project.
oops, I meant item (4)
1) Have it be worth far less of the grade then 40%. Say 20%.
2) Have questions on the midterm and final that (as you say) are easy if you’ve done the project and hard otherwise.
The two suggestions above avoid many of the obvious problems with the other suggestions and will take care of many of your problems.
Other thoughts:
1) I’ve had grad students work in groups on HW and give an oral presentation of it. I make them ALL present diff problems and have the weaker person present alot. Its okay if the better students teach the others how to do the problems and present them, if the others really do learn it. Granted grad students are easier for this.
2) Oh, I don’t have other thoughts for now. Oh well.
Yes. I think I will go to something closer to 20% … that said, the final grades ended up being fair (with respect to test grades) except for just a few students, I think.
Do you have TAs, Cora? At Illinois, we did oral presentations (similar to Bill’s) for the undergrad algorithms class. However:
(a) We rolled dice (in front of the students) to see who would present which problem. If there are 3 problems and 3 students to a group, then the die roll corresponds to a permutation.
(b) Your grade is determined partly by your group’s solutions to the 3 problems, and partly by how well you present the problem you were assigned.
(c) If you really struggle, someone from your group can help you out for half of the credit (for the group).
As Bill says, the consequence is that even the weaker students learn the material, because the better students are incentivized to teach them.
It’s still possible for some students to be slackers, but it didn’t happen often. I think the fact that they kind of had to learn the material anyway (otherwise, they got at most half credit for the assignment) meant that they felt they might as well show up and work on it with their group.
I forgot to add that the reason I asked about TAs is that this approach takes time; it took us approximately half an hour to grade 3 problems presented by a typical 3-person group. (Really good groups would finish in less time.) It’s much more fun than regular grading, though! It also helped me research-wise, because it improved my ability to quickly find counter-examples, which seem to be the best way to convince the typical undergrad that their algorithm is wrong.
Yes, this sounds like a good direction … a student suggested scheduling a lab slot for the class so that groups could have a default time to meet and perhaps it could double for TA sessions. I’ll have to look into how easy that would be to arrange.
As a student in a very similar class right now at Penn State, I’d recommend just letting students pick their own groups entirely. If people refuse to do their part, then their partners simply won’t work with them again. There are definitely some problems with this: the socially awkward student who doesn’t know anyone might suffer, and student’s choices of people to work with, especially in the beginning, may not be able to be all that informed.
Through high school and college I’ve personally seen most of the things you’ve suggested. Random groups aren’t horrible, socially they’re beneficial as they force people to meet and work with new individuals. Of course however, if there are students who don’t try, you have a problem as harder working students had no part of the process of picking the people they are working with.
Identifying slackers and leaders and forming groups based on this seems to be a bad idea to me personally, although I don’t have too much to say why.
Having group members distribute points among themselves is an interesting concept but doesn’t work well in practice always. I’ve been parts of groups where it’s been agreed upon to distribute the points equally and everyone thought they were doing a fair share, but when the time came to give the points out, one individual thought he had done more work and insisted on getting a higher grade. I believe this system puts too much control in students’ hands.
The final idea of a graded question is a harmless one – it’s an easy way to see if a student understands a concept (not necessarily has put time into a project though). Still the additional info doesn’t hurt in the least.
Overall though, I’d say you want to be relatively hands off. Although it’s a somewhat overused argument, you are teaching a college course and should obviously expect the best out of your students. I’d personally deal with issues that arise on a case by case basis and not worry too much about trying to construct perfect groups.
Came across this too, don’t know how relevant it is but looked interesting: http://sbaweb.wayne.edu/~absel/bkl/vol34/34av.pdf