Important Questions about CS473UG and CS473GG
- Why are there separate undergraduate and graduate sections of CS 473?
- Successful research in computer science requires a much stronger foundation in the core principles of computing than most students acquire even in the best undergraduate programs (like ours). For this reason, we have much higher expectations for graduate students than for undergraduates.
Fortunately, computer science graduate students generally meet these higher expectations with ease. Most have already taken at least one algorithms class; repeating undergraduate-level material is simply a waste of their time. Graduate students are (self-)selected for their interest, ability, and experience in computer science and their intellectual maturity; even those who haven't had an undergrad algorithms course are more capable of mastering advanced material than most undergraduates.
Until just a few years ago, there was only one algorithms class at UIUC, called CS 373, which was required for both undergraduate and graduate students. Grad students always significantly outperformed undergrads in this course. The immediate reason for the split is that the combined class simply became too large to teach effectively. (Some students think 473U and 473G are still too large to teach effectively; it's hard to argue with that.)
- Who is teaching each section?
- For Fall 2005, Jeff Erickson is teaching the graduate section, and Lenny Pitt is teaching the undergraduate section. Course assignments for Spring 2006 have not been finalized, but the current tentative plan is that Jeff Erickson will teach the graduate section again and Mahesh Viswanathan will teach the undergraduate section.
- Can graduate students take 473U?
- No. The undergraduate section of 473 does not satisfy the theory requirement for any computer science graduate program at UIUC. Computer science (and ECE) graduate students cannot get graduate credit for the undergraduate section of 473. (Other departments may have different policies for their students.)
- Can undergraduate students take 473G?
- Yes! In particular, if you are enrolled in the 5-year BS/MS program, you must take 473G (or 475 or 573) to satisfy the theory requirement. If you are considering applying for graduate study in CS at UIUC—either in the 5-year program, the regular MS or PhD programs, or the Internet MS program—you should take 473G. If you take 473U and then later become a graduate student here, you will have to take 475 or 573 to satisfy the theory requirement. I repeat: You cannot get graduate credit for the undergraduate section of 473, even retroactively.
Mathematically and/or algorithmically mature undergraduates are encouraged to take 473G, even if they are not considering graduate school at UIUC. Every semester Erickson taught the combined 373, at least two of the best five students were undergrads. (The same is true in most of the 500-level theory classes he's taught!)
However, most undergraduates should take 473U. (Students in the "old" curriculum can also elect instead to take 475, but if they do, they should do it by fall 2005.) Based on past performance, it is expected that nearly half of undergraduate computer science majors at UIUC would not pass 473G. See the more detailed discussion of 473 G grading, or CS 473ug course information to find out about different grading criteria for the two classes. If 473G is flooded with undergraduates, a large fraction of them will probably fail. If you are not prepared to take a graduate-level theory class, do not take 473G. You have to decide for yourself, of course—you're an adult, after all—but 473G is not recommended unless you recieved at least a B+ in 273 and 225 and at least one senior-level mathematics class requiring formal proofs.
- I took 373/473 as a UIUC undergrad. Do I still have to take 473G?
- The short answer is that you can't take 473G. Officially, it's just another section of a course you've already taken, and university rules forbid retaking courses, especially if they were used to satisfy degree requirements.
- Wouldn't it be better to just have two different course numbers?
- Yes, it would! We're working on it.
- I took 373/473 as a UIUC undergrad. Do I still have to take a graduate theory course?
- If you took 373G or 473G as an undergrad, no. You've already satisfied the graduate theory requirement. No.
If you took 373U or 473U as an undergrad and got an A- or worse, yes. You must take 475, 573, or another x7x course to satisfy the gradute theory requirement.
If you took 373U or 473U as an undergrad and got at least an A (not just an A-), you may be eligible to waive the theory requirement. (It depends on how good an A it was.) Talk to Professor Erickson.
- I took an algorithms class somewhere else. Do I still have to take 473G?
- If you took an "advanced" or "graduate" level algorithms class at another university within the last five years, you may already satisfy the graduate theory requirement. To see if you qualify, bring Professor Erickson a copy of your old syllabus (or point to a web page).