Sathsara K.
  • Home
  • About
  • Projects
  • Case Studies
  • Blog
  • Contact
Hire me
  • Home
  • About
  • Projects
  • Case Studies
  • Blog
  • Contact
Sathsara K.
© 2026 Sathsara. Built with intent.
Back to About
AI-Powered Individual Contribution Scoring for Team Software Projects | Final Year Research
ResearchJuly 1, 20268 min read

AI-Powered Individual Contribution Scoring for Team Software Projects | Final Year Research

#AI#Machine Learning#Research#Agentic Systems#Multi-Agentic Systems
Key Impact OutcomeAn AI system that gives instructors a fair, evidence backed starting point for grading team projects in seconds instead of hours, while flagging at risk students during an active sprint so there is still time to help them before the grade is final.
The Challenge

In team based software projects, every member usually receives the same grade regardless of who actually did the work. Instructors do not have time to manually review hundreds of commits, cross reference Scrum board activity, and judge code quality for every student in every sprint across ten or more teams. As a result, effort goes unmeasured and hard working students are graded the same as free riders.

The Solution

A multi agent AI system that automatically evaluates individual student contribution using only GitHub and Scrum board data, the same data every team already produces. It scores each student across seven factors including effort, consistency, code quality, collaboration, task complexity, behavioral pattern, and code ownership, then combines them into one explainable score backed by a plain language justification and a radar chart. A code based quiz verifies students genuinely understand the code they committed, and a real time prediction layer flags struggling students mid sprint so instructors can step in early instead of only seeing the problem after the sprint ends.

Team projects have a grading problem: everyone gets the same mark, no matter who actually did the work. For my final year research, I'm building an AI system that reads GitHub commits and Scrum board activity to measure what each student really contributed, including effort, consistency, code quality, collaboration, and even whether they understand the code they wrote, and turns it into a fair, explainable score instructors can trust.

Table of Contents

  • • The Problem
  • • My Role
  • • The Research Question
  • • Where the Data Comes From
  • • The Seven Factors
  • • The Part I'm Most Proud Of: The Code Ownership Quiz
  • • System Architecture
  • • What's Genuinely New Here
  • • Progress Log
FieldValue
TitleFair Grades for Team Projects: An AI System That Reads the Evidence
StatusIn Progress
StartedJuly 2026
RoleResearcher & Developer — Individual Student Performance Assessment Sub-System
TypeFinal Year Research Project (BSc Hons, SLIIT)

Fair Grades for Team Projects: An AI System That Reads the Evidence

Status: 🟡 In Progress — Topic Proposal Stage (July 2026)

This is a living case study. I'll update it as each part of the system gets built, tested, and evaluated.

The Problem

In team-based software projects, everyone on the team usually gets the same grade — no matter who actually did the work.

Picture a five-person team. One student writes 80% of the code, works steadily every sprint, and reviews teammates' pull requests properly. Another commits a few files the night before the deadline and doesn't really understand the code they submitted. Both get the same mark.

Instructors know this happens. But manually reading through hundreds of commits, cross-checking Scrum boards, and judging code quality — for every student, every sprint, across ten or more teams — isn't something a human can realistically do at scale. So effort goes unmeasured, and the grading system quietly rewards free-riding.

My part of our four-person final year project tackles this directly: can we fairly and automatically measure what one student actually contributed to a team codebase — using nothing but their GitHub activity and Scrum board data?

My Role

Our team's overall project is a multi-agent AI framework that supports software engineering students end-to-end — requirements planning, adaptive tutoring, project health monitoring, and grading. Four of us each own one sub-system. Mine is the last piece in that pipeline: turning raw developer activity into a fair, explainable individual score.

My sub-systemWhat it does
Individual Student Performance AssessmentScores each student's real contribution to a team sprint, explains the score in plain language, and flags at-risk students while the sprint is still running — not after it's too late to help them.

The Research Question

Can individual student contribution in a team software project be fairly and accurately evaluated by measuring effort, consistency, quality, collaboration, task complexity, behavioral pattern, and code ownership — extracted automatically from GitHub and Scrum board data?

I'm not claiming to build a perfect grader. The honest claim is narrower and more defensible: the system should produce scores that are explainable, consistent, and useful enough that instructors can grade faster and fairer than they could by hand.

Where the Data Comes From

The system needs no new tools or surveys — everything it needs is already produced by any team running GitHub + Agile Scrum:

  • GitHub: commit messages, code diffs, timestamps, files changed, lines added/removed, PR review content, issue comments, git blame history
  • Scrum board: task assignments, descriptions, story points, status changes, sprint dates, subtasks
  • Between these two sources, you can reconstruct what a student did, when, how well, and how they engaged with the team — without asking them to fill in a single form.

    The Seven Factors

    Instead of just counting commits, I broke down what an experienced instructor actually looks for when judging a student manually, and turned each of those into a measurable factor:

    #FactorQuestion it answers
    1EffortHow much genuine work did they actually do?
    2ConsistencyDid they work steadily, or rush at the deadline?
    3QualityWas the work meaningful and relevant to what was assigned?
    4CollaborationDid they genuinely support their teammates?
    5Task ComplexityHow hard was the work they took on?
    6Behavioral PatternWhat type of contributor are they?
    7Code OwnershipDo they actually understand the code they claim to own?

    None of these are invented — each is grounded in existing research (mining-software-repositories work on commit activity, Zimmerman's self-regulated learning theory for consistency, LLM-as-Judge methodology for quality, GitHub social-coding research for collaboration, and educational data mining for behavioral classification).

    A design rule I set early on: use an LLM only where genuine judgment is needed, not where a formula will do. Counting commits is a formula. Deciding whether a code diff actually solves the assigned task requires reading comprehension — that needs an LLM. Of the eleven components in the pipeline, six use an LLM and five are pure computation, and each choice is justified by that test.

    Consistency, for example, is pure math — no LLM needed. I split the sprint into equal time windows, count commits per window, and compute the coefficient of variation (standard deviation ÷ mean), then invert it: C = 1 − (σ/μ). Even spread across the sprint → score near 1. Everything crammed into the last two days → score near 0. Dividing by the mean (rather than using raw standard deviation) matters because it makes the score fair between a student who commits twice a day and one who commits forty times a day — it measures relative unevenness, not raw activity.

    Behavioral Pattern is where it gets interesting: instead of scoring in isolation, the system classifies each student into a contributor profile — consistent deep contributor, last-minute rusher, reviewer/coordinator, burst worker, or free rider — based on combinations of the other scores, and applies that as a multiplier (0.8×–1.2×) on the final result. This is what catches the student who contributes almost entirely through code review rather than raw commits, and correctly credits that instead of penalizing it.

    The Part I'm Most Proud Of: The Code Ownership Quiz

    Passive git analysis has a blind spot: git blame shows who committed code, not who understands it. A student can commit code copied from a teammate, Stack Overflow, or an AI tool, and the history looks identical to genuine work.

    To close that gap, the Code Ownership Agent generates targeted questions directly from a student's own committed code — for example, "You set a 15-minute expiry on this JWT refresh token — why that duration?" — and evaluates their answer against the actual code. It's the difference between measuring "who touched this file" and "who could explain this file." As far as I've found, no existing automated assessment tool combines passive repository analysis with this kind of active knowledge check.

    System Architecture

    The pipeline runs in four layers, plus a fifth I'm adding for real-time prediction:

    1. Data Collection — GitHub and Scrum board collectors, triggered by webhook on every push.

    2. Factor Computation — six agents/calculators produce the seven factor scores (five LLM-based, one pure algorithm).

    3. Aggregation — the Behavioral Pattern Classifier and Score Aggregator combine everything into one weighted score: S = BP_modifier × (w₁E + w₂C + w₃Q + w₄Co + w₅TC + w₇KO).

    4. Output — an Explanation Agent writes a plain-language justification, a radar chart visualizes the seven-axis profile, and an instructor report ties it together (with override capability — the instructor always has the final word).

    5. Prediction (new) — runs during an active sprint on partial data, using a logistic regression classifier trained on completed sprint history, to flag students as On Track, At Risk, or Critical before the sprint ends, while there's still time for an instructor to step in.

    The weights aren't guessed — I'm deriving them two ways: Analytic Hierarchy Process (instructors pairwise-comparing factor importance) and empirical regression against real instructor-assigned grades. Where the two methods agree, that's strong evidence the weighting is right; where they disagree, that disagreement becomes a finding worth discussing in its own right.

    What's Genuinely New Here

  • A seven-factor contribution model — existing tools (GitHub Insights, GitInspector, CodeClimate, Jira reports) each measure one dimension at most, with no quality judgment or behavioral insight.
  • LLM-as-Judge applied to student code assessment, rather than chatbot or general code-review evaluation.
  • Active knowledge verification through a code-generated quiz — closing the "I committed code I don't understand" loophole passive tools can't catch.
  • Behavioral pattern classification that interprets activity instead of just counting it.
  • Real-time, mid-sprint risk prediction, not just an end-of-sprint report — moving the system from a grading aid toward an actual early-intervention tool.
  • Progress Log

    DateMilestone
    July 2026Topic Assessment Form submitted; research pitch presented to the evaluation panel

    (I'll keep adding to this table as development moves through data collection, agent implementation, evaluation, and the final dissertation.)

    Check back for updates as each layer comes online.

    All ArticlesResearch
    Sathsara

    Sadeesha Sathsara

    Backend & DevOps Developer

    Writing on async systems design, automated CI/CD pipelines, containerization, and backend patterns.

    Recommended Reads

    Building an AI Summarized Email Alert Workflow with Gmail, Gemini, and TelegramJuly 1, 2026 · 5 min readWhen One Service Fails, the Rest Keep Running: The MediCare ArchitectureJuly 1, 2026 · 5 min readAI-Generated 3D Solar SystemJune 30, 2026 · 5 min read

    Keep Reading

    More Articles

    Building an AI Summarized Email Alert Workflow with Gmail, Gemini, and Telegram
    Case StudyArchitecture
    July 1, 2026

    Building an AI Summarized Email Alert Workflow with Gmail, Gemini, and Telegram

    Read
    When One Service Fails, the Rest Keep Running: The MediCare Architecture
    Case StudyMicroservices
    July 1, 2026

    When One Service Fails, the Rest Keep Running: The MediCare Architecture

    Read
    AI-Generated 3D Solar System
    Case StudyPython
    June 30, 2026

    AI-Generated 3D Solar System

    Read
    Go back to About