Course description for CS 173
Fall 2009

Course Topics

This course is an introduction to the theoretical side of computer science. In it, you will learn how to construct proofs, as well as read and write literate formal mathematics. You will also become familiar with a range of standard mathematics concepts commonly used in computer science.

Prerequisites

Officially, this course has no listed prerequisites. However, we are in the process of officially adding CS 125 (or ECE 190) and Calculus I (Math 220/221). We have found that students without these two courses (or with grades below C- in these courses) have tended to do poorly in CS 173.

The content of this course does not use calculus directly. However, it assumes a strong fluency with precalculus mathematics (algebra, plane geometry, trigonometry, logarithms, and similar). Calculus courses help develop this fluency.

CS 125 is required because some parts of this course discuss computer algorithms in the abstract (pseudo-code). If you have very little or no programming experience, we strongly urge you to take CS 125 first. We do not assume you know Java, so it's ok if you have taken a similarly strong introductory course using another programming language. It is important that you have written programs that are recursive, i.e. in which a function (aka procedure aka method) calls itself, and programs that manipulate the contents of arrays e.g. sort an array of numbers.

Other technical background can sometimes serve in place of these prerequisites. If you aren't sure whether you have the right background, come speak to the instructor.