CSI 2101 Discrete Structures, WINTER 2010



Dr. Lucia Moura, Office: STE 5-027

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

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

Office hours: Mondays 2:30-3:30; Wednesdays 1:30-2:30

WEB PAGE: http://www.site.uottawa.ca/~lucia/courses/2101-10/



TUT  Mondays 10:00-11:30 (STE J0106) - tutorials are mandatory

Lec1  Tuesdays 11:30-1:00 (STE C0136)

Lec2  Fridays 1:00-2:30 (STE C0136)


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

Any mass communication with the class is going to be posted under

News/Announcements check regularly. 


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

Edition, McGraw Hill, 2007.


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 (Ch. 1.1,1.2)
  2. Predicate logic (Ch. 1.3, 1.4)
  3. Rules of inference and proof methods (Ch. 1.5, 1.6, 1.7)
  4. Basic number theory and applications (Ch. 3.4, 3.5, 3.6(part), 3.7)
  5. Review of mathematical induction and strong induction. Recursive definitions and structural induction. (Ch. 4.1, 4.2, 4.3)
  6. Program correctness of recursive algorithms and program verification (Ch. 4.4, 4.5)
  7. Solving recurrence relations and complexity of divide-and-conquer algorithms (Ch. 7.1, 7.2, 7.3 (background Ch 3.2,3.3)
  8. Selected problems involving graphs and trees (Selection from Chapter 9, 10 and/or other sources)



Assignments (A)

25 %

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.25*A



Assignment (currently tentative) due dates:

(A) is the average of: 

Due date: 

Assignment 1

Feb 1

Assignment 2

Mar 8

Assignment 3

Assignment 4

Mar 29

Apr 9

Midterm test date: February 9 (Tuesday)
First lecture: January 5 (Tuesday).
Study break: February 15-19.
Last date to drop: March 1.
Last lecture: April 12 (Monday).
Final Exam Period: April 15-30, 2009