I am in the field of computer science, and I have noticed a trend among a group of students when dealing with undergraduate programming projects. The situation is that there are some students that when faced with a programming project they seek for students who have that skill; so that in the long run they just do not program anything at all whilst the others do all the work.

I do not know if that could be categorized as a plagiarized work, because they are taking credits for something they have not done. The issue is that is becoming a big problem in our faculty, and it is not easy to track those students.

What would be the measures to be taken for avoiding that behavior?

  • Comments are not for extended discussion; this conversation has been moved to chat.
    – eykanal
    Commented Dec 20, 2017 at 2:29
  • It would be very interesting to know where the peer-evaluation lover/haters come from. (I would guess mainly US, non-US, respectively.)
    – Haudie
    Commented Dec 24, 2017 at 22:16

18 Answers 18


Here's a view from the commercial side. I have been interviewing CS graduates since about 1983. Allowing CS students to be graded entirely on exam scores and group projects causes real problems for the students after graduation. The majority of MSCS graduates I have interviewed were unable to program AT ALL. They were passed through CS course work without ever being required to independently produce working code. Reality hits when they go to a technical interview at a selective employer and spend 45 minutes trying to solve the warm-up problem. I used to be frustrated with the candidates. Now I'm angry with the CS departments who sell worthless graduate degrees to unsuspecting students.

Shortly after I graduated from Carnegie-Mellon in 1979 they found that despite completing the introductory CS class required of all engineering students, most could not produce a simple working program. In response they instituted a practical final exam. Students were put in front of a terminal and given a couple of hours to write a working program to solve some simple problem, something that was probably ten or fifteen minutes work for a competent programmer. If the program didn't work, they didn't pass the course.

All CS programs should, as early as possible, ensure that students can independently produce working code before allowing them to advance. It's cruel to hand out degrees, leading students to believe that they are ready to work, when they are not and likely never will be.

  • 10
    A computer science degree is not a programming degree. Commented Dec 17, 2017 at 13:40
  • 5
    @JackAidley: But "programming degree" is not a thing that exists. Commented Dec 17, 2017 at 16:11
  • 15
    @JackAidley: the students who enter these programs are enticed to pay tuition for two years on the expectation that at they end they will be employable as software developers. Their grasp of computer science theory is no better than their ability to write code. The candidates who can't solve simple programming problems also can't explain the difference between a tree and a hash table. Commented Dec 18, 2017 at 2:46
  • 15
    @JackAidley: That doesn't excuse a computer scientist from being able to code.
    – user541686
    Commented Dec 18, 2017 at 10:50
  • 10
    @JackAidley: Computer scientists need to be able to program just as mathematicians need to be able to do arithmetic. They don't need to be exceptionally proficient, but you expect a certain minimum standard.
    – MSalters
    Commented Dec 18, 2017 at 12:05

I can think in some possibilities to deal with this problem, but I don't know if they're the best policies.

  1. Ask for a statement of contribution (similarly to the ones we see in scientific papers). The students would need to lie in a document if they would want to carry others with their work;

  2. Perform individual evaluation about the project. You can do oral or a written exam about the project, based on the statement of contribution;

  3. Grade the students accordingly with the statement of contribution (not always possible);

  4. The most efficient method (with less work to the professor): stop giving group projects.

  • 14
    "The most efficient method (with less work to the professor): stop giving group projects." I have to respectfully disagree with your last point. I believe effective teamwork is an important skill to teach. Dropping group projects from the curriculum just to make less work for the professor seems to be a bad idea. Commented Dec 15, 2017 at 21:55
  • 8
    I always assumed that group projects meant less marking for our teachers? While there might be a small overhead the overriding factor is that groups of x equates to dividing the marking workload by x (no?) Commented Dec 16, 2017 at 1:20
  • 8
    @DavidEtler I think you will find students are pretty adebt at effective teamwork. At that that is exactly what the teacher is complaining about. When my team encounters a string encoding problem. I usually end up doing it, I like and have an understanding above my team. They despise it and are prone to making silly errors. The most effective division of work is usually for me to just do it. In the same way my team wants to put out a good product, students want a good grade. As much as a student may complain about being the only one on the team doing work, they usually want it that way
    – 8bitwide
    Commented Dec 16, 2017 at 19:41
  • 7
    @DavidEtler Teaching effective teamwork is really difficult. Actually, grading students for that is even more difficult. And although I agree that effective teamwork is important, most group assignments I participated as a student were simply terrible and traumatic, as I ended up doing everything, such that it was best I didn't "learn" anything about teamwork.
    – Pedro A
    Commented Dec 17, 2017 at 3:03
  • 4
    @Hamsterrific That was exactly my experience. Team projects simply meant more work for me as I was going to end up doing basically all of it anyway. I soon learned that even when it was supposed to be teams it was less work for me to do it alone than try to work with a teammate and then end up doing it on my own anyway. Commented Dec 17, 2017 at 3:58

Thank you for acknowledging that this problem exists. As a student who "suffered" from working in groups I think I have the duty to give my two cents to this question and point out that some suggestions from others are bad. I'm a student and I've been there countless times. Oh, I ended up hating working in groups.

TL;DR: Putting students to work in groups has a mountain of downsides. First of all, be aware of them. And at least, you MUST have a solid way of grading each student separately.

The fallacy of "but in real world they will work in groups"

Well, it's true that in the real world, almost everyone will have to work in a group, and it is lovely to think that students must be trained beforehand so they can do that properly. But working in a group in a real job is one thing. Lots of "group assignments" I see around in schools / universities are totally another thing.

  • In real life you will have a manager/boss that will "grade" and "fire" you based on what you do. On the other hand, in the vast majority of group assignments I've received as a student, everyone in the group get the same grade, no question about it. This is borderline ridiculous.

  • In real life you will have a manager/boss that will give you tasks, observe your progress, help integrate your work with the work of others, make sure things are going smoothly, and so on (or, if he doesn't, then he is a bad manager, but nevertheless in real life it is not your job to manage the stuff - unless you're the manager of course, but this is not in the scope of this question). In undergrad group assignments, good luck to you, just get the whole thing done and hand in to the teacher.

  • In real life each member of the group can be assumed to be minimally interested in doing a good job (otherwise they will be fired). In undergrad group assignments, there is always that guy who is just slacking. And for the "suggestions" of letting students "fire" slackers or grade each other on how much they helped: that's nonsense. First of all students aren't supposed to grade each other, period. Secondly, put some psychology in it. No student will ever give terrible grades or "fire" another student. There's a whole lot of social aspects here. Bullying, retaliation. They belong to the same class, they have other classes to attend, perhaps will be colleagues for years, whether they like it or not. Do you think I would expose the bully slacker or do his work for him and stay safe?

Unless the theme of your class is 'working in groups', where you would assign someone to be the manager and all that, it is probably not your place to grade these oddities of working in groups. And by not grading it, it brings the morale of the good students down, since they have a ton of unrewarded extra work and stress.

Ask yourself why you are putting students to work in groups.

Perhaps you are assigning a huge task but don't want it to be done individually because it's too much work for a single person. You are counting on the fact that if they are working in a group they will split the work and then have less work per person. If this is the case, don't forget and don't underestimate the fact that if they split the work, there is the extra task of adding it up in the end. Oh, this task is the worst, brings me memories... First of all, don't underestimate the hugeness of this task. How many times it happened to me that I said "okay guys send me your parts and I will add them up" only to find out that they aren't joinable at all, sometimes contradictory, sometimes missing a key thing to glue them... Oh, but it's a part of working in groups, you might say. It is lovely that you want your students to learn the extra difficulties of working in groups. But we get again to what I said in the section above.

Perhaps you want them to learn to work in groups. If this is the case, make sure you understand what I said in the other section. If you are aware of all the problems, and still think you can find a fair way to do it, I'm sure you will do way better than many other teachers out there that just throw the work in the students without thinking about it. But is it really your task to teach students to work in groups? I mean, is it in the spec of your teaching subject?

Solution: (other than giving up on group assignments) split the tasks yourself!

Since this is about programming, this shouldn't be so hard actually! Example:

Your task is to create a tic-tac-toe variation game, with a 7x7 board, where connecting six symbols is a win. Organize yourselves in groups of three. One person will code the game mechanics (the concept of a board with methods to make a move and determine the winner), another will code the user interface, and the third will code a ranking system for accounting the best players among many matches.

(I just made that up, certainly needs tweaking) The idea is that each member is doing something specific. And if one of them does their part badly, the others don't have to worry about it. Everyone will be mainly graded by their module. Considering Java, for example, you could specify the interfaces and tell them to implement them. Or you could make that a task too, each member explains how he expects the other member's APIs will be. This way they can sit down and discuss, if they are in the mood, or just imagine what the APIs of the others should be and base their work on that - and of course explaining why the APIs should be like that could be graded as well);

If you can't find an easy way to split the tasks yourself, imagine how harder it would be for the students! In this case, reconsider again why you're giving a group assignment.

  • 5
    Your group assignment solution is effectively to divide up the students and give them a separate assignment each, and ignore each other. That isn't group work. Reconsider why you are giving a group assignment! :-) Commented Dec 17, 2017 at 4:18
  • 5
    @Oddthinking :P that's interesting, actually! Haha :D Although I think that it still has some taste of group work. Each person is doing a part of a bigger thing, and they are encouraged to talk to each other to plan the best APIs. IMO it's actually closer to reality as well. The teacher is kind-of being the manager. But I see your point, yeah :D
    – Pedro A
    Commented Dec 17, 2017 at 5:26
  • 2
    As mentioned elsewhere, you seriously mis-estimate the learning benefit from well-organised group projects. They blow every other form of learning out of the water in terms of learning effectiveness, both for weak and strong students. Commented Dec 17, 2017 at 16:08
  • 2
    @KonradRudolph If you got that from my answer I apologize. I didn't want to mean that all group projects are bad and have no upsides. Indeed well-organized group projects are great for both the strong and weak students. But what about slackers? And what about not-so-well-organized projects? I agree with you. But with my answer, my goal is to make evident that it is something very difficult to accomplish. The first step is to truly understand the downsides and "dangers" that come with that, and that is the point of my answer.
    – Pedro A
    Commented Dec 17, 2017 at 19:28
  • 4
    +1, even though it's not at all impossible that the hard workers will need to do the slacker's work for him anyway.
    – einpoklum
    Commented Dec 18, 2017 at 10:45

I teach math, not programming, but I've found a way to reduce the free rider problem dramatically. I set groups (of 3-4) who do homework together, as well as various other activities. There are two components to my solution:

  1. Change the groups several times, once every three or four weeks.

  2. Base the groups based partly on class rank and partly on student preferences (expressed privately, as an exam question).

A free rider might do well initially, but will likely do badly on any exam, and may be marked as "avoid" by groupmates. Consequently, each time the groups are shuffled, we get a filter effect. The better students end up together, and the free riders end up together.

I sometimes tweak this -- if there are weak students who nonetheless try hard, I put a slightly stronger student in that group to help pull them up.

  • 1
    That's smart. Too bad it only works with several assignments in a row. Commented Dec 17, 2017 at 11:05
  • 1
    @henning would it can also work for engineeing projects. To encourage documentation i once did a full on engineering project so that each group was disbanded after initial concept and background work was done and rerandomized to new students. Worked quite well actually.
    – joojaa
    Commented Dec 17, 2017 at 14:25
  • 1
    This is one creative solution. @henning: I think this can be achieved even if there is only one project. For instance we could use test scores and in-class participation in the first half of a course to gauge students' levels and then use that to assign grouping for the second half of a course. I think this solution trumps all others in efficacy.
    – user21820
    Commented Dec 18, 2017 at 11:26
  • 1
    @user21820 you would have to be careful that your tests filter the free-riders and not the weaker students, or else you will end up with groups of good and bad students, which is unfair and perhaps not as effective as teaching method compared to somewhat heterogeneous groups. Commented Dec 18, 2017 at 12:28
  • @henning: Yes. That issue can be avoided by using in-class participation as a factor in grouping. Namely, those who do poorly on the test and do not contribute meaningfully to the class are grouped together, and those who do not do well on the test but appear to be sincere about learning are grouped together. It is still unfair to good students to put weak students with them if the group project will contribute to the course grade. Weak but hardworking students are welcome to seek help from the lecturer, the one responsible for teaching.
    – user21820
    Commented Dec 18, 2017 at 12:39

In real life a good team needs a good manager. The manager is then the person who decides how everyone contributes to the project, based on objective criteria relevant to the project itself and its success.

Unless you have a group project and there's no supervision with an external person monitoring project progress and team contributions along the way, there's no metric that is going to tease that out. The fact that most students are left to their own means without a 'manager' in such projects is a fundamental flaw of the process.

I particularly loathe 'peer marking' strategies. That's just a lazy cop out that can't possibly be expected to be of any value, other than helping the marker say they did something about it without spending too much effort thinking up a more appropriate marking scheme. It's also the best way to mess with a bunch of kids and imbue distrust in that circle. Even in professional settings where such "360 assessments" are performed (e.g. in the NHS), the person involved is allowed to choose their assessors to avoid people with agendas. Imagine a student project setting where everybody benefits from pointing out they did all the work.

If you want reliable marking, get a 'higher-up' to supervise. Presumably this might even be useful experience for such a person, e.g. a PhD student supervising an undergrad group project could use that in their CV next time they're looking for a job.

  • So, get a higher up to supervise : this may work for a small number of students but when you have 160 or more in groups that is not a practical solution...
    – Solar Mike
    Commented Dec 16, 2017 at 4:32
  • 1
    Yes, there are always several students who say they don’t like peer marking : experience has shown us that these students tend to be absent from the organised project workshops and are absent from class generally - so the low peer grade they receive is justified. Other students who are motivated and focused like or, at least, accept the peer portion as it is useful to them to have an input to give their opinion on good / poor performnance.
    – Solar Mike
    Commented Dec 16, 2017 at 5:02
  • @SolarMike why not? 160 students divided in groups of 5 = 32 groups. Then you just need 5-6 PhDs / postdocs supervising 5-6 groups each. Each group has one 30 minute meeting every 2 weeks = 1.5h supervision per supervisor per week. It's more than doable, and if 1.5h per week is considered too large an investment to properly assess and guide a group project, then one should reconsider the need for and learning point of group projects. They are not meant to be a "teachers get a break while students faff around by themselves" exercise. Commented Dec 16, 2017 at 12:36
  • 3
    Also I disagree with the peer marking comment, but I suppose that's just a matter of opinion. My own experience is different. Students are always at different levels of the learning curve, and 'attendance' or 'agreement with others' isn't always a good indicator of 'contribution' or 'value', and different members of the group have different understanding of that value based on their own competence. Peer marking then becomes just another pointless performance metric to be played at, as per Campbell / Goodhart's law. If anything, an external marker is needed to assess the quality of the marking. Commented Dec 16, 2017 at 12:47
  • As for “have 5 or 6 phd / postdocs” that may be a good solution if you are not paying for them and can just say “I want xxx” and have it given ... How are the finances of the NHS???
    – Solar Mike
    Commented Dec 16, 2017 at 13:03

One possibility that we do with our projects (five in a group) is to include peer marking for 10 or 20%.

They mark each other - using Moodle there is a peer marking algorithm; you can find others - I wrote one in Excel...

Some students still get good grades as they “agree” to give each other full points. Sometimes they lie to each other!

Other students find this a good way of rewarding teamwork or lack of it... and give a wide range of points.

Edit: For those who suggest that the peer marking is a cover-up for a poor marking scheme, I will detail the complete scheme for the project:

The project grade is based on three parts: a report, a quiz and a presentation. The theme is the same for each group, but to reduce copying each group has a different location ie country / city / town.

The report grade is the same for each student - various things are graded : tasks that have been asked for, layout, clarity etc.

The quiz (individual for 5%) is 1 week after the start of the project and is designed to motivate the students to read the brief - this helps reduce questions in the workshop sessions that are down to not reading the brief. But there are still students who score low.... and those who get full marks, because if you read the brief the questions are easy.

The presentation grade is based on the performance of each student as well as common parts for the presentation, such as quality and relevance of slides, flow of presentation etc. The individual portion is based on things like eye-contact, professional speech (no slang etc) and answering questions asked about the project / presentation at the end of the presentation.

When compiling the grades, for 160 or 240 students in groups of 5 then excel is used to do this.

  • 12
    In my experience, this is pretty useless and only gives students a method to damage each others' grades in spite, rather than really showing who contributed the most.
    – ti7
    Commented Dec 15, 2017 at 20:52
  • 7
    I agree. It's an exercise in backstabbing, designed to cover up for lack of appropriate thought going into marking. Commented Dec 15, 2017 at 21:09
  • 3
    Precisely: students are almost-always overgenerous (10/10 all around!) as there is no benefit (and often a social detriment) to giving less-than-perfect reviews. However, students who do not see that logical outcome or have some bad blood frequently give other students a poor review, often binding professors to further reduce the scores on an already ill-fit team.
    – ti7
    Commented Dec 15, 2017 at 21:50
  • 3
    What sort of authority do peers have to judge the value of their peers' contribution in the first place? Surely the whole point of assessment is that it is done against a gold standard, not against a Dunning-Krueger accident waiting to happen. Peer marking is not just pointless, it's downright dangerous. Especially to "high-achieving" students who are typically the ones for whom grades actually matter. I'd hate for a high-achieving student of mine to miss the chance to go into Oxford because some douchebag thought their insistence on using proper version control was "annoying". Commented Dec 16, 2017 at 12:57
  • 3
    If peer marking is 10 to 20% of the grade, does that mean someone who did nothing still potentially gets an A or a B?
    – Kat
    Commented Dec 16, 2017 at 23:52

tl;dr- Online collaboration tools can track students' contributions, revealing their participation in group projects.

It's difficult to write any advice about group projects without warning that the group-project format is misapplied in common practice, resulting in students missing critical learning objectives. Group projects provide a different educational benefit than individual projects; the two formats aren't broadly substitutable alternatives.

Revision history

Tools like Visual Studio Live Share can allow students to work together on the same project in real-time. If that sounds a bit new, sure, but that's the world your students will be going into.

Then extensions like Git History for Visual Studio Code (see also) can track students' contributions.


  • View Git History with graph and details (latest feature)

  • View the details of a commit, such as author name, email, date, committer name, email, date and comments.

  • View a previous copy of the file or compare it against the local workspace version or a previous version.

  • View the changes to the active line in the editor (Git Blame).

  • Configure the information displayed in the list

  • Use keyboard shortcuts to view history of a file or line

  • Compare commits/branches

  • View commit information in a treeview (snapshot of all changes)

-"Git History (git log)", Visual Studio Marketplace

Presumably you could modify this extension (it's open source) or ask someone else to modify it (seems to have an active developer base) to automatically implement whatever analysis you'd feel is appropriate.

And, sure, it's probably not a good idea to assume that student contribution is directly proportional to line count, number of commits, or anything like that. But the difficulty of objectively weighing individual student contributions is a hard problem to solve anyway. Rather, the goal'd just be to ensure that students did engage in some minimum level of participation.

  • “I agree that team projects tend to have little value” — Well you are wrong. Simple as that. Commented Dec 17, 2017 at 16:06
  • … but I now regret downvoting the answer because apart from the falsehood in the introductory paragraph you give good, actionable advice. Commented Dec 17, 2017 at 19:04
  • @KonradRudolph I'm more disappointed in the uncharacteristically thoughtless argument. Com'n, you're-wrong-simple-as-that arguments don't really help anyone! Anyway, my perception's that, if we took the set of all classroom group projects across disciplines/institutions/etc., then it'd probably be the case that the significant majority of them fall under the category of students-distribute-work-and-avoid-learning-some-part-of-the-material. So while group projects do have their place as students need to learn teamwork, they're typically misapplied. Would you disagree?
    – Nat
    Commented Dec 17, 2017 at 22:20
  • 1
    No, you misunderstand. Team projects don’t mimic real-world work (at least that’s not their point). Rather, they have didactic value. As in, they enable learning, more than (pretty much any) other classroom activities. I apologise for the curtness but this is extremely well established in learning research and it’s disappointing to see this quite fundamental misunderstanding paraded around in several answers and comments here. Commented Dec 17, 2017 at 22:35
  • 1
    @KonradRudolph The didactic value's a great goal that does have a place. It's just that, in practice, group projects more often result in students dodging learning objectives even when those learning objectives were a critical aspect of the course's intent. This isn't a misunderstanding, but rather a frequent empirical observation that most have made during our own time as students in which we've seen our group mates engage in minimal participation without understanding the material.
    – Nat
    Commented Dec 17, 2017 at 23:06

(This answer doesn't directly answer the OP's question but is in response to the oft-stated idea that group projects are valuable in school as part of the field-specific curriculum because projects in the real-world are run that way.)

In an interview situation when talking to a recent college graduate I avoid talking about group projects at all. As far as I'm concerned, they tell me nothing about the candidate's knowledge or capability.

If the situation arises - and it has, sadly - that the candidate wants to talk about a group project and has nothing else to offer I have to drill down and down with insistence on the question of: What did you actually do yourself on this project?

I literally have to drag it out of them which is tedious for me and embarrassing for both of us because the answer is invariably that they did nothing at all worth mentioning.

(This is especially true if the candidate "wrote a compiler" in his group project. Not sure why.)

In conclusion: If the purpose for assigning a group project is because all projects in industry are group projects and the student should know how to do that kind of thing then don't bother.


If you are assigning group projects and are "hoping for the best" in terms of students taking away key developmental skills from such an assignment: don't do that.

(In engineering, I find that for important, fundamental technical skill development, it is best to assign individual projects, and save group projects for things like Capstone courses, where students bring different capabilities, view points, and experiences to the table to execute something more complex.)

Now, for projects to be completed by individual students, I find that having a concepts exam is helpful. By this I mean just a short exam asking students basic things that, if they have done the project work themselves, should not be difficult to answer.

After the exam and project are graded, I determine the students' overall scores on the project using the concept exam score as a weight: students who do excellent on the exam get the score they earned on the project (whatever that was computed to be), while students who do poorly on the exam earn a very low project score.

  • 5
    This superficially sounds useful, but goes against most of the principles of a group project in terms of role allocation. Only the least organised team which ended up with everybody duplicating everything will know everything about the project. The whole reason group projects are hard (and hard to mark) is that all the individuals in the team need to have different roles and contributions, and it's hard to allocate roles such that 'conceptually' the contributions were more or less equal. Commented Dec 15, 2017 at 21:11
  • 1
    @TasosPapastylianou Hmm, I didn't read the question as being about group projects, but rather a group of students that OP was having issues with. Nowhere in the following text does OP mention that this is a group project: "and I have noticed a trend among a group of students when dealing with undergraduate programming projects"
    – Mad Jack
    Commented Dec 16, 2017 at 3:04
  • 1
    This is actually an interesting point that the original question is ambiguous about whether it concerns group projects or not (not terribly well written). Commented Dec 17, 2017 at 3:59

Similar to @Solar-Mike my advisor gives each student in the group a sheet where they review each of the group members 1-5 in several categories related to how well each member contributed to use as input for individual grade adjustment.

Here are some of the contributions they are rated on:

  • To the project overall
  • To the written/visual/poster portion of the project
  • Intellectually to the project (ideas, knowledge, solutions)
  • Coordination of the team (leadership role)
  • To developing the class presentation
  • Overall personality in terms of working in a group (flexibility, team-player, availability)
  • Dedication of the proper time for the project

We also require written commentary from the students to explain their ratings and give additional feedback on their group members. For the most part this prevents 5/5 ratings for each category. If real commentary is not provided or all of the ratings are fixed 5/5 the entire group is penalized 10%.

The ratings and commentary tend to give us a good idea of the level of participation and contributions of each of the group members and allow us to adjust their individual grade accordingly from their overall group project grade.

Edit: This rating system is not done in a vacuum. The comments are taken into account with input from TAs who are involved in the process from the start of the project where they advise the students and help them set goals. The TAs stay involved throughout the project answering questions via email and holding work sessions during scheduled lab time. In this sense the TAs act partially as project advisors.

  • I am so happy not to be a student of your advisor. This causes so much social problems..
    – Haudie
    Commented Dec 24, 2017 at 22:20

There is no way to establish who is doing the most work in a group project without watching every step, which is likely to strangle creativity and waste a lot of your time.

Even enforcing regular checkins to a version controlled repository easily misses who is really doing the work: one student thinks and another types.

There will always be better and worse students, but a team is a single unit and should be graded as such, regardless of who really does the work. However, lower-performing students will (ideally) learn from the stronger students, and I believe this is what you should be encouraging in a group project.

@Bakuriu commented another important aspect

Do them only if the whole point of the project is the group itself, in which case what they produce will be discarded and you'll mark how the group operated (which should be clearly documented).

It may be a role of your curriculum to teach students to perform in a group, in which case that's what you should be encouraging them to learn and test them on, not the results of what they can cobble together.

  • 3
    Even the concept of "did more / did less" is problematic. What kind of 'metric' do you use to judge that? Does the person writing the code specification count as having written zero code for instance? The person who came up with database structure and populated the database for proof of concept? What do you judge? Number of words in the report? Commented Dec 15, 2017 at 21:16
  • 5
    "a team is a single unit and should be graded as such" - oh boy, this isn't true in school or in business.
    – davidbak
    Commented Dec 15, 2017 at 21:30
  • 2
    I am sorry for your unfortunate experiences - I have seen teams graded many ways, but they should be graded as a single unit
    – ti7
    Commented Dec 15, 2017 at 21:32

This is an issue I have faced throughout undergrad (basically every group project I have ever had) and even now as a PhD student when collaborating with a fellow student.

See my question: How do project supervisors address the "freeloading" problem in group projects?

Students who put my portion of work on their LinkedIn page? Check.

Students who classify "nothing worked" as work performed? Check.

The most amazing thing with these "social loafer" is that they don't even care if the assignment gets completed or not. I have been in a situation where I had less than 12 hours to finish a project assigned to two-person, and the other person simply disappeared. No emails, nothing, not a care in the world. I can't even imagine what would the person have said if I had not finished up all the work and handed in the assignment, but I can probably guess that I would be the one blamed for the overall failure.

To deal with this issue, from a student's perspective the most important thing is to have visibility and feedback, and a mechanism to break off from non-performing teammates without jeopardizing the entire project.

  1. Keep groups to three-person instead of two-person - a triadic network is more stable as compared to a binary network. I think that the risk of two students simultaneously disappearing in a project is smaller than having one student disappear during a project.

  2. If this is lab/group assignment, randomly rotate partners every lab and keep good track of this.

  3. Shorten length of project if semester long so that deliverables come in rapid succession to prevent procrastination. Procrastination is probably the root cause of a lot of these social loafing behavior.

  4. Implement periodic checks within the first few weeks for year-long project and break up teams as soon as possible

  5. Have a very comprehensive feedback mechanism to rate a student's participation. Deduct marks if feedback is not provided.

  6. Create a very clear and precise breakdown of work by each student. When work is submitted, keep two copies, one is the finished work to be graded, another one is completely commented throughout with very clear participation. Make sure that all student's actions are accounted for. Deduct mark automatically when no responsibility is claimed for a portion of the work.

The most tricky aspect is "soft responsibilities" (for a lack of better word). To me, this is where the most conflict arises in semester-long or year-long projects, as this aspect of the project is almost entirely thankless. I define soft responsibilities as the actions that are taken that cannot be objectively evaluated. For example, emailing a client, or setting up the meeting with project supervisors, or contacting a local library to use their resources. All these things can take up a significant amount of time, and a student can even be burnt out after arranging all 12+ meetings in a year and may feel unfairly treated by the other teammates.

The solution is to clearly designate possible "soft" roles for students. Who gets to set up meetings, who runs between school and library, who keeps watch of the equipments, who contact the supplier. Make sure all actions are accounted for and relate them to the final deliverable. If an aspect of a project was not completed, see if it is because some of these "soft" responsibilities were not fulfilled, if so, deduct a mark for that particular student instead of penalizing all the student equally.

  • 1
    I suppose you've got a bit of real-life Prisoner's Dilemma happening in these cases. Commented Dec 17, 2017 at 4:01
  • 2
    @Daniel R. Collins sorry for nitpicking, but it's worse: This is a 'Rambo game'. The preferences are asymmetric, i.e. the 'free-rider' can live with the project going down, but the 'sucker' can't. :) Commented Dec 17, 2017 at 11:10
  • @henning: That may be true, but I'm not sure that's the worse part. Assuming any common group credit is given (e.g., others have suggested 80-90% of the grade be given in common), the free-rider can still get a passing grade by signaling apathy to make sure the sucker does all the work. Commented Dec 17, 2017 at 16:17

I don't know if you have the manpower to do this, but whenever I had a programming project (both as student and as TA/teacher), it came with a final presentation. This could be a "formal" presentation - prepare slides, talk for 10 minutes, questions - or informal, where the students would just come to the TA during office hours, run the program, and answer some questions.

During such presentations, I find it rather easy to estimate how well the students understand their project. Plus, I always require presentation time and answers to be equally distributed among all students. If the presentation and questions give an indication that one student did the majority of the work (e.g., if that one student talks significantly more than the other(s), or the team admits so when being asked about how they distributed the tasks), s/he will get a better grade than the other team members.

  • 6
    That last paragraph is a bit dangerous. Gaugeing knowledge of the topic is one thing, but marking by talk-time simply rewards the extroverts in the group, i.e. the best talkers, which may not necessarily reflect their contribution during the 'silent' introverted phase. Commented Dec 16, 2017 at 13:02
  • @TasosPapastylianou guess I oversimplified, thanks for pointing out. No I don't grade based on talk-time only. Edited to make my point clearer. (When I wrote that paragraph, I had one specific group in mind, where one person had tried to program the backend of a gaming console using a complex framework and explained how it didn't work because what he was trying to do was only possible in an earlier version of the framework due to a bug that had been fixed - while his two team members had programmed a simple game and an incomplete settings menu...)
    – Sabine
    Commented Dec 17, 2017 at 14:07

1) Do some tests/quizzes which play a role in grading (but which has to be solved individually).

2) Give projects which are more challenging and announce them to be for the students with more skills (but, of course, give more tolerance in grading them (and announce this, of course)). You could hope that the more interested students choose the harder tasks and thus do not form groups with the weaker students. (If this strategy works os probably dependent on your audience.)

On a related note (I cannot make a comment), do consider stating your country - it is very likely that cultural issues play a role here. For example, in my (European) country, I was told my whole life from my teachers that grades are completely irrelevant. Therefore, if the people I did the group project with happend to be my friends, I would value their friendship and loyality to them more than giving the teacher a honest evaluation about who did what. I suspect that most people here would likewise not turn their friends in but state that everybody had the same contribution to the project. (Therefore, a teacher requesting a contribution statement would put the students in a bad position.)Onhe other hand, on this (very US-centric) page, I read vers different opinions about grades.


There have been some great answers here that push students to participate in group projects, like concept exams, self-grading and individual parts. All of these strategies have in common that they incentivize students to learn what you think is best for them.

These solutions may work but they come at a cost. There can be several reasons why some student participate less on the coding tasks at hand.

  • They do not find your programing task benefits their learning process and choose to learn something else which they find more interesting.
  • They allocate resources efficiently and exhibit true team work where everyone works in an area where their comparative advantage lies: some program, some coordinate, some interpret
  • They allocate resources efficiently by dividing work over time: A solves assignment 1, B solves 2.

From my experience as a student: I am currently in a group work involving programing, data work and interpretation and honestly, the meaningless programing/data cleaning part is the worst. All of us know the tools at hand already and there is little to no knowledge added. We usually rotate the tasks and then do the interesting parts together.

And even if some students don't know programing yet, I don't see why forcing them to learn programing (by grading, for example) would be a beneficial strategy. If its really that important, why can't you persuade students to do the programing part themselves? Demonstrate how powerful these tools are and how the skills will benefit them in the future and students will quickly follow your example.

After all, we are here because we want to learn something. So no need to force us. :-)

  • 1
    Your point about sharing tasks is what is relevant - there is always a portion of simple hard-work tasks to any project - good you share that and then you “enjoy” the interesting bits together - good strategy.
    – Solar Mike
    Commented Dec 16, 2017 at 5:05
  • 2
    "Demonstrate how powerful these tools are and how the skills will benefit them in the future and students will quickly follow your example." -- This is a stark falsehood common to people who've never taught. Commented Dec 17, 2017 at 4:09
  • @DanielR.Collins Interesting. Would you mind saying why? Commented Dec 17, 2017 at 8:31

I just read through some of the answers and they all seem to miss one important point. How do you 'quantify' programming?

I am not a computer scientist myself, but in business a project has many many facets and it is very hard to quantify each. Normally, a student group will split tasks according to each others' strengths and that is perfectly fine and even desirable from the perspective of efficiency. A couple of students might code, some do administrative work, and some will be cheering up the team and keeping it fun. Their innate sense of fairness will ensure that each student does a fair amount of work. That is how it would ideally work out in real business environment and you will be doing the students a disservice intervening in the process.

With that being said, you can set clear, strict, and measurable minimum requirements to what each student should do in the course of the project, e.g. Each student should write at least 20 lines of code, create and document an object, or speak for at least 1 minute during the presentation of the project. Again, those requirements must be clear as daylight, apply to everyone, and be measured during the evaluation, otherwise you will draw criticism and set a bad example should any of the students become managers in the future.

  • 8
    "Their innate sense of fairness will ensure that each student does a fair amount of work." Have you ever actually done a team project in school? My experience does not match your claim at all.
    – Kat
    Commented Dec 16, 2017 at 20:52
  • @Kat Fair, of course, doesn't mean equal :) For some students writing a line of code may be a huge struggle and for others working all day will be nothing but fun. I'm assuming primary purpose of the project is teaching and not evaluation. Otherwise doing a team project might not be a very good idea Commented Dec 16, 2017 at 23:43
  • 3
    Even if you're assuming fair means equal effort and not equal results (which is completely debatable), I've still never seen that happen. If the purpose is to teach, then people should do the parts that are hardest for them so they get better at it.
    – Kat
    Commented Dec 16, 2017 at 23:50
  • @Kat In my experience, capitalizing on strengths and avoiding weaknesses provides much better results much quicker. Also, fair is neither equal result nor equal effort. I would say it is when no team member wishes they would have done more or less work at the end of the day. Commented Dec 17, 2017 at 1:37

If you are going to deal with a programming problem in a group, I find perfectly natural to want good programmers on it :)

If you are a good programmer yourself, you'd probably want someone of at least an acceptable level, so that you can evenly share the load. Otherwise, you will probably end up doing it yourself, as noted by 8bitwide (but make no mistake, that's not that they want to make the full work).

And if you are not a good programmer, that's even a stronger reason to want one on your team. :)

Now, from a group perspective (eg. a pair), it doesn't really matter that most of the programming was done by a member, as long as the other performs an equivalent work: they could write the user manual, create test cases, design the images used on the UI... That is actually the most efficient way to get the job done.

Some of them are still not programming, but they are not taking credits for something they have not done, since they have participated in "creating the program".

What is highly problematic is that the group workload is unbalanced, with one person doing all the work and the other doing nothing. The last one ends being rewardes while the first one needs to work double, and is in a very bad position, since he needs to have that "group" assignment done in order to pass the subject. And despite the injusticy, doing it on his own is the only way he has available.

This is less likely to happen when the group formed on his own, specially if they are friends already (although there are some "friendships" quite parasitic, too), as they will be less inclined to not do their part or leave the other members stranded. However, in a class there is a finite number of students, ending up with one or several 'filler' groups, which may work or not, but are riskier.


My approach to group projects (I'm teaching mathematics) is pretty simple: the students are free to choose how they work, but when it is time to present the results, it is I who chooses the presenter from the group. Of course, the choice of how to form groups is also in the hands of students in this case. I merely tell them the size limits for the group (usually 3 to 5).

With this said, I really prefer to give individual assignments. We had group programming assignments when I was a student because the machine time was not readily available but now, when 99% of students have their own laptops, what's the point of them?

As to "students evaluating each other", etc., I really loath all that. IMHO, it just creates a lot of totally unnecessary ethical and social issues. I would be extremely uncomfortable to evaluate the contribution of my friends back then and the same applies to my collaborators and co-authors now. I stand by the viewpoint that is nobody else's business how exactly we split the load when we submit a joint paper for publication, so I feel no moral right to ask the students to do something that I would refuse to do myself (the idiotic requests of the type "certify that the contribution of X was above 50%" coming from various promotion committees do not count; those I sign without any hesitation in accordance with Luke 23:34).


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .