Skip to content

Tools

Small student-facing utilities that support the course.

Grade Calculator (Sessional 25 · Mid 35 · Final 40)

A friendly Streamlit app for answering "where do I stand?" — using the confirmed institutional scheme documented in assessment-plan.md:

Institutional component Marks
Sessional 25
Mid Exam 35
Final Exam 40
Total 100

Because the maximum is exactly 100 marks, Final Percentage = Sessional + Mid Exam + Final Exam — no normalization is required. The app then maps the percentage to a letter grade and grade points using the official grading scale (A = 85%+ · 4.00 … F = below 50% · 0.00).

streamlit run tools/grade_app.py

What you get:

  • one number field per institutional component (Sessional 0–25, Mid Exam 0–35, Final Exam 0–40; leave future components empty);
  • the total out of 100 (= percentage), letter grade and grade points;
  • validation that rejects impossible marks (negative or above maximum);
  • a built-in worked example — 20 + 28 + 33 = 81 → A- (3.70) — shown until you submit your own marks (a perfect 25 + 35 + 40 = 100 gives A (4.00));
  • the official grading scale in an expandable panel.

Files

File Purpose
grade_app.py Streamlit front end (widgets + presentation only)
grade_calculator.py Pure calculation logic + official scale + validation, self-tested

Run the logic self-test (no Streamlit needed):

python tools/grade_calculator.py
# -> grade calculator self-test passed

The scheme and the official grading scale are documented in assessment-plan.md §1–§3.