CMSC 250 C.S. logo
Sections 030X
Web Accessibility

05/15/19   Today (Wednesday) will be the last day for office hours. Also, the window for regrade requests has passed. Please focus your attention on preparing for the final exam.

05/10/19   Final Exam information:
The final exam is on Saturday 05/18 from 4:00PM to 6:00PM in room SKN 0200. Please arrive at 3:50PM. All students must bring a photo ID to the exam.

04/18/19   Homework #10 has been posted.

04/13/19   Homework #9 has been posted.

04/11/19   Clarification for HW #8: Drawing a Venn Diagram is not a "proof" of any of the claims in the Homework. Also... I showed how you can sometimes use a Venn Diagram to help find a particular counterexample to a false claim, but the Venn diagram itself is not a counterexample.

04/05/19   Homework #8 has been posted.

03/31/19   Homework #7 is due on Friday 4/5. (I accidentally posted the wrong date in one place.)

03/29/19   Homework #7 has been posted.

03/19/19   Homework #6 has been posted.

03/05/19   Homework #5 has been posted.

02/26/19   Homework #4 has been posted.

02/26/19   Regarding HW #3: You do not need to "prove" something like "13 is prime". You can just assert that 13 is prime. However, rather than just asserting something like "72 is composite", I'd like you to write "72 is composite, because 72 = 12 * 6".

02/20/19   Homework #3 has been posted.

02/12/19   Homework #2 has been posted.

02/06/19   On Homework #1, question 7: The expression "t" appears. This is meant to be a variable, not the symbol for "tautology". Sorry for the confusion, it was a bad choice.

02/05/19   The Maryland Center for Women in Computing (MCWIC) will be offering free tutoring for all students in this course. Both 1 on 1 and "guided study sessions" are available. Tutoring will be in room 3136 A.V. Williams starting on February 11th. Guided Study Sessions for this course will be held on Mondays at 3:30PM and Tuesdays at 5:00PM. To sign up for 1 on 1 tutoring go to

02/04/19   Homework #01 is due at 11:00PM on Wednesday 02/13. (The original homework file did not specify a time.)

02/04/19   Homework #01 has been posted! Click the "Assignments" tab for a link to the assignment.

02/04/19   I have created an experimental (fake) assignment on our course Gradescope account called "Sample Assignment". If you'd like to experiment with the process of submitting an assignment on gradescope, please feel free to submit fake submissions to this assignment. We will ignore them.

02/04/19   You should have received an email inviting you to the course Gradescope account. If you didn't receive this email, send your instructor an email indicating what email address we should use for your account on Gradescope.

01/20/19   This is the class webpage for CMSC250, sections 030X only. Please check here often (at least once a day) for important class announcements.


Welcome to CMSC 250. This course covers fundamental mathematical concepts related to computer science, including propositional logic, first-order logic, methods of proof, elementary number theory (including sequences, and induction), set theory with finite and infinite sets, functions, relations, introductory counting and probability theory, and an introduction to graph theory. Emphasis will be on mathematical rigor and the development of sound and elegant formal proofs.

Course Coordinator:

Fawzi Emad

Optional Textbook:

There is no required textbook for this course and no assignments will refer to a textbook.

For students who like having a textbook as a secondary source of explanations and for practice problems, we recommend "Discrete Mathematics with Applications" by Susanna S. Epp. The book is currently in its 5th edition, but the earlier editions are fine for this course. There are many vendors selling this book online for reasonable prices.

Used books can be very economical, so you might want to find a used copy. You may also find electronic versions of the textbook for less money than a printed copy -- these are fine as well.

Below are links to some of the vendors carrying this book; there are many others, and you may find lower prices from other sources -- shop around. (We are not endorsing any particular sellers.)


There will be numerous homework assignments throughout the semester. The assignments will be distributed, submitted, and graded via GradeScope. Write neatly! If your solutions are not legible you will not receive credit for the assignment. Homework assignments are individual work; you may ask questions of us during office hours but may not work with other students on these assignments. Late homeworks will not be accepted.


Quizzes will not be announced, but you can expect them regularly (nearly every week) during your discussion section.

All students must attend the discussion session for which they are registered; any quiz that is handed in during the wrong section will not be graded.

Course Grades

Final grades will be computed according the following weights.

15% Homeworks
15% Quizzes
20% Midterm #1
20% Midterm #2
30% Final Exam

Online Posting of Homework Solutions
  • Do not post your homework solutions online (e.g., GitHub, PasteBin) where they can be seen by others. Making your solutions accessible to others can lead to academic integrity violations.
  • Even if the course is over, do not make your homework solutions available to others.
  • Notice we constantly monitor online sources.

Academic Honesty

Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. You are allowed to use the Web for reference purposes, but you may not copy code or solutions to problems from any website or any other source. In short, all submitted work must be your own.

Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct. Without exception every case of suspected academic dishonesty will be referred to the Office. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact your TA or the course coordinator.

The University of Maryland, College Park has a nationally recognized Code of Academic Integrity, administered by the Student Honor Council.B This code sets standards for academic integrity at Maryland for all undergraduate and graduate students. As a student you are responsible for upholding these standards for this course. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit

Examples of Academic Integrity Violations

The following are examples of academic integrity violations that could occur during Computer Science courses:

  • Hardcoding of results in a project assignment. Hardcoding refers to attempting to make a program appear as if it works correctly (e.g., printing expected results for a test).
  • Using any code or solutions to homework problems that are available on the internet/web or any other source. For example, using code from Sourceforge.
  • Hiring any online service to complete an assignment for you.
  • You may not post the implementation of your assignments, materials related to the class (e.g., project description), or any other material associated with this course. Even if the class is over and you have graduated, you may NOT post any material.
  • Sharing your homework solutions, code, or your "test code" with any student.
  • Providing ideas/suggestions on how to solve/implement a programming assignment.
  • Looking at or debugging another student's code.
  • Using online forums to ask for help regarding our assignments.

Laptops, Cellphones, and Other Devices

Use of electronic devices (laptops, tablets, cell phones, etc.) will not be permitted during class, unless the student has an accommodation from the Disability Support Services Unit specifically recommending the use of such a device. Students are expected to take notes during class with pencil and paper.

Class Announcements

You are responsible for reading the class announcements that are posted on this webpage. Please check them often (at least once a day). Important information about the course (e.g., deadlines, assignment updates, etc.) will be posted in this section.

Excused Absence and Academic Accommodations
  1. Any student who needs to be excused for an absence from a single class session , due to a medically necessitated absence shall:
    • Make a reasonable attempt to inform the instructor of his/her illness prior to the class. If you are going to miss an in-class assignment then we expect to hear from you (either email or telephone message) before the class session begins.
    • Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. The note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(h) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action.
    • This self-documentation may not be used for the Major Scheduled Grading Events as defined below and it may only be used for one class meeting during the semester.

  2. Any student who needs to be excused for more than one absence, or for a "Major Scheduled Grading Event", must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. The documentation should be given to the instructor, not the TA. We will not accept a "self-signed" note for "major scheduled grading events", as defined below. The note must be signed by a health care professional.

    The Major Scheduled Grading Events for this course include:
    • Midterm #1
    • Midterm #2
    • Final Exam

It is also the student's responsibility to inform the instructor of any intended absences from exams for religious observances in advance. Notice should be provided as soon as possible but no later than one week prior to the exam.

Accessibility and Disability Support
Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Accessibilty and Disability Support within the first two weeks of the semester.
Course Evaluations

The Department of Computer Science takes the student course evaluations very seriously. Evaluations will usually be open during the last few weeks of the course. Students can go to to complete their evaluations. 

All course materials are copyright UMCP, Department of Computer Science © 2019. All rights reserved. Students are permitted to use course materials for their own personal use only. Course materials may not be distributed publicly or provided to others (excepting other students in the course), in any way or format.

Exam Dates:

  • Midterm #1    Tuesday 03/12 in lecture
  • Midterm #2    Tuesday 04/30 in lecture
  • Final Exam    Saturday 05/18; Location to be announced.

Lecture Schedule (Approximate):
Week 1
Introduction to the course; What is logic?; statements; disjunction, conjunction, negation; interpretations; truth tables; logical equivalence
Lecture01 Slides
Logical equivalencies; conditional and biconditional connectives; inverse, converse, contrapositive; "sufficient" and "necessary" conditions; arguments
Lecture02 Slides
Week 2
Checking validity of arguments via truth table; rules of inference; proving arguments; logic gates; circuits; translating truth tables into statements; translating statements into circuits; building an "addition" circuit
Lecture03 Slides
Predicates and domains, Universal and Existential quantifiers, negating statements, empty domains
Lecture04 Slides
Week 3
Practice translating English to Predicate Logic; free vs. bound variables; interpretations; rules of inference; closure; Why number theory?; basic definitions
Lecture05 Slides
Introduction to proofs; constructive proofs; proofs by exhaustion/cases; applying Universal Generalization; styles of proof
Lecture06 Slides
Week 4
More examples; Notation for divisibility; proving implications (directly and via contrapositive); proving equivalence
Lecture07 Slides
Proof by contradiction; "famous" proofs; Fundamental Theorem of Arithmetic
Lecture08 Slides
Week 5
Applications of the Fundamental Theorem, Modular Congruence, Modular Arithmetic Theorem
Lecture09 Slides
Quotient-Remainder Theorem, floor and ceiling proofs, review of sequences, summations, and products
Lecture10 Slides
Week 6
Introduction to induction; induction proofs with congruences; induction proofs with summations
Lecture11 Slides
Lecture12 Slides
Week 7
Midterm #1 Induction with inequalities, recurrences, etc.; Introduction to strong induction.
Lecture 13 Slides
Week 8
Spring Break Spring Break
Week 9
More examples of strong induction.
Lecture 14 Slides
Constructive induction and Structural induction; Set Theory definitions (cardinality, subset, union, intersection, compliment, difference, Venn diagrams, tuples, cartesian product
Lecture 15 Slides
Week 10
Powerset, Proving subset relationships; Proving set equality; Properties of sets; Venn diagrams for finding counterexamples
Lecture 16 Slides
Proofs with powersets; partitions; Intro to probability; Multiplication Rule
Lecture 17 Slides
Week 11
Indpendent events; multiplication rule; probabilities with compliments; addition rule; inclusion/exclusion rule; decision trees; probability trees
Lecture 18 Slides
Counting techniques: permutations, combinations, tuples, multi-sets, etc.
Lecture 19 Slides
Week 12
More pratice with counting and probability
Lecture 20 Slides
Functions; domain, co-domain, range; injection, surjection, bijection; inverse image, inverse function; composition of functions; pigeon hole principle.
Lecture 21 Slides
Week 13
Relations: binary, ternary, unary, n-ary. Properties of binary relations.
Lecture 22 Slides
Lecture 23 Slides
Week 14
Midterm #2 Using functions to compare cardinalities; cardinalities of infinite sets; countable vs. uncountable
[There were no slides for this lecture.]
Week 15
Equivalence relations; partial order relations; total relations and total order relations
Lecture 25 Slides
Week 16
Review [No class this day]


Fawzi Emad
Office: IRB 2212
Office Hours: Tu/Th 2:10 to 3:10, Fri 11:00-12:00

Teaching Assistants
 Email Responsibilities Office Hours
Junchi Chu 0301 Discussion Leader (See table below)
Joon Kim 0302 Discussion Leader (See table below)
Deepthi Raghunandan 0303 and 0304 Discussion Leader (See table below)
Roozbeh Bassirian Jahromi Grader (See table below)
Zhichao Liu Grader (See table below)
Zehua Zeng Grader (See table below)
Fei Shan Grader (See table below)

TA Office Hours Schedule

TA office hours will begin on Monday 2/4. All TA office hours take place in room 1124 A.V. Williams. Please note that a TA may need to leave 5 minutes before the end of the hour in order to go to his/her class. Please be understanding of their schedules.

9:00 - 10:00         Roozbeh
10:00 - 11:00 Roozbeh Fei Joon Fei Roozbeh
11:00 - 12:00 Roozbeh Fei Joon Fei  
12:00 - 1:00 Deepthi   Zehua    
1:00 - 2:00 Deepthi   Zehua   Zhichao
2:00 - 3:00   Zehua   Junchi Zhichao
3:00 - 4:00   Zehua   Junchi Zhichao
4:00 - 5:00   Deepthi Deepthi   Zhichao
Examples from Lecture

Course Tools
  • Grades server (This is where you will be able to view your grades on assignments.)

Assignment Due date Solutions
Homework #1 Wednesday 02/13 HW 01 Solutions
Homework #2 Wednesday 02/20 HW 02 Solutions
Homework #3 Wednesday 02/27 HW 03 Solutions
Homework #4 Wednesday 03/06 HW 04 Solutions
Homework #5 Friday 03/15 HW 05 Solutions
Homework #6 Friday 03/29 HW 06 Solutions
Homework #7 Friday 04/05 HW 07 Solutions
Homework #8 Friday 04/12 HW 08 Solutions
Homework #9 Friday 04/19 HW 09 Solutions
Homework #10 Friday 04/26 HW 10 Solutions