Welcome to the Fall 2019 web page for CS173

Detailed information for the fall course will appear in late summer. Meanwhile, please look at the pages for recent offerings to get a sense of what the course covers and how it normally runs.


We're hoping to open enough seats for everyone who wants to take the course. However, some of them are contingent on hiring new faculty and, therefore, may not appear until after the main registration period. Keep an eye on the registration system.

Prerequisite checking

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.

To take this course, you must have completed Calculus I (Math 220 or 221) and CS 125 or ECE 220. Banner is starting to enforce prerequisites automatically, so you will unable to register if you don't have them.

If you have credit for a prerequisite course but it is not yet visible on your transcript, contact the CS academic office for help. This would include (for example) students with incoming transfer credit, exchange and high school students, and students who have recently passed the CS 125 proficiency. Be aware that the academic office is swamped during registration and also at the start of the term. So be patient, especially if you are a non-major.

What can be used to satisfy the prerequisites?

Proficiency exam

If you are familiar with much of the course content (see the course web pages from previous terms), you may wish to take the CS 173 proficiency exam. This is offered to freshmen during orientation week, and to continuing students in the middle of fall and spring terms (i.e. a couple weeks before registration starts). Have a backup plan in case you don't pass it.