github-education-resources / teachers

Join the discussion in the GitHub Education Community:
https://education.github.community
192 stars 21 forks source link

Evaluating coding contribution #12

Closed augbog closed 9 years ago

augbog commented 10 years ago

I want to start a discussion regarding coding contribution because I think that is a large topic that Github not only makes very easy to see (for those wondering how, @afeld added it to the guide as stated in this issue), but also something teachers need to be wary of.

I was wondering how teachers go about determining a student's grade/contribution in a project based on the graphs in Github or a simple git blame in a student's repository.

You cannot simply look at the number of commits -- I know a lot of students struggle in the early stages when first learning git workflow and they end up committing every little thing they do. Someone could have 30 commits of small changes, whereas another student within the same group has only 10 but all of his/her commits build the foundation of the project. Thankfully Github makes this very easy to see.

However, you cannot simply look at the number of additions a user has committed either. I a student has committed a dependency that was pulled from a package manager such as homebrew or bower, all those lines of code go under that student and, quite honestly, I don't think that holds a lot of value in what they contributed for the project.

In my classes that have used Github, I know contribution was mainly determined by group reviews which were typed up formally and turned in. The teachers did mention they would look at the git blame but they never truly showed the students how contribution was calculated. Overall, contribution was only a factor in determining the grade if it was very clear one student did not participate very much. I was hoping to see how other teachers or classrooms have gone about this. Do you have a specific bar that you expect of students in terms of commits? Do you also require formal reports against team members? How do you use the graphs in Github to your advantage and what actions do you take based on them?