CSI2110 A&B&D Data Structures and Algorithms (Fall 2025): course description


WEB PAGE: www.site.uottawa.ca/~lucia/courses/2110-25/
ONLINE
PLATFORM:
Virtual Campus: LMS Brightspace
Virtual campus area will be activated the week the course starts.
All contact lectures/tutorials/labs are in-person unless otherwise specified in virtual campus.
PROFESSOR: Lucia Moura
email: lmoura@uottawa.ca
TO ENSURE YOUR EMAIL IS READ AND PROCESSED,
PLEASE START THE SUBJECT LINE WITH: "CSI2110" and continue the subject line with a 2-5 word descriptive subject.
Proceed with: greeting; get to the point with all relevant info; closing; name & student number.
OFFICE HOURS with Professor: Location: SITE-5027
Time: Tuesdays 11:40-12:40; Thursdays 10:10-11:10
There are more office hours with TAs (schedule in brightspace)
TA CONTACTS: TA names and contact, for each lab and DGD (see brightspace)
SCHEDULE: MASTER SCHEDULE (what is covered in lectures, labs, tutorials): see brightspace
CSI2110A: Lecture A00: Tuesday 1:00PM - 2:30PM STEM 224
Lecture A00: Thursday 11:30AM - 1:00PM STEM 224
students attend the tutorial:
Tutorial A03: Friday 5:30PM-7:00PM MRT 218
students attend one of the labs:
Laboratory A01: Tuesday 10:00AM - 11:30AM CBY B02
Laboratory A02: Monday 11:30AM - 1:00PM SITE 2060

CSI2110B: Lecture B00: Tuesday 10:00AM - 11:30AM SMD 425
Lecture B00: Thursday 8:30AM - 10:00AM SMD 425
students attend one tutorial:
Tutorial B03: Monday 4:00PM-5:30PM room HNN 013
Tutorial B04: Monday 1:00PM-2:30PM room MRT 256
students attend one of the labs:
Laboratory B01 Monday 2:30PM-4:00PM STE 2060
Laboratory B02 Tuesday 1:00PM-2:30PM STE 2060

CSI2110D: Lecture D00: Monday 10:00AM - 11:30AM FSS 1030
Lecture D00: Wednesday 8:30AM - 10:00AM CRX C020
students attend one tutorial:
Tutorial D03: Friday 5:30PM-7:00PM room FTX 147A MRT 218 (join Tutorial A03)
students attend one of the labs:
Laboratory D01 Tuesday 11:30AM-1:00PM STE0130
Laboratory D02 Tuesday 10:00AM-11:30AM STE 0131 CBY B02 (join Laboratory A01)

Policies
  • Policy on plagiarism and Policy on missed midterm (please consult content section GENERAL INFO in brightspace to familiarize yourself with these policies)

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

COURSE
OBJECTIVES:
  • 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 and algorithms for solving the same problem, and choose the best.
COURSE
TOPICS:

  1. Introduction, review of arrays and linked lists.
  2. Analysis of algorithms.
  3. Stacks, queues, deques.
  4. Lists
  5. Trees and binary trees.
  6. Priority queues and sorting.
  7. Heaps.
  8. Maps and binary search trees
  9. AVL trees; 2-4 trees
  10. Hash tables
  11. Graphs, graph traversals, shortest path algorithms, minimum spanning trees
  12. Merge sort, quick sort and comparing sorting methods.
  13. Linear time sorting: bucket sorting, radix sorting

MARKING
SCHEME:
15 marks (A) Written Assignments
15 marks (P) Programming Assignments
30 marks (M) Midterm test
40 marks (F) Final Exam
2 marks (B) Bonus: Up to 2% total may be earned on bonus points for lab participation
100 marks (G) Grade

A minimum of 50% in the weighted grades of Midterm test and Final Exam are required to pass the course according to formula:
if (M+F)/70 >= 50% then G= A+P+M+F+B
else G=(M+F)*100/70


IMPORTANT
DATES:


weight: due date: (note dates are tentative; correct date in virtual campus)
Written Assignments (A) 15%  4 assignments (dates to be determined)
Programming Assignments (P) 15%  2 programs (P1: due October; P2: due November; dates to be confirmed)
Midterm Test (M) 30%  Saturday October 25 14:00-16:00 (rooms in MNT/MRT to be announced)
Final Exam (E) 40%  To be scheduled by uottawa in exam period Dec 4-17

Dates from the University of Ottawa Academic Calendar:
First lecture: Wednesday September 3 (D00) Thursday September 4 (A00,B00)
First tutorial: Friday Sep 12 (A03, D03), Monday Sep 15 (B03, B04).
First lab: Monday Sep 8 (A02, B01), Tuesday Sep 9 (A01, B02, D01)
Reading Week: October 12-18 (includes Thanksgiving holiday)
Last date to drop: November 14
Last lecture: Monday Dec 1 (D00), Tuesday Dec 2 (A00, B00)
Exam period: Dec 4-17


OUTSIDE RESOURCES: STATEMENT ON RESOURCES USED FOR COMPLETING YOUR TASKS:
Programming, analyzing & designing algorithms and data structures are important skills in your computer science education. They are important for your learning and for you to follow more advanced courses in your degree. These skills are valued in the workplace and often tested in job interviews. This course offers ample opportunity for you to learn and master these skills. It is very important for your learning that you do your assignments on your own, and consult teaching assistants and the professor if you need help along the way. They will give you hints, but will not solve the problem for you. This is the only way to get better at this craft; like a puzzle, if you look at a solution, you miss developing problem-solving skills, which is one of the main goals of the course.
Written assignments, programming assignments, tests and labs MUST BE SOLVED ON YOUR OWN without consulting an outside resource that provides a solution to a question you have been asked. Examples of OUTSIDE RESOURCES THAT YOU MUST NOT USE are: generative AI (e.g. chatGPT, etc), a website that has published a solution to the question you have been asked, a web tutoring service or a programming forum where you or someone else asks another person to solve the problem. Violating this rule is considered plagiarism. When in doubt if a resource or aid is acceptable, consult the professor, and in a situation where a resource is used, please cite the resource and explain the usage together with the work you hand in.