This project simulates the market for swapping LaIR shifts among Teaching Assistants (TAs) in Stanford's introductory computer science courses (CS106A/B). The project involves designing algorithms, running simulations, and analyzing results to improve the current manual swap system.
The existing shift-swapping system relies on a Slack channel where TAs manually coordinate swaps. This project proposes an automated system using matching algorithms to optimize the process.
- Modified Top Trading Cycles (TTC): Adapts the classic TTC algorithm for shift-swapping, ensuring efficient and strategyproof swaps.
- Sequential Algorithm: Simulates the current manual process for comparison.
- Random Algorithm: Provides a baseline for evaluation by randomly assigning swaps.
- Percentage of agents receiving their top choice.
- Percentage of agents successfully matched.
- Average preference rank of assigned swaps.
- The Modified TTC algorithm outperformed the other two algorithms in most scenarios.
- The Sequential Algorithm closely mimicked the current Slack-based system.
- The Random Algorithm consistently performed worst.
📂 TA-Matching-Algorithm
├── analysis.py # Code for evaluating algorithm performance
├── makeGraphs.py # Code for generating performance graphs
├── multi_case_testing.py # Runs simulations with various test cases
├── proper_ttc.py # Implementation of the Modified TTC Algorithm
├── random_swapping.py # Implementation of the Random Algorithm
└── sequential.py # Implementation of the Sequential Algorithm
For more detailed project insights, see Final Paper.docx