In CMU CSD, as in most PhD programs, once incoming students have been offered a place in a programme they are invited meet faculty and existing students. These recruitment visits typically involve short yet intense meetings with between advisors and potential advisees sprinkled through two days of socializing.

Students tend to select colleges because of the pool of potential advisors more than any other factor, and so it is in colleges’ best interest to ensure that visiting students have many meetings with advisors closely related to their interest. A friend and colleague (who joined CMU the same year as me) attributes his decision to join CMU over his (initial) selection because of the quality of his meetings in CMU.

Also these meetings are a substantial investment by colleges, who customarily pay for travel and lodging for visiting students and time spent by faculty and current students. Colleges generally want to maximize their return on that investment by attracting as many students as possible.

To ensure that meetings are well-scheduled and relevant, and to allow for rapid updates as people request changes during the visit days, I wrote this software package to handle scheduling. Visigoth is a scheduling system for visit days; it allows departments to schedule and arrange visit days. It handles the major scheduling challenges: group events, requested meetings, automatically matched meetings, and more.

Its key features are:

  • Automated Scheduling: given each person’s availability, fixed group events, meeting requests, and research area, Visigoth can automatically schedule meetings between faculty and students. Scheduling is done through a configurable convex optimization program, and these automated schedules can be manually changed.
  • Meeting Requests: incoming students and faculty can each indicate meeting requests with priority; these requests are tracked (so your department can ensure that they take place).
  • Events: you can schedule events, automatically selecting students and/or faculty by group, research area, sex, etc. Meetings will not be scheduled during events marked as mandatory, and Visigoth automatically compiles lists of event attendees by dietary restriction to facilitate catering.
  • Problem-checking: double-bookings, unsatisfied requests, an insufficient number of meetings, and several other potential errors are tracked and reported by Visigoth.
  • Publishing: once schedules are completed (or amended), a single click publishes all changes. You only have to send your students and faculty the links once; amendments update the linked document. These schedules are entirely customizable Liquid templates.

Interface

Visigoth runs on our servers and is accessible through a web interface. It scrapes input from both visitors and hosts (faculty, current students) from online survey services, most commonly Google Forms. This input is used to populate the Visigoth People interface:

People

List of people. List of people.

When editing schedules, Visigoth displays the dates and times and shades cells based on availability. The automated scheduler will not schedule meetings during the busy period.

Availability. Availability.

High- and low-priority meeting requests made by each person are listed.

High- and low-priority schedules. High- and low-priority schedules.

You can drag-and-drop people to schedule and reschedule meetings. Drag names from the list on the left or the meeting requests below to populate schedules, or drag them from a meeting to reschedule or deschedule a meeting.

Drag and drop to create and move meetings. Drag and drop to create and move meetings.

When you drag someone’s name onto the schedule, their availability is shown in the margins of the schedule. This allows you to find common free slots between two people without switching back-and-forth between the two schedules.

Dragged names show availability. Dragged names show availability.

When you drag someone’s name onto the schedule, their availability is shown in the margins of the schedule. This allows you to find common free slots between two people without switching back-and-forth between the two schedules.

Events

Events are displayed in a separate tab:

Events are defined through this interface. Events are defined through this interface.

Events, once defined, allow you to list people by dietary preference. This greatly simplifies catering.

Events are defined through this interface. Events are defined through this interface.

Alerts

Key problems are tracked and reported by Visigoth, allowing administrators to resolve errors quickly and easily.

Publishing

Hit the publish button to generate/update schedules from Liquid templates. Visigoth generates a mailmerge file that allows you to automatically send personalized links to each person. Visigoth even tracks meetings changed from the last publish so you can only send emails to notify people who have changes in their schedules.

Deployment

Visigoth was used in February–April 2019 to run visit days for the CMU Computer Science Department, Machine Learning Department, Robotics Institute, and Electrical and Computer Engineering Department.

We are adding new features and streamlining existing interfaces for the upcoming 2020 admissions cycle! If you want to test this, feel free to contact me.