CS5013 Project — guide and rules

Programming with AI · Instructor: V. Krishna Nandivada · Weight: 25% of the course grade

1. Overview

The project is 25% of your grade. It is the part of the course where you stop practising on toy problems and build something a real person will actually use.

Ground rule: every project must be of concrete use to a specific IITM faculty member, research group, centre, lab, hostel, office, or department.

No generic "todo app", no yet-another-Kaggle-notebook, no clone of an existing SaaS product with no user attached. The reason is not bureaucratic: verification, scope negotiation, and "did this actually work" are the hard parts of software, and you only learn them when there is a real user on the other side who can tell you the answer is wrong.

2. What kinds of projects qualify

Anything that a specific person at IITM would install, run, or click on. A non-exhaustive menu:

If your idea does not fit any of the above, that is fine — the categories are examples, not a menu. What matters is the shape: one named IITM stakeholder, one concrete problem, one deliverable they will use.

3. How to size your project

The scope should fit one semester of part-time work by a team of one or two students, alongside your other courses. Here is how to check whether your idea is roughly the right size.

Signals it is too small

Signals it is too large

A useful anchor

A well-sized project has a core workflow with roughly three to five steps — something you can list on a single slide — and, once deployed, gives the stakeholder back a repeating chunk of time or removes a recurring source of manual error. If you cannot state the "before" and "after" for the stakeholder's week in one line each, the scope is not yet clear enough.

Scope with the stakeholder, not alone. They know their own workflow better than you do. If they say "honestly, just this one part would already help me a lot," listen to them — that is your mid-demo scope. You can always add more later if time allows; you cannot easily shrink an over-promised proposal.

4. How to deliver the tool

Hosted is one option, not a requirement. What matters is that the stakeholder can actually run it after you hand it over.

The rubric-relevant question is not "is it hosted" but "can the stakeholder use it without you sitting next to them?" That is what the final demo will check.

5. Finding your IITM customer

You are looking for one person who will say "yes, if you build this I will use it." Not "sounds cool" — actually use it.

Where to look:

Approach script:

"I am taking CS5013 this semester and the course project asks us to build something a specific IITM stakeholder will actually use. Do you have a recurring task, a small tool you wish existed, or a manual workflow that we could try to automate for you? If we build it we will need about 20 minutes of your time twice — once to confirm the scope, and once at the end to check it works for you."

Get their agreement in writing (an email is fine) and attach it to your proposal. This is the stakeholder acknowledgement that the rubric asks for.

6. What makes a project unsuitable

7. Group and individual rules

8. Evaluation stages

The 25 marks are split across four stages. You cannot skip a stage and make it up later.

StageMarksWhat is submitted / demonstrated
Proposal 5 Written proposal (see template below) + stakeholder acknowledgement email attached.
Design 5 Architecture note, module split, test plan, milestone plan. Short (2–4 pages).
Mid-demo 5 Working core workflow, live in front of the evaluator. Git history evidence from both members. Honest gap-list of what is not done.
Final demo + viva 10 Stakeholder-executed demo (the stakeholder runs it in front of the evaluator, or a video shows them doing so). Verification results. Individual viva — each student answers questions on their own modules and on their partner's.

9. Rubric

The rubric grades your process — not your stakeholder's satisfaction. You will not be penalised if the office decides not to adopt your tool for reasons outside your control. But having a real user makes the process itself concrete: scope is negotiated with someone who can push back, "does it work" has a specific answer, and edge cases are the ones that actually occur.

Proposal (5 marks)

Realism of scope for one semester1
Quality of prior-work section (specifics, not prose)1
Stakeholder acknowledgement present and credible1
Verification plan is concrete (fixtures, tests, acceptance criteria)1
Milestone plan is coherent1

Design (5 marks)

Architecture note clearly identifies modules and interfaces2
Test plan lists at least one test per module1
Milestone plan revised in light of scoping feedback1
Risks and plan-B are honest, not boilerplate1

Mid-demo (5 marks)

Core workflow runs end-to-end on at least one real input2
Git history shows both members contributing across weeks1
Gap-list is honest — hiding known gaps is worse than declaring them1
You can explain any part of your code on the spot1

Final demo + viva (10 marks)

Stakeholder-executed demo works on their real input3
Verification evidence (tests passing, edge cases addressed)2
Individual viva — each student on their own modules3
Individual viva — each student on the partner's modules1
Handoff artefacts (README, install steps, contact) are usable1

10. Contribution and freeloader prevention

Five mechanisms, layered. None of them alone is decisive; together they make freeloading very hard to hide.

  1. Named module ownership. Every module in the repo has a single named owner. In a team of two, ownership must be roughly balanced.
  2. Git evidence. Both members must have commits throughout the semester. A commit dump in the last week from one member is a red flag.
  3. Individual viva at final. Each student answers questions on their own modules and on their partner's. If one member cannot explain what the other built, the mark is adjusted.
  4. Peer contribution split. At final submission, each student submits a private percentage split (e.g., "60/40 in my favour"). If the two students' splits disagree by more than 20 percentage points, the instructor investigates.
  5. Weekly contribution log. Each student maintains a brief weekly log (one paragraph) of what they did that week. Submitted with each stage.

11. Timeline

Five phases, spread across the semester. Every deadline is a Friday. Submissions are due by 23:59 IST on the listed date.

PhaseDateMilestone
Phase 1 Fri, 31 Jul 2026 This document released. Start looking for a stakeholder. Team formation begins.
Phase 2 Fri, 21 Aug 2026 Proposal due (5 marks). Team locked. Stakeholder acknowledgement email attached.
Aug 22 – Sep 10 Proposal feedback returned. Scoping revisions if flagged. Start scaffolding.
Phase 3 Fri, 11 Sep 2026 Design doc due (5 marks). Architecture, module split, test plan, revised milestone plan.
Sep 12 – Oct 8 Main build. Weekly contribution log continues.
Phase 4 Fri, 9 Oct 2026 Mid-demo (5 marks). Working core workflow. Both members present. Stakeholder invited (optional at this stage).
Oct 10 – Nov 5 Finish, harden, stakeholder dry-run, hand off.
Phase 5 Fri, 6 Nov 2026 Final submission + viva (10 marks). Stakeholder-executed demo (present or video). Individual viva.

12. Proposal submission template

Submit as a single PDF, 3–5 pages. Attach the stakeholder acknowledgement email as an appendix.

LaTeX template: proposal-template.tex · proposal-template.pdf
Download the .tex, fill in the bracketed placeholders, and compile with pdflatex. Uses only the article class plus geometry, hyperref, enumitem, and parskip — no other dependencies.

The template has nine sections and one appendix:

  1. Team information
    Team ID (or "solo"), names, roll numbers, department, primary contact email, GitHub handles.
  2. Problem statement
    3–4 sentences: what problem, whose problem, what the current pain looks like. No marketing language.
  3. Users and stakeholder
    Named stakeholder (person, role, department / centre / lab). One paragraph on how you met them and what they said. Attach their acknowledgement email in the appendix.
  4. Prior work and why it does not suffice
    List at least three existing solutions your stakeholder could plausibly use instead — commercial products, open-source tools, in-house scripts, or manual workflows. For each, give the name and link, what it does that overlaps with your proposal, and the specific reason it is not adopted (cost, missing feature, wrong data model, licensing, offline-only, cannot integrate, etc.). "There is nothing like this" is almost never true and will be marked down.
  5. Tech stack
    Language is Java (course policy). List your chosen framework or build system (plain javac, Maven, Gradle, Spring Boot, Java-Swing, etc.), key libraries, and where the tool will run (stakeholder's laptop, department server, cron job, etc.).
  6. AI-usage statement
    A short standard paragraph acknowledging that you will use AI coding assistants during the project and will be able to explain any part of the code you submit. The LaTeX template contains suggested wording you can copy verbatim.
  7. Verification plan
    What tests you will run, on what fixtures, and what user-visible acceptance criteria the stakeholder will use to say "yes, this works." Be specific: "processes the July 2026 attendance sheet without manual correction" beats "produces correct output."
  8. Milestone plan
    A three-line sketch: what will exist by the design doc, what will exist at mid-demo, what will exist at final. You are not expected to plan week-by-week at proposal time — you will refine this in the design doc.
  9. Risks and plan B
    Three things that could derail this. For each, a one-sentence fallback that keeps the project alive at a smaller scope.

Appendix A. Paste the stakeholder acknowledgement email verbatim, with sender name, role, and date.