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

Creative Commons License

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

Share

COinS