Degree
Bachelor of Science (Computer Science)
Department
Department of Computer Science
School
School of Mathematics and Computer Science (SMCS)
Advisor
Dr. Imran Rauf, Assistant Professor and Program Coordinator, Undergrad Programs (CS)
Keywords
Preference-Driven Course Allocation, Stable Matching via Deferred Acceptance, Approximate Competitive Equilibrium from Equal Incomes (A-CEEI), Priority Scoring Framework, Course Enrollment Optimization, Fair Allocation Mechanisms, Student Preference Matching, Higher Education Enrollment Systems
Abstract
Currently, the Institute of Business Administration (IBA), Karachi relies on a first-come, firstserve (FCFS) course enrollment system that creates systemic inequities, overwhelming administrative burden, and significant student stress. Students with slower internet connections or those unable to register at the precise opening moment are systematically disadvantaged, regardless of their academic needs. Our final year project proposes a preference-driven course allocation framework that replaces the FCFS model with an ordinal preference submission system. Students rank up to ten course sections during a submission window and a priority scoring model which is composed of four weighted components: relevancy, standing, starvation, and rank, quantifies each student’s priority score on every requested section. Two allocation algorithms were explored: Approximate Competitive Equilibrium from Equal Incomes (A-CEEI), adapted from the Wharton CourseMatch system, and the Stable Matching via Deferred Acceptance algorithm. Both were evaluated across eight metrics including feasibility, blocking pairs, average preference rank, top-choice satisfaction percentages, fully allocated student count, average courses per student, fairness variance, and runtime. Stable Matching outperformed A-CEEI across every dimension, producing zero constraint violations, zero blocking pairs, and completing in approximately 21 seconds versus 451 seconds. Following allocation, a facilitation week module allows students to add, drop, or swap sections under server-enforced validation covering capacity limits, schedule conflicts, prerequisite requirements, and course load boundaries. The system is built using React with TypeScript on the frontend, Python Flask on the backend, and MySQL for persistent storage, with an integrated hybrid Retrieval-Augmented Generation chatbot serving as a student support assistant.
Tools and Technologies Used
Python, Flask, Flask-CORS, React, Vite, JavaScript, HTML, CSS, TailwindCSS, Material-UI, Radix UI, Node.js, MySQL, SQLAlchemy, PyMySQL, bcrypt, cryptography, ChromaDB, FAISS, Sentence-Transformers, rank-bm25, Groq API, BeautifulSoup4, lxml, NumPy, Requests, Recharts, Framer Motion, React Router, React Hook Form, REST APIs, Git, GitHub, npm, Pytest, Virtual Environments (venv)
Methodology
The final implementation uses the Deferred Acceptance (DA) algorithm as the core allocation engine. Students submit ranked course preferences during a designated window, after which preferences are locked and priority scores are computed and frozen to maintain a fixed ordering throughout allocation.
During allocation, students iteratively propose to their highest-ranked remaining section. Sections tentatively accept the highest-priority applicants up to capacity and reject the rest, who then proceed to their next preference. Proposals that would create timetable conflicts, duplicate enrollments, or course-load violations are automatically skipped to ensure feasible schedules.
Student priority is determined through a weighted composite score based on four factors: Relevancy, Academic Standing, Starvation, and Preference Rank. To promote fairness over time, starvation counters are incremented for courses a student fails to obtain and are carried forward into future semesters. In cases of equal scores, a single lottery-based tie-breaker establishes a strict ordering before allocation begins.
The system also includes a Facilitation Week module for add, drop, and swap operations under enforced validation constraints, as well as a hybrid RAG-based chatbot to assist students with enrollment-related queries. Testing involved both unit-level validation of allocation components and end-to-end evaluation using seed datasets to verify stability, feasibility, fairness, and performance.
Document Type
Restricted Access
Submission Type
BSCS Final Year Project
Recommended Citation
Aqeel, A., Khan, M. H., & Riaz, R. (2026). Reimagining University Enrollment: A Preference-Driven Course Allocation Framework for IBA. Retrieved from https://ir.iba.edu.pk/fyp-bscs/57
Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-Share Alike 4.0 International License.
COinS
