CSI 2101 Discrete Structures, WINTER 2012



Lucia Moura, Office: STE 5-027

email: lucia@eecs.uottawa.ca  (Your email message must have in the 

subject line "CSI2101 <student full name>" or it may not be read)

Office hours: Mondays and Fridays 1:15PM-2:15PM

WEB PAGE: http://www.eecs.uottawa.ca/~lucia/courses/2101-12/



Lec1  Mondays 11:30-1:00 (MRT 250)

TUT  Tuesdays 4:00-5:30 (FTX 133) - tutorials are mandatory

Lec2  Thursdays 1:00-2:30 (MRT 250)


You are responsible for reading the course's policies on plagiarism, remarking, late assignments and missed midterm.


Kenneth H. Rosen, Discrete Mathematics and Its Applications, Sixth or Seventh 

Edition, McGraw Hill, 2007 or 2012. (references given to 6th edition as it was voted the official version by vast majority of students)


CSI2101 Discrete Structures  (3,1.5,0) 3 cr.

Discrete structures as they apply to computer science, algorithm analysis and design. Predicate logic. Review of proof techniques; application of induction to computing problems. Graph theory applications in information technology. Program correctness, preconditions, postconditions and invariants. Analysis of recursive programs using recurrence relations. Properties of integers and basic cryptographical applications. Prerequisite: MAT1348.



Discrete mathematics and structures form the very foundation for computer science, and are essential in every branch of computing.  In MAT1348 (discrete mathematics for computing) you have been introduced to fundamental problems and objects in discrete mathematics. In CSI2101 (discrete structures) you will learn more advanced concepts in this area, and at the same time increase your knowledge of  how to apply them to various types of problems in computing. While learning how to analyse an algorithm, prove the correctness of  a program, model a network problem with graphs or use number theory in cryptography, you will be sharpening your mathematical skills by practicing     problem solving, modeling, logical reasoning and writing precise proofs. 



  1. Introduction to discrete structures and review of propositional logic
  2. Predicate logic
  3. Rules of inference and proof methods
  4. Basic number theory and applications
  5. Review of mathematical induction and strong induction. Recursive definitions and structural induction.
  6. Program correctness of recursive algorithms and program verification
  7. Solving recurrence relations and complexity of divide-and-conquer algorithms
  8. Selected problems involving graphs and trees



Assignments (A)

20 %


5 %

Midterm exam (M)

25 %

Final exam (F)

50 %

Grade (G)

100 %


Final Grade (G): 

if (0.25*M + 0.50*F)/0.75 < 50% then G=(0.25*M + 0.50*F)/0.75  

if (0.25*M + 0.50*F)/0.75>= 50% then G=0.25*M + 0.50*F + 0.20*A + 0.05 *Q



Assignment (currently tentative) due dates:

(A) is the average of: 

Due date: 

Assignment 1

Thursday Feb 9

Assignment 2

Thursday Mar 15

Assignment 3

Assignment 4

Thursday Mar 22

Thursday Apr 5

Midterm test date: Thursday March 1st (room to be announced)

First lecture: January 9 (Monday).
First tutorial: January 10 (Tuesday).
Study break: February 19-25.
Last date to drop: March 16.
Last lecture: April 5 (Thursday).
Final Exam Period: April 11-24, 2012