Discrete Mathematics for Computer Science




NOTE: This schedule is subject to change.

DateDaySubjectReferenceDue Dates
3/29/16 Tues Algorithms: pseudocode and tracing Rosen 3.1 + Appendix 3
JS 1.1
Extra worked examples from Rosen
3/30/16 Wed Discussion Section Rosen 3.1 # 55, 56
3/31/16 Thur Number systems: representations and algorithms Rosen 4.2 (+ 4.1)
JS 1.2, 1.3
Extra worked examples from Rosen
4/1/16 Fri HW 1 due.
4/5/16 Tues Number systems: conversions and logical operations Rosen 4.2 + 1.1
JS 1.2, 1.3
4/6/16 Wed Discussion Section Rosen 4.2 # 13,14,21,22,23,24
4/7/16 Thur Propositional Logic: the connectives Rosen 1.1
JS 3.2
4/8/16 Fri HW 2 due.
4/12/16 Tues Propositional logic: equivalences Rosen 1.2 + 1.3
JS 3.2
4/13/16 Wed Discussion Section. Rosen 1.1 #7,13
4/14/16 Thur Predicates and quantifiers. Rosen 1.4
JS 3.3
4/15/16 Fri HW 3 due.
4/19/16 Tues First exam. Exam today, covers everything before predicates (through April 14 ** Edited**).
4/20/16 Wed Discussion Section Exam re-cap + Rosen 1.4 #19,29
4/21/16 Thur Nested quantifiers Rosen 1.5
JS 3.3
4/26/16 Tues Proof strategies Rosen 1.7+1.8
JS 3.4 + 3.5
4/27/16 Wed Discussion Section Rosen 1.6 #17, 18, Rosen 1.7 #35, 38
4/28/16 Thur Sets Rosen 2.1 + 2.2
JS 2.1
4/29/16 Fri HW 4 due.
5/3/16 Tues Sets Rosen 2.1 + 2.2
5/4/16 Wed Discussion Section Rosen 2.1 #9, 17
5/5/16 Thur Induction, inequalities and constructions Rosen 5.1 + 5.2
JS 3.6 + 3.7
5/6/16 Fri HW 5 due.
5/10/16 Tues Recursive definitions and structural induction Rosen 5.3
JS 2.2
5/11/16 Wed Discussion Section Rosen 2.2 #47, 5.1 #19
5/12/16 Thur Structural and strong induction Rosen 2.3
JS 2.1.2
5/13/16 Fri HW 6 due (file updated 5/7)
5/17/16 Tues Second exam. Exam today, covers through May 12.
5/18/16 Wed Discussion Section Exam re-cap + Rosen 2.2 #29, 31
5/19/16 Thur Functions and cardinality of sets Rosen 2.3, 2.5
5/24/16 Tues Cardinality of sets and relations Rosen 2.5, 9.1
5/25/16 Wed Discussion Section Rosen 2.5 #1
5/25/16 Wed HW 7 due
5/26/16 Thur Relations: properties of binary relations, equivalence relations Rosen 9.1, 9.5
JS Ch 6
5/31/16 Tues Modular arithmetic Rosen 4.1, 9.5
Slides (Updated with annotations)
6/1/16 Wed Discussion Section see handout
6/1/16 Wednesday HW 8 due.
6/2/16 Thur Review day
6/4/16 Saturday Final exam. Final exam today 8:00am-10:59am in usual lecture room.


Instructional team

Daniel Grady Instructor
Mia Minnes Instructor
Srinivas Avireddy Teaching Assistant
Sankeerth Rao Karingula Teaching Assistant
Justin Lazarow Teaching Assistant
Zhen Zhai Teaching Assistant
Asha Camper Singh Tutor
Su Jin Heo Tutor
Xingda Jiang Tutor
Benjamin Levin Tutor
Jenny Nguyen Tutor
Maya Nyayapati Tutor
Oscar Song Tutor
Jimmy Ye Tutor
Diana Zhou Tutor

We will be communicating with you and making announcements through an online question and answer platform called Piazza (sign up link: piazza.com/ucsd/spring2016/cse20). We ask that when you have a question about the class that might be relevant to other students, you post your question on Piazza instead of emailing us. That way, everyone can benefit from the response. You should not post about graded homework questions on Piazza. The best way for us to answer homework questions is in office hours. The exceptions to this rule are if you suspect a typo in the assignment, or if you don't understand what the question is asking you to do. In those cases only, you may post about homework questions on Piazza. You can also post private messages to instructors on Piazza, which we prefer to email. Our office hours can be found in the calendar above.


Welcome Message

Welcome to CSE20! If you ever wondered "What sort of mathematics do I need for computer science?", this course will provide some of the answers. In particular, you will have the opportunity to learn basic concepts about algorithms, computer arithmetic, number systems, Boolean algebras, logic, proofs, program correctness, loop invariants, modular arithmetic, linear and partial orders, recurrences, and induction, among other things. These are some of the essential ingredients in the toolkit of every computer scientist.

Course Description:

Please click here for a course description as given in the undergraduate course listing.

Learning Goals:

CSE 20 will teach you the basic tools for representing, analyzing, solving, and reasoning about computational problems. Specifically, on successful completion of this course, you will be able to:


Course grades will be computed using the following weights.

Homework and participation35%

Exams: There will be two midterm exams and one final exam. The midterms will be given during the usual lecture time and place and you must attend the lecture for which you are registered. No makeup tests will be given. The exams will test all material covered up to the day of the exam. In particular, the final exam will be cumulative and will cover all material from the whole term. You may not use calculators on any exams but you may use a double-sided sheet of handwritten notes on 8.5x11 inch paper. The weighting of the exam scores will be

MAX ( (Final 35%, First Exam 15%, Second Exam 15%), (Final 50%, Best Exam 15%)).

You must have a passing score on the final exam (50%) in order to pass the course.

The weighting of the homework and participation will be
MAX ( (Homework 30%, Participation 5%), Homework 35 %)

Homework: There will be eight homework assignments. Working through them will be crucial to helping you gain mastery of the techniques we will study. When computing the homework portion of the course grade, the lowest of your eight homework scores will be dropped and the average computed using the remaining seven assignments.

Homework should be done in groups of one to three people. You are free to change group members at any time throughout the quarter. Problems should be solved together, not divided up between partners.

Homework solutions should be neatly written or typed and turned in through Gradescope by 11:59pm on the due date. No late homeworks will be accepted for any reason. You will be able to look at your scanned work before submitting it. Please ensure that your submission is legible (neatly written and not too faint) or your homework may not be graded. Submit only one submission per group. One representative group member can upload the submission through their gradescope account and then add the other group member(s) to the Gradescope submission: make sure to select their names when you "Add Group Members" to the submission; it's not enough to just list their names on the page. For step-by-step instructions on scanning and uploading your homework, see this handout.

Students should consult their textbook, class notes, lecture slides, instructors, TAs, and tutors when they need help with homework. Students should not look for answers to homework problems in other texts or sources, including the internet. Only post about graded homework questions on Piazza if you suspect a typo in the assignment, or if you don't understand what the question is asking you to do. Other questions are best addressed in office hours.

The 5% of the grade that may be earned through participation will consist of the higher score between the following two options:

After your weighted average is calculated, letter grades will be assigned based on the following curved grading scale:

A+, A, A- B+, B, B- C+, C, C- D, F
100-88 87-75 74-60 Below 60

The boundaries for +/- designations within each letter grades will be determined based on the grade distribution of the class. In addition, you must pass the final exam with at least a 50% in order to pass the course.

Standards for evaluation:

Your assignments in this class will be evaluated not only on the correctness of your answers, but also on your ability to present your ideas clearly and logically. You should always explain how you arrived at your conclusions, using mathematically sound reasoning. Whether you use formal proof techniques or write a more informal argument for why something is true, your answers should always be well-supported. Your goal should be to convince the reader that your results and methods are sound.


Please be prompt (less than three days) in reporting any errors in the grading of your work, or in the recording of your grade. All grades become permanent three days after they are recorded. All regrade requests must be made through Gradescope. You must submit a separate regrade request for each question you'd like to be regraded since Gradescope will route the request to the person who graded that question. Do not use regrade requests as a venue for explanation of the solution; Piazza posts are much better places for those questions.

Academic Integrity:

The Jacobs School of Engineering code of Academic Integrity is here. You should make yourself aware of what is and is not acceptable by reading this document. Academic integrity violations will be taken seriously and reported immediately. Ignorance of the rules will not excuse you from any violations. Key facts about academic integrity related to CSE20:


Students requesting accommodations for this course due to a disability must provide a current Authorization for Accommodation (AFA) letter issued by the Office for Students with Disabilities (OSD) which is located in University Center 202 behind Center Hall. Students are required to present their AFA letters to Faculty (please make arrangements to contact me privately) and to the OSD Liaison in the department in advance (by the end of week 2, if possible) so that accommodations may be arranged. For more information, see here.



The required textbook for this course is

Discrete Mathematics and its Applications, Kenneth Rosen, McGraw Hill, 7th edition.

This book is available in hardcopy at the UCSD Bookstore or many online retailers. You are also able to purchase an online copy of the book through McGraw Hill Connect.

We acknowledge that there are not many differences between the 7th edition and other recent editions, so you may be able to save some money by purchasing an older edition of the textbook. All posted reading assignments will refer to the chapter and section numbers of the 7th edition, but we have put together this guide so that you can easily find the corresponding sections in the 5th and 6th editions. Please be aware that while this textbook does not vary too much from edition to edition, the content of the older books might not be exactly the same as the 7th edition.

The texbook's companion website has extra practice problems and resources. In particular, the Self Assessments and the Extra Examples for each chapter are great practice materials. Access the companion website here.

You may also wish to look at the following textbook as a supplementary resource.

Fundamentals of Discrete Math for Computer Science: A Problem-Solving Primer, Jenkyns and Stephenson

The full pdf of this book is available for free download from a UCSD internet connection at:


Important Websites

In addition to this course website, we will be using these external websites for various purposes throughout the quarter:


Class Meetings

Lecture A00 Tu, Th8:00am - 9:20pmCENTR 101
Lecture C00 Tu, Th6:30pm - 7:50pmPCYNH 109
Discussion A01 Wednesday1:00pm - 1:50pmCSB002
Discussion A02 Wednesday4:00pm - 4:50pmCSB002
Discussion A03 Wednesday5:00pm - 5:50pmCSB002
Discussion C01 Wednesday9:00am - 9:50amCENTR 222
Discussion C02 Wednesday1:00pm - 1:50pmPETER 103
Discussion C03 Wednesday3:00pm - 3:50pmPETER 102
First Midterm Exam Tues April 19In lectureIn lecture
Second Midterm Exam Tues May 17In lectureIn lecture
Final Exam A00, C00 Saturday June 48:00am - 11:00amLecture rooms

Discussion section signups will be done through UCSD's Sections Tool on a first-come, first-served basis. You can sign up for any discussion section that still has room, regardless of which lecture you are enrolled in. Signups open at 8pm on Tuesday, March 29, the first day of class.