course CPCS-222 (Data Structure)
CPCS – 222 Syllabus Discrete Structures I- Summer 2020 (3
rd Semester)
Course Pre-Requisites: None
Course Description:
The objective of this course is to study the logical and algebraic relationships between discrete
objects. This course cultivates clear thinking and creative problem solving by developing
students’ mathematical maturity in several core areas: logic and proofs, sets, functions, relations,
and counting techniques.
Course Text Book:
"Discrete Mathematics and its Applications", Kenneth Rosen, McGraw-Hill Education; 7 edition
(2011-06-14).
Class Schedule:
Lecture (Theory) 3 times a week for 120 minutes
Lecture (Lab) once a week for 120 minutes
Attendance Policy:
Class attendance and Lab attendance is mandatory. Students must attend at least 75% of theory
as well as lab classes. If anyone miss more than 25% of the classes, he will not be allowed to
take the final exam.
Course Coordinator(s): Instructor (Theory): Instructor (Lab)
Dr. Muhammad Umair
Exams:
There will be one midterm exam and one final exam. As the material in this course builds on
itself, each exam can be considered “cumulative”.
Quizzes:
Quizzes will consist of a small number of basic questions on material that has been covered
recently, with the goal of forcing students to keep up with the material. Quizzes will be
announced on Blackboard AND the quiz will be on Blackboard (so you can take the quiz at your
home). The quiz will usually be 20 minutes, and we will make it available for 6 hours. There
will be no makeup quizzes. It is your responsibility to take the quiz during this open availability
period.
Students Assessments Policy:
Assessment Grading Percentage
Quizzes 15%
Assignments (3 * 10% each) 30%
Exam 1 25%
Final Exam 30%
Important Dates:
Quiz 01: Tuesday, June 16, 2020 on Blackboard from 10:00am to 10:00pm
Quiz 02: Tuesday, July 07, 2019 on Blackboard from 10:00am to 10:00pm
MidTerm Exam: Thursday, June 25, 2020
Final Exam: Thursday July 23, 2020
Course Learning Outcomes:
By the completion of the course the students should be able to:
1. Find the truth value of propositions and compound propositions using truth tables. (a) 2. Prove Propositional Equivalences. (a) 3. Identify the truth value of quantifiers. (a) 4. Negate quantified expressions, nested or otherwise. (a) 5. Identify the validity of arguments in Propositional logic and use Rules of Inference to
build arguments. (a)
6. Use direct proof, proof by contraposition, proof by contradiction, exhaustive proof and proof by cases to prove the validity of theorems. (a)
7. Use set notation to express sets and represent sets graphically using Venn diagrams. (a) 8. Calculate the union, intersection, complement, cardinality, power set, and Cartisian
product of sets. (a)
9. Determine the equality of sets using membership tables and Set Identities. (a) 10. Determine the domain, co-domain, range, type, inverse, and composition of
functions. (a)
11. List and produce the terms of a sequence and find its formulae. (a)
12. Express the sum of a sequence and compute its value. (a) 13. Represent a relation using digraphs and matrices. (a) 14. Analyze the properties and combinations of relations. (a) 15. Find the inverse, complement, composition, and closure of a relation. (a) 16. Apply the basic counting principles, the pigeonhole principle, permutations and
combinations to solve counting problems. (a)
17. Use mathematical induction, strong induction, and the well-ordering property to prove the validity of statements.(a)
Other Important Course Policies:
1. There will be “no scaling / no bonus” marks for this course 2. The lab instructor is your main point of contact regarding the assignments and projects. If
you have any questions at all regarding the assignments, solving the program, how to code it,
syntax errors, you name it, contact the lab instructor or TAs (if applicable). You can also
email them with your questions, but understand that they may not respond immediately. If
you want help via email, start your assignment early. Finally, the Lab Instructors will be
grading the assignments. Therefore, any and all questions you have regarding your grade
should be directed to them. If you feel your grade was unfair and you were not satisfied after
contact the lab instructor, please come to my office hours to discuss.
3. Cheating will not be tolerated. If a student is caught cheating, then the grade on that assignment/exam for all students knowingly involved (the person providing answers as
well as the one taking the answers) will be a 0%. Each program is worth 5%. So if a
student is caught cheating, they get a zero on the program. Furthermore, based on the severity
of the case and if this is the second instance of cheating, the student may be given an "F" in
the course, dismissal from an academic unit, revocation of admission, suspension from the
university, etc. Decision of the Lab Instructor about the cheating will be final.
Since discussion of concepts with other students is often helpful, cheating must be more
clearly defined. So to be very clear, the following items are cheating:
1. copying a segment of code of three lines or more from another student from a printout or by looking at their computer screen
2. taking a copy of another student's work and then editing that copy 3. sitting side by side while writing code for assignments and working together on segments
of code
4. searching online for code/answers and then using that code
In all of these situations, BOTH people responsible, the one from whom the three lines of code
are taken as well as the person who takes those lines of code are engaging in academic
misconduct. For example, if someone makes an electronic copy of their code accessible to
ANYONE in the class (except for themselves) before 48 hours after an assignment is due, they
are automatically culpable of academic misconduct. It does not matter if the recipient of the code
doesn’t use it, uses it a little, or copies it directly.
If you get stuck on an assignment, please ask the lab instructor for help instead of getting help from another student. In our experience, when a student helps another student with an
assignment, they rarely allow the student getting help to "figure out" problems on their own.
Ultimately, this results in a lack of debugging experience for the student receiving help. The goal
of the lab instructor is to provide the facilitation necessary for students to debug and fix their
own assignment rather than simply solving their problems.
4. In order to take a make-up exam, you must request one from the instructor. The instructor will grant requests using his own judgment by applying the following general rule: "Make-up
exams will only be given if the reason for missing the exam was out of the student's control."
For example, being hospitalized unexpectedly is out of a student's control, but oversleeping
or going to happy hour is not out of a student's control. If possible, it is recommended that
the instructor be contacted before the exam.
5. Blackboard will be a crucial element of the course. It is your responsibility to check Blackboard before every class meeting for any updates that may be posted. Additionally,
some clarifications may only be given in class and won’t be posted online at all, so make sure
you keep up with announcements in class.
6. Class Attendance. Class attendance is mandatory and will be taken immediately at the beginning of each class. If you miss more than 25% of the lectures, you will receive a DN.
7. Lab Attendance. Lab attendance is mandatory. If you miss more than 25% of the Labs, you will receive a DN for the lab and cannot take the Lab Final Exam.
Tentative Schedule for Lectures:
Week Dates Sunday - Thursday
1 May 31 – Jun 04 Logic and Proofs
2 Jun 07 – Jun 11 Logic and Proofs
3 Jun 14 – Jun 18 Sets, functions
4 Jun 21 – Jun 25 Sequence and sums, Relations
5 Jun 28 – Jul 02 Relations, Counting
6 Jul 05 – Jul 09 Counting
7 Jul 12 – Jul 16 Mathematical Induction
8 Jul 19 – Jul 23 Mathematical Induction, Revision and Final Exam
***Sunday/Tuesday/Thursday classes will follow this same schedule as well. Of course, there are three lectures each week (but both are shorter).
The lecture content will be the same.
Tentative Schedule for Labs:
Week Dates Topics
1 May 31 – Jun 04
2 Jun 07 – Jun 11
3 Jun 14 – Jun 18
4 Jun 21 – Jun 25
5 Jun 28 – Jul 02
6 Jul 05 – Jul 09
7 Jul 12 – Jul 16
8 Jul 19 – Jul 23