This course is designed for students who have gotten a C- or above in CS 125 and in one term of calculus (Math 220, 221, or 234).
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, as do some other technical courses (e.g. physics).
This course requires you to analyze algorithms written in "pseudo-code." We assume that you have taken an introductory programming but the choice of programming language (e.g. C vs. Java) does not matter. You should have written programs that manipulate the contents of arrays e.g. sort an array of numbers. You should also have written programs that are recursive, i.e. in which a function (aka procedure aka method) calls itself. Aside from CS 125, ECE 190 and CS 101 also provide such preparation.
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 one of the instructors.