CS220 provides the mathematical background required for a deep understanding of computer science concepts. We will demonstrate the relevance of the mathematical concepts using Python, an easy to learn, widely used programming language.


CS 165 with C or better; MATH 160 with C or better.


Section 001
Lecture: 10am-10:50am MWF, Johnson Hall 222
Instructor Wim Bohm
Office Hours:MW 2-3 pm
Office Location: CSB 470

Graduate Teaching Assistants

All GTA office hours are in CSB 120.
Ben Sattelberg
Office Hours:Wed 4-5 and 8-10 pm
Fri 12 1 pm

Nick Lawrence
Office Hours:Wed 11-1 pm
Thu 8-10 pm

Undergraduate Teaching Assistant
Nathan Dunn


The Discrete Mathematics online textbook from zybooks is required for this course. It contains online exercises that form part of the grade. To get access to the book:

Sign in or create an account at
Enter zyBook code COLOSTATECS220Spring2018
Subscribe, use your EID as your student ID
A subscription is $48 and will last until June 13, 2018.


R01 Mon 11 am
R02 Mon 12 pm
R03 Mon 1 pm
R04 Mon 2 pm
R05 Mon 3 pm

All recitations are in CSB 325.


Here are the graded elements of the course and associated weights:

Activity Weight
Written/Canvas assignments (about 10)    15 %
Recitations   5 %
Programming Assignments (about 3) 10 %
Zybooks reading   5 %
Midterm one test 20 %
Midterm two test 20 %
Final Exam test 25 %

Your final grade will be determined by the weights above, with one important caveat: you need to get 65% and above as the weighted average of your test grades to receive a 'C' and above. Therefore, a student who gets below 65% as their exam grade will get a 'D' or worse for the course, even if their scores in other areas raise their overall score to a passing average.

On-line readings

You are expected to complete all the online activities associated with the Zybooks textbook. They are quite straightforward if you do the reading.


Recitations are another required part of the course. Recitations typically begin with a short presentation by a TA, followed by an exercise. For each recitation you receive a grade that reflects having worked towards completing the exercise. You can miss three recitations and still receive the full grade for the recitations. Therefore, there are no makeups for missed recitations.

Written/Canvas Assignments

There will be weekly written or Canvas-based assignments.

Programming Assignments

Programming assignments will be graded automatically. Your program will be executed on novel test files, and your grade will be determined based on whether it produces the correct output when run on the department's linux machines. If the assignment description is ambiguous, it is up to you to seek clarification from the instructor.

The test files used for grading will be distributed to the class shortly after the due date, so that you can get feedback by running your program on the same test files. If the results you see when running your program do not match the results that the GTA reports for your program, you should talk to the GTA promptly. However, in all but the rarest of cases, you should be prepared to understand that the definitive test of your code is that made by the GTA and what you are seeking in talking to the GTA is an understanding of how to avoid loosing points over similar discrepancies in the future.


Exams are an important part of your grade, and you need a passing grade for them (65%) in order to receive a C or higher in the course.

Grading Policies

Recitations, assignments, and exams will all be done individually and grades assigned on an individual basis. You may not submit any work done by other people under any circumstances. That you understand this requirement and follow it is essential and indeed the consequences for what is generally called "cheating" can take many forms including being dismissed from the University. Please see Professional Conduct below for more information.

Semester grades are determined by the weighted sum of points earned in each of the areas summarized in the table above. Total Typically the A- to B+ cutoff falls at 90 points, the B- to C+ cutoff at 80 points, and so on. While this is the typical grading procedure, the instructor reserves the right to make adjustments. Also, repeating from above, any student earning less than 65% on the exam portion of the course should not expect to receive a passing grade.

Late and Makeup Policy

Deadlines are deadlines. If you fail to submit an assignment, do a recitation, or take an exam on time, you get no points for that element.

There is one important class of exceptions to the rule above: unforeseeable emergencies. Examples might include severe illness, the death of a family member or close friend, a house fire, etc. In the case of an unforeseeable emergency, please talk to the instructor.

Important Dates

In class midterm 1 Friday Feb. 23 in class
In class midterm 2 Friday TBD in class
Course withdrawal period ends    Monday, March 19
Final Exam Thursday of finals week 7:30-9:30 am

In-class midterms and the final exam will be held in the same classroom as the regular lectures. While no change to the midterm dates is anticipated, the instructor reserves the right to change these dates with a week's notice.

Professional Conduct

All students are expected to conduct themselves professionally. We, specifically the instructors and GTAs, assume you are familiar with the policies in the student information sheet for the department. This course will adhere to CSU's policies as explained at the Academic Integrity website and the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.

Additionally, you are computing professionals. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct HERE.

We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular:

  • Please turn off the ring on your cell phone. If you are expecting an emergency call, sit near the door and slide out discretely to take it.
  • In class use of electronic devices in general, and laptops specifically, is permitted as a courtesy so that you may better participate and learn. If at any time the instructor judges that your use of an electronic device is becoming a distraction to others, you may be asked to to turn it off and put it away.
  • All exams and quizzes are to be done without the aid of notes of any kind. Laptops and all other electronic devices must be shut and put away during exams and quizzes.
  • University labs (including but not limited to CSB 120) are professional, not personal, spaces. We expect professional behavior in these labs at all times.

Piazza Dicussion Board

A class discussion board is being used to support this course. In particular, the discussion board is hosted at Piazza. All normal expectations regarding professional conduct apply to the discussion board. In addition, here are some explicit guidelines to assist in establishing the tone and expectations regarding the use of Piazza.

  1. No posting of any code for assignments.
  2. No inappropriate postings: e.g. profanity, sexism, racism, bullying, inflammatory remarks, bad taste.
  3. No grade inquiries: make those directly to the instructors.
  4. All students are expected to follow the discussions.
  5. Instructor posts, like in-class announcments, may clarify and even alter assignment specifications.
  6. Use the existing topics. Please don't start new threads.
  7. Only answer questions by other students when you are confident you are both correct and able to craft a helpful explanation.
  8. Questions may of course relate to how best to use tools.
  9. Do not expect instant answers. While answers may often come faster, a 24 hour response cycle is reasonable.
  10. Posts are anonymous one student to another through the Piazza interface.
  11. Posts are archival and individualized for the instructors.

This last item deserves additional comment. Please, keep in mind every word you type may be retained and shared by the instructor with others when the instructor determines there is good reason to do so. This should not concern you. It is the nature of a public discussion board that what you type is archival and public. However, understanding the public and personally identifiable nature of the discussion board should help reinforce the comments above about the importance of Professionalism.