The main reason for taking classes is to help prepare for the Comprehensive Exams (see section 4.3). You should obtain a copy of the old exams and study them to determine whether you need to take a course. Another idea is take the previous (latest) B exam in that subject and have it graded, then talk to the professor and show that you can handle the material as evidenced by the B exam. The table below lists the relevant classes for each exam. The classes are listed by number, with a letter indicating the semester (fall or spring) in which the class is taught. If you feel you are familiar with the material covered in a class, but you need to review for the Comprehensive Exam, you can audit or labby the class, but you should clear such arrangements with relevant faculty members, such as your advisor.
Exam | Course | Semester |
Algorithms | 314 | Fall |
Architecture | 425 | Fall |
Automata Theory | 481 | Fall |
Compilers | 412 | Fall |
Graphics | 360 | Fall |
Logic | 409 | Spring |
Programming Languages | 311 | Spring |
Systems | 421 | Spring |