Welcome to the Spring 2017 web page for CS173

Registration information for the fall courses is on the fall course web site.

Most information will be in the subpages for the two lectures and the honors add-on. Links will appear below as we get those pages ready.

Meanwhile, please read the registration and start-up information below. You can also look at the Fall 2016 web pages to get a sense of what the course covers and how it normally runs.


The course is now full, except for a few seats held back for CS majors (e.g. who need to retake the course). If you don't yet have a seat:

If the lecture is full but there are seats in one or another discussion: the course is full. This typically happens because another discussion is slightly overfull. The important limit is the number of total people in the class (e.g. seats in lecture, number of course staff).

If you cannot get into the class because it is full, COME TO CLASS. Seats can appear as late as the second week of classes and we'll try to get you into the class if at all possible. But you must come to class and stay caught up with the work.

You cannot add this class after Add Date (10th day of classes) for two reasons. It's too hard to get caught up and we can't handle extra unregistered people at the examlets, which start in week 3. For similar reasons, it is normally not possible to switch between A and B lectures after Add Date.

Prerequisite checking (ECE students)

The ECE department will not let you add this course unless you have credit for Calculus I and ECE 220 by the start of Spring term. Approved transfer credit will work (consult the ECE department for details) but you may not use the CS 125 proficiency exam to work around this requirement.

Prerequisite checking (all other majors)

To take this course, you must have completed Calculus I (Math 220 or 221) and CS 125 or ECE 220. Over winter break, we will check everyone's background and remove anyone who will not have the prerequisites. Use the following form to report situations where this background is not yet visible on your transcript, e.g. incoming transfer credit.

In particular, this course assumes that you have significant practice with recursion, have worked with basic data structures (e.g. linked lists, trees or graphs), and have seen simple examples of big-O algorithm analysis. Students without this background sometimes think they are ok towards the start of the term, but get into trouble midway through the course.

Notice that if you have informal background in C++ or Java, you must take the CS 125 proficiency exam.

If you need to take the proficiency exam, have a backup plan in case you don't pass. Similarly have a backup plan if you are depending on informal background to get in.

Honors and Proficiency Exam

If you have taken previous proof-based math courses, you may wish to attempt the proficiency exam. For more information, see the CS Proficiency Exams page.

If your background is strong and your schedule is not very full, you may wish to do the Honors Add-on. You can add this after classes start.