A Python-based academic assessment engine built with scikit-fuzzy that applies Mamdani Fuzzy Inference Systems (FIS) to evaluate student performance fairly and consistently. This project tackles the subjectivity and uncertainty of manual classroom participation grading by using continuous linguistic variables instead of rigid, traditional hard-cutoff boundaries.
The system processes three key academic dimensions into a singular, defuzzified final participation evaluation to eliminate grading bias.
-
Frequency of Participation: Range
[0, 14](Total number of times a student speaks in class)$\rightarrow$ (Low, Medium, High). -
Quality of Contribution: Range
[0, 10](The depth and usefulness of student answers)$\rightarrow$ (Low, Medium, High). -
Attendance Rate: Range
[0%, 100%](Student class attendance percentage)$\rightarrow$ (Low, Medium, High).
-
Final Participation Score: Range
[0, 100]$\rightarrow$ Defuzzified into discrete boundaries (Grade A, B, C, or D).
To adapt the AI system to real-world deployment, a hard-coded bypass logic is implemented:
-
If Attendance
$< 80%$ , the fuzzy system is bypassed, and the student automatically receives a Grade F (Fail), adhering strictly to Universiti Teknikal Malaysia Melaka (UTeM) academic policies.
The underlying model dynamically resolves combinations of inputs through Mamdani conditional structures. When input edges don't match an exact conditional matrix layout, the script seamlessly falls back to a Majority Voting algorithm using weighted counts to evaluate a definitive performance indicator.
[Inputs: Freq, Quality, Attendance] ───► [Attendance < 80% Check] ───┐ (Yes)
│ (No) ▼
[Mamdani Inference] ──► [Auto-Grade F]
│
[Centroid Defuzz]
│
▼
[Final Crisp Grade]
Mohammad Danish Bin Mohammad Omar| Muhammad Zarith Adam | Muhammad Amsyar Bin Hazalan | Muhammad Amirulhakim Bin Nor Adhkha | Muhammad Hafiz Danial Bin Asbullah | Al-Asry Bin Al-Ameen