Summer 2023
Instructor: Alex Chao
Classroom: LSRC D106
Lectures: M/T/W/Th 10:30am - 12:00pm
Please see Schedule for details.
Recitation: M/W 1:15pm - 2:45pm
In the summer term, courses are condensed and taught at a much faster pace than usual, compressing what would typically be a 14- or 15-week course into a six-week period. This means that you will spend more than twice as much time in class each week, and you should also expect to spend about double the amount of time outside of class each week. The shortened schedule forces a homework to be due in the same week as the exams. However, some people find this accelerated pace helpful, particularly if the material is new to them. Focusing on just one or two courses at a time can help students better absorb the material and feel more confident, but be prepared to dive in and stay focused.
The goal of this course is to make you familiar with math needed for Computer Science in general, and algorithm design in particular. You will become proficient in thinking up and writing formal mathematical proofs required for algorithm correctness and analysis; reasoning about graphs, sets, numbers, and probability; and counting techniques that are needed for algorithm analysis.
Though the material will be motivated by algorithms and pseudocode, the course will not have a programming component.
As a supplemental resource, you may feel free to reference these free online textbooks. Please note if there are any discrepancies between the textbook and the lecture slides, the lecture slides will be used as the ground truth.
Fundamentals of Discrete Math for Computer Science: Tom Jenkyns and Ben Stephenson, Springer, 2013.
Mathematics for Computer Science: Eric Lehman, F Thomson Leighton, and Albert R Meyer