Introduction to Mathematical Thinking

CS 198-087 @ UC Berkeley, Spring 2019

Jump to Announcements, Course Description, Content and Schedule, Grading, FAQs, or Staff
Read the textbook here

View the Fall 2018 site here, where you can view all of the content for the course.

Class: Tu/Th, 3:30-5:00PM, LeConte 2
Office Hours: TBD

Piazza: TBD
Gradescope: TBD


Course Description

Berkeley’s highly theoretical Computer Science curriculum demands a high level of mathematical maturity. While those with extracurricular math experience from high school are familiar with dense notation, complex mathematical objects, and proof techniques, many students find foundational courses like CS 70, CS 170, and Math 55 confusing and inaccessible.

Introduction to Mathematical Thinking bridges the gap.

We teach mathematical maturity. Our curriculum exposes students to familiar concepts in a more precise, generalized way. By the end of our course, students will be able to:

As a result, this course will prepare students for higher-level mathematics courses, such as CS 70 at Berkeley. However, students can enroll in the course even if they aren’t planning on taking these courses or are not in CS/EECS; these skills and concepts are highly transferrable.

There are no prerequisites for this course. We're working really hard to make the material accessible for all backgrounds.

Disclaimer: This course is not a prerequisite for CS 70, nor is it affiliated with the CS 70 instructors or course staff in any way. The official prerequisites for CS 70 are specified in the course description. CS 70 staff makes no guarantees regarding the material covered in this course.

Frequently Asked Questions

How do I know that this course is for me?
This course is designed for students without discrete math experience. In general, if you have significant math contest experience, or did well in a discrete math course prior to being at Berkeley, then this course probably isn't for you.
A good diagnostic is last semester's midterm exam. If a lot of this seems unfamiliar to you, we'd be glad to have you!

When should I take this course?
We think this course is best taken the semester before taking CS 70. Therefore, if you plan on taking CS 70 in Summer 2019 or Fall 2019, then Spring 2019 would be the time to take it. With that being said, you can take this course even if you don't plan on taking CS 70, but due to constraints, we won't be admitting many students from this category (perhaps in future semesters). This DeCal is not designed to be taken alongside or after CS 70.

How much work will it be?
We know you have other courses in which your grade matters. However, the only way to actually develop and retain skills from this course is to put in the time into coming to lecture and discussion, reading the book/watching lecture videos, and (most importantly) doing the homework. Not including time spent in class, a rough estimate is 5 hours per week.

Can I audit this course?
Sadly, we won't have space for that. However, all materials – lecture notes, the textbook, lecture videos, assignments, exams – will be posted online.

How will enrollment work?
Apply to the course at If you're accepted, and attend the first lecture (mandatory), we will give you a student-specific enrollment code.

Content and Schedule

A textbook is being written specifically for this course. It is available for free at There will also be lecture videos embedded into the textbook; this is still a work in progress.

We will cover the following topics: Take a look at last semester's site for more details on the scheduling of topics, as well as past homework assignments and exams.


The course will be offered for 2 units, P/NP.

There will be weekly problem sets, which are graded on effort, not correctness. Attendance is mandatory, and NPs will be given to students who have more than 3 unexcused absenses.

We are currently deciding how to evaluate student performance in this course in Spring 2019. In Fall 2018, we administered a midterm and final exam. For a more detailed breakdown of grading in Fall 2018, please look at last semester's site.


For all course-related communications, please email


Suraj Rampure (
Hey, I'm a third year EECS major from Windsor, Ontario (right across the border from Detroit). I like cars, tech, men's fashion, teaching and rooting for LeBron (go Cavs Lakers!) I'm super excited that this course is finally a reality, and I'm hoping you are as well. Click the picture of me for a surprise.

Teaching Assistants