About U of O
Prospective Students
News & Events
Alumni & Friends
FrançaisLibrariesMapsKeyword Search and DirectoriesCoursesU of O Home

WonSook LEE

  School of Electrical Engineering and Computer Science

  WonSook Lee's




  CSI 2110: Data Structure and Algorithms

CSI 2110: Data Structures and Algorithms

(3 hours of lectures, 1.5 hours of labs and 1.5 hours tutorial per week, 3 credits)

(Fall, 2019, September 4 - December 3)


Professor WonSook LEE

CBY A509 (tel x2501)



Professor's Office Hour:

TBD at CBY A509


  • TBD


CSI2110 A

Lecture 1

Tuesday 13:00 - 14:20

(MRT) 205

Lecture 2

Thursday 11:30 - 12:50

(MRT) 205

Laboratory 1

Tuesday 10:00 - 11:20

(CBY) B02

Laboratory 2

Monday11:30 - 12:50

(CBY) B02

Tutorial 1

Friday 14:30 - 15:50

(MRN) 150

CSI2110 B

Lecture 1

Tuesday 10:00 - 11:20

(STE) A0150

Lecture 2

Thursday 8:30 - 09:50

(STE) A0150

Laboratory 1

Monday 14:30 - 15:50

(STE) 2060

Laboratory 2

Tuesday 13:00 - 14:20

(STE) 2060

Tutorial 1

Wednesday14:30 - 15:50

(MRT) 218


The concept of abstract data types. Simple methods of complexity analysis. Trees. The search problem: balanced trees, binary-trees, hashing. Sorting. Graphs and simple graph algorithms: traversal, minimum spanning tree. Strings and pattern matching. Prerequisites: ITI1121/ITI1221, MAT1348


    • Students will learn in a systematic way the most commonly used data structures with emphasis on their abstract properties.
    • Understand the typical algorithms that operate on each kind of data structure and learn how to analise their performance.
    • Be able to compare different data structures for solving the same problem, and choose the best.


Michael Goodrich and Roberto Tamassia, Data Structures and Algorithms in Java, Wiley. (6th ed.) 

The textbook is available at AGORA Bookstore.

The textbook has a great web site at http://ca.wiley.com/WileyCDA/WileyTitle/productCd-EHEP002900.html.

Other sources:

D.E. Knuth, Sorting and Searching , vol. 3 of The Art of Computer Programming, Addison Wesley, 1973. 

T.A. Standish: Data Structures in Java. Addison Wesley. 

S.Sahni: Data Structures, Algorithms, and Applications in Java.

Marking scheme:

A maximum of 100 marks will be available. The division is as follows:

A: 3 theoretical + 2 programming assignments

30 marks

M: midterm exam (closed book)

30 marks

F: final exam (closed book)

40 marks

To pass the course you must get at least 50% in the exams. The exact calculation is as follows:

            If (M+F)/70 >= 50% then Grade = A+M+F

            else Grade =(M+F)*10/7

NOTE I: Assignment submission

Late submission is accepted for two days with 50% minus - Within 24 hours, 25% minus and within 48 hours, 50% minus.

Thoery assignment, please submit it to the assignment box. Classroom submission is NOT accepted. It can be uploaded on the blackboard electronically (you may type or write by hand legibly and scan it. Only a single PDF file is accepted).
Programming assignment, please submit it to the Blackboard website. Other kinds of submissions are not accepted.

NOTE II: A student who has an official medical certificate (from the University Health Services) for the absence on the day of the midterm will have the final exam mark scaled up accordingly.  The medical certificate must be obtained on the very day!

NOTE III: Attendance in the lecture, Lab and tutorial will be checked randomly and it may be rewarded as 2% bonus points toward the final grade.

Schedule (tentative): 

Marks for assignments and exams are available in the Blackboard website

Due to
Assignment 1 (Theoretical) Oct 8 (Tue 9 am) morning!
Assignment 2 (Programming) Oct 22 (Tue 9 am) morning!


Assignment 3 (Theoretical)

Nov 19 (Tue 9 am) morning!

Assignment 4 (Programming)

Dec 3 (Tue 9 am) morning!
Final exam

Lecture Schedule (Tentative):

The lecture notes are available in the Brightspace website

  1. Introduction and review.
  2. Stacks, queues, deques.
  3. Analysis of algorithms.
  4. List and iterator ADT.
  5. Priority queues and sorting.
  6. Trees and binary trees.
  7. Heaps.
  8. Maps and dictionaries 
  9. Search trees: binary search trees , AVL trees ), (2-4) trees .
  10. Hash tables
  11. Sorting and their analysis: insertion sort , selection sort, bubble sort, merge sort, quick sort and other sorting methods. 
  12. Graphs: data structures for graphs, traversals, minimum spanning trees, shortest paths.
  13. Strings and pattern matching.
  14. Review.

WonSook Lee - Contact information
Professor WonSook LEE, Ph.D.

School of Electrical Engineering and Computer Science (EECS)
University of Ottawa
800 King Edward Avenue
P.O. Box 450, Stn A
Ottawa, Ontario, Canada K1N 6N5

Office: CBY A509
Tel: (613) 562-5800 ext. 2501
Fax: (613) 562-5664
Email: wslee@uottawa.ca
Web: http://www.eecs.uottawa.ca/~wslee

About U of O | Prospective Students | Students | Services | Academics | Research | News and Events | Alumni and Friends

System requirements | Feedback | Privacy Policy | Accessibility

© University of Ottawa
If you are looking for additional information, please contact us.
Technical questions or comments about this site? Last updated: 2016.09.08