Most of my classes host office hours, and I try to attend weekly in order to further my understanding of each subject. Often when I sign up and join the que, I find myself waiting for an extended period, wasting time that could be better spent studying the subject. I'd like to create an interface that limits the wait time for students attending office hours.
What it does
This program was intended to take in a few parameters and creates an algorithm to optimize the efficacy of office hours. These parameters include: number of TA's available for assistance, number of students wanting assistance, average time a TA spends helping a student, average wait time for a student, hours until upcoming assignment is due. However, due to a gross lack of data, we transitioned the focus of the project to be an interface, reading in sample data files that we felt accurately represent the distribution of time spent in office hours throughout the week, and then displaying the given predicted wait times based on location and time slot.
How I built it
Office Hours Optimization was built using Dr. Java, a programming language my partner and I had learned in our CIS course. The program utilizes a series of functions, including one that calculates an expected wait time, one that simulates the interface, a few that draw the interface, and a couple more. The program takes in different text files that represent expected data for office hours over the course of a week - TA’s in Ware, TA’s in Detkin, students in Ware, and students in Detkin. This data has been fabricated, but we believe it serves as an effective approximation in our own experience, and therefore serves as a “placeholder” until real data becomes available. We used PennDraw to create an aesthetically pleasing interface that we believe students would find very useful.
Challenges I ran into
An immediate challenge that we ran into, briefly alluded to above, is our lack of real office hours data in our interface. We first reached out to the head CIS 110 TA, but he was unable to release the data to us due to confidentiality. We then asked Max Li, the head TA for ESE 111, but unfortunately we had a similar response. Our ESE final project mentor, Frank Masuelli, suggested we create a poll with some of our questions for ESE 111 TA’s, but the results weren’t very helpful and didn’t help us garner more efficient data for our wait-time calculations. We were left to our own devices, and therefore created representative data for CIS 110 office hours.
Accomplishments that I'm proud of
One thing about our office hours optimization program that we are proud of is its utility - unlike some other projects we considered, this one would be valuable to society (or more specifically, Penn students) if implemented. We considered using an Arduino to light up different colored holiday lights by detecting frequencies in a holiday song, but we realized that there was no room for innovation in such a project. Our office hours optimization program could potentially be very useful for students, and we ultimately deemed that utility would be our main focus for our project.
What I learned
While the idea behind this program is simple in nature, time efficiency and optimization of all kinds are major themes in modern day. At first, we wanted to just create a program to allow students to avoid waiting for office hours assistance over extended periods of time because, well, waiting is annoying. We didn’t realize that we were merely keeping up with a trend that has become all the more prevalent over the past decade. A prime embodiment of this trend is navigation - apps like Google Maps take in a series of parameters, such as time of the day, time of year, accidents on the road etc., and create algorithms to predict the flow of traffic so drivers can be more time efficient. This is our goal for our office hours interface - we wish to limit the wait time of students in office hours so they can more effectively allocate and plan their time.
What's next for Office Hours Schedule Optimization
Sticking with the navigation theme, the next thing we hope to implement in our office hours program is an interface for students to respond to our data (ex. expected wait time) so we can manipulate our algorithms to more effectively simulate real results. This is a main feature in the navigation app, Waze. “Wazers”, as they describe themselves, can relay real-time data to to other drivers via the app. This includes “heavy traffic” or “car accident” which Waze then uses in its program to reroute drivers so they might more quickly reach their destination. We believe this would be an effective component in our interface, not only allowing us to develop better algorithms, but also allowing students to inform other students of office hours traffic at a given time of day.