Help! CS 473 is full!

What happened?

Like many other computer science classes, CS 473 reached its registration capacity shortly after registration opened in the spring. While CS 473 regularly fills up well before the semester begins, this year is notable in that almost every registered student is an undergraduate CS major and either a senior or a James Scholar. The class first reached capacity even before the Fall 2013 registration windows opened for juniors and graduate students, and weeks before the department opened 400-level classes to non-majors.

The increased demand for CS 473 reflects a sharp increase in the number of computer science majors (both in Engineering and LAS), computer science minors, and majors in related areas like computer engineering. To give some concrete data: Between 2004 and 2009, the number of freshmen admitted to the CS major in Engineering averaged about 200 per year; in 2010, 2011, and 2012, that number averaged about 240 per year. (The number of applications has risen even more sharply, so acceptance rates are now significantly lower than in previous years!) The numbers of Math/CS and Stat/CS majors in LAS, computer engineering majors, and computer science minors have seen similar increases. Thanks to another unexpected spike this year, we expect more than 300 freshman CS majors in Fall 2013.

This incoming enrollment wave has now worked its way up to our upper-division classes. CS 473 is being hit particularly hard, because it is both required for all CS majors and in high demand by related majors, including graduate students.

The registration limit is set by the physical capacity of 1404 Siebel; we cannot increase it. And we do not have the necessary manpower to open another lecture section.

In other words: This is the new normal.

So what do I do?

If you are an undergraduate computer science major (including Math/CS or Stat/CS) and you are graduating in December 2013, contact Steve Herzog or Holly Bagwell in the Computer Science academic office as soon as possible. They will get you in.

For other students who cannot register, we are maintaining a waiting list. I plan to close registration well before the semester begins Registration is now closed, so that as people inevitably drop out, students on the waiting list who need CS 473 to graduate can register without competing for space with others.

To add yourself to the waiting list, you must do ALL of the following:

  1. Fill out this electronic survey no later than Tuesday, August 27. You will need your university NetID and password.
  2. Come to the first lecture on Tuesday, August 27, and sign the paper form. You must come in person.
  3. Submit HW0, HW1, and so on, just as though you were already registered. If you do not submit all homework before you are registered, I will remove you from the waiting list, under the assumption that you are no longer interested in the class. I will not forgive homework grades just because you registered late.
I will prioritize students on the waiting list as follows:
  1. Undergraduate computer science majors (including Math/CS and Stat/CS) who are graduating on or before May 2014 and have taken CS 373 — There are already at least 35 students on the waiting list in this category.
  2. Other undergraduate computer science majors, computer engineering majors, and computer science minors who have taken CS 373
  3. Everyone else, including graduate students (but see below) and CS majors who have not yet taken CS 373
Within each category, students will be admitted to the course in decreasing order of their current homework scores, until that category is empty. There is unlikely to be enough room for everyone on the waiting list to be admitted.

CS 373 (Theory of Computation) is a prerequisite for CS 473. If you haven't taken CS 373 yet, you should take it next semester instead of CS 473. (CS 373 is also officially full, but the department may be holding some seats in reserve. Welcome to the new normal. If you are still interested in registering for CS 373, you should contact the instructor Mahesh Viswanathan, or talk to Holly Bagwell or Steve Herzog in the CS academic office, as soon as possible.)

Graduate Students

With a few exceptions, graduate students in computer science, ECE, CSE, and mathematics should take CS 573 instead of CS 473. In particular, CS 473 does not satisfy any graduate degree requirements at UIUC. Unfortunately, CS 573 is also likely to fill up, so register quickly! also full. (Even after being expanded twice. See: Normal, new.) If you are still interested in registering for CS 573, you should contact the instructor Sariel Har-Peled as soon as possible.

If you are a CS graduate student, you may be concerned that you may not have the right background for CS 573, because their undergraduate degree is in some other area than computer science, like electrical engineering, mathematics, or bioinformatics. You probably shouldn’t be. CS 573 does not have any specific prerequisite material that CS 473 does not. Both courses expect facility with abstraction and proofs, elementary algorithms (like sorting) and data structures (like binary search trees), and elementary algorithm analysis (big-Oh notation, loops, divide-and-conquer recurrences). What CS 573 does expect is the intellectual maturity and fearlessness consistent with being a graduate student in a top-5 department. Like you. Otherwise you wouldn’t be here. Do not let your advisor or your fellow students tell you otherwise. The vast majority of CS grad students, even those with non-CS undergraduate backgrounds, get through CS 573 with no trouble. (I do not consider "hard work" or "getting a B" to be "trouble"; if you want an easy A, you're in the wrong place.)

However, there are exceptions. A very small number of CS graduate students who attempt CS 573 discover that the gaps in their background are a significant barrier. We strongly encourage all such students to take CS 473, and I am reserving a few slots for these students. If you believe you fall into this category, please contact Jeff directly in addition to filling out the electronic survey. But the key prerequisite is to attempt CS 573 first.

Given the number of undergraduate majors on the waiting list (who must have priority because they need the course to graduate) and the small number of expected drops (because so many students are senior CS majors), it is unlikely that there will be room to admit any other graduate students from the waiting list this semester.

Of course, intellectually mature and fearless undergraduates are also welcome in CS 573!

Proficiency Exams

Students who are already comfortable with the course material are invited take the regularly scheduled final exam at the regular time (time and location TBA) for proficiency credit. If you plan to take the final exam for proficiency credit, please contact Jeff at least one week in advance.

To pass the proficiency exam, your score must be consistent with the scores of registered students who receive a C- or better in the course; as a rough estimate, your score must be at most one standard deviation below the mean. If you pass, your transcript will show a grade of "Pass" for CS 473, you will receive 3 credit hours, and any degree requirements satisfied by CS 473 will be satisfied, but your GPA will not be affected. Otherwise, nothing will appear on your transcript. See the university's proficiency exam policies for more details.

Do not take the proficiency exam unless you are sure you know the material! Although it hasn't happened for several years, some students have waited until their very last semester to take the CS 473 proficiency exam, and then failed. Those students did not graduate; some even lost pending job offers and visas. Do not do this! As a safety net, we strongly recommend also taking both midterms; these will be averaged in with your final.