Skip to main content

Lottery & Waitlist Information

Computer Science Department Lottery Policy

The priorities for the lottery are not a fixed formula; they depend on several different factors that vary between semesters and across courses (e.g., the size of waitlists, the Group a course belongs to, the frequency of offerings, etc.).  So, we cannot provide a clear and concise formula, nor are we able to predict ahead of time whether any particular student can get into a course.  However, for transparency, we think it would help students in planning to have a general understanding of some of the factors that go into the lottery process.  Below are our guidelines; again, these are not hard and fast rules, so checking off some number of boxes does not guarantee any result.  But, on the whole, these explain the vast majority of our decisions:

Lottery Guidelines for Introductory Courses: CS21, CS31, and CS35
  • Students who can still add the major or minor (generally, First-Year and Sophomore students) get preference over students who cannot (Juniors and Seniors).
  • Students who have not previously taken the course receive preference over students retaking the course (e.g., to improve their grade).
  • Students who were previously lotteried out of the course get higher priority within their peer group the next time they try to enroll.  In addition, for CPSC 21, students who stay on the waitlist (i.e., fully attend the first week of class and lab) may be given higher priority in future lotteries.
Lottery Guidelines for Upper-Level Courses (Numbered above CS35)

For upper-level courses (numbered above CS35), students needing the course for major/minor requirements receive priority (this is the general theme behind many of the preferences below).  Note: the items below are listed in arbitrary order and assume students have met the course prerequisites:

  •   Majors/minors receive preference over non-majors/minors, including students in other disciplines that cross-list our courses (e.g., Cognitive Science).
  • Students closer to graduation receive preference (i.e., Seniors receive higher priority than Juniors, who receive priority over Sophomores).
  • Students needing a course to meet their Group requirements receive preference over students using the course for an elective.
  • Students with a higher number of remaining courses per remaining semester receive priority over students closer to completing the requirements.
  • Students who have met the major/minor requirements can take up to 1 more course (the soft course cap).  Students who are taking this additional course receive lower priority than students enrolling to complete a CS degree requirement.  Students are not guaranteed access to an additional course.
  • As much as possible, the department will try to get students into one course per semester. This often means that, during the lottery for a particular semester, successfully enrolling in one CPSC course will lower your priority for additional courses that semester (students without a CPSC course for the semester will be given higher priority).
  • Students on the major or minor track who have not completed the CPSC 31 can take at most one upper-level course before being required to finish the introductory sequence, regardless of course prerequisites. Concurrent registration also satisfies this requirement.

Note that this applies only to courses taught by the CPSC department, regardless of whether the course is cross-listed.  For example, pre-registering for BIOL 68 is treated the same as pre-registering for CPSC 68.  We are not in charge of the lottery for CPSC 13, 52, 72, or 82 since these are cross-listed courses taught by faculty in other departments.

What to do if you are lotteried out of a CS class

If you are lotteried out of a CS class and would like to be put on the waiting list, find your course listed below and follow the steps for that course (the steps are different for introductory vs upper-level courses). 

In an effort to balance CS labs and lecture sections, occasionally students are moved from one section to another after pre-registration. Please check your schedule after lotteries are over to verify your registration. If we moved you into another section, your schedule was checked to ensure no course overlap. If you do not want to remain in the class, please drop it to make room for wait list students. If you want to try to get back into your original lecture section, or another lecture section, please follow the waitlist rules below.  If you just want to switch lab sections, see the info about Switching Lab Sections below.

NOTE: if you have trouble viewing any of the waitlist forms below, please try logging out of all google accounts first, then try accessing the forms again. It should ask you to log in with your swarthmore credentials, then give you access to the forms.

Waitlist info for Introductory Courses: CS21, CS31, and CS35


If you are lotteried out of CS21, CS31 or CS35, you can be added to the waiting list. We almost always are able to make all waitlist add decisions by the end of the first week of classes. Often times slots open up during the first week, particularly in the fall semester, and we add in students from the wait list that follow our waiting list rules:

1. Prior to the start of the semester, please fill out the appropriate form:

2. To stay on the waiting list you MUST attend all meetings of one section of the class and one section of the lab during the first week.

  • Sign in on the waiting list attendance sheet in the class and lab.
  • If you can add more than one section, you only need to attend one section of the class to stay on the waiting list for all sections of the class.

We start adding students during the first week as slots open in the course. Often times we can add students after Wednesday of classes. We try to make all add decisions by the end of the first week of classes.

We drop registered students from these courses who do not attend during the first week of class. We do this to ensure we can add as many waiting list students as possible. This means that sometimes slots open up at the end of the first week of classes.

We give preference to first and second year students in CS21, CS31, CS35, and to juniors who applied for the CS major and minor and who were deferred because they have not yet taken CS31 or CS35.

We keep a history of waiting lists and we try to avoid lotterying out students who were lotteried out and who followed our waiting list rules in previous semesters. Unfortunately, we are currently not staffed to guarantee slots in future semesters for students who are lotteried out of CS courses. We try as best we can to accommodate as many students as possible. Your best chance of getting into a CS21, 31, and 35 is to preregister during your first and second year, and to follow the waiting list rules if you are lotteried out.

Waitlist info for Upper-Level Courses (Numbered above CS35)

Please using the following Google Form to get on the waitlist for any upper-level course taught by the Computer Science Department. 

Fall 2024 Upper-Level Waitlist Form

Some  notes:

  • The Form above is the only way to get on the waitlist for upper-level courses.  Emailing the instructor or Chair does not automatically get you on the waitlist, only the form above will be used to generate the official waitlists.
  • Do NOT submit an add form until you have been notified that you have a seat in the course.
  • We do not handle waitlists for cross-listed courses taught by other departments (e.g, CPSC 13, 52, 72, or 82); you will need to contact the instructor of those courses directly.
  • For courses taught in CPSC that are cross-listed in other departments (e.g, CPSC 40, 46, 75) , please wait until you are admitted to request registration in the cross-listed version of the course.
  • Do not use the form above for lab switch requests.  It is only for course registrations.

Maintaining a place on the waitlist

  • Please do not resubmit requests. Names will be removed if they are not eligible for any courses this year or because the student has been offered the seat they requested.
  • To stay on the waiting list for a class, you MUST attend class and lab during the first week and sign your name on the waiting list attendance sheet. If there is more than a single section of lecture or lab for the class, you only need to attend one of the lecture sections and one of the lab sections during the first week to stay on the waiting list for any section of the class. 
  • Course rosters will be finalized by the Wednesday of Week 2 (one full week into the semester).
Switching Sections

For CS21, CS31, and CS35, if there is a waitlist:

If you are interested in switching your lab or lecture section, please do the following:

  1. Find a student in the section you are looking to switch into. You can use Piazza or Slack if your class is using it, or add your name to these swap sheets and check back later to see if another student can swap with you: 
    1. CS21 lab swap sheet
    2. CS31 lab swap sheet
    3. CS35 lab swap sheet
    4. CS21 LECTURE swap sheet
  2. Once you find a student who is willing to switch, send Lauri (lauri at an email with the following information (Cc the swapping student):
    1. Names
    2. labs currently registered for
    3. labs looking to move into for both students (swaps cannot be made without this information)
  3. Once the switch has been approved, both students will receive an email from Lauri

For upper-level courses, please fill out this form to request to switch lab sections.  Note that requests may not be processed until the start of the semester.