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


WEB PAGE: www.site.uottawa.ca/~lucia/courses/2110-24/
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: STE5027
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 STE G0103
Lecture A00: Thursday 11:30AM - 1:00PM STE G0103
students attend the tutorial:
Tutorial A03: Friday 5:30PM-7:00PM MHN 257
students attend one of the labs:
Laboratory A01: Tuesday 10:00AM - 11:30AM CBY B02
Laboratory A02: Monday 11:30AM - 1:00PM CBY B02

CSI2110B: Lecture B00: Tuesday 10:00AM - 11:30AM SMD 224
Lecture B00: Thursday 8:30AM - 10:00AM SMD 224
students attend one tutorial:
Tutorial B03: Monday 4:00PM-5:30PM room VNR 2095
Tutorial B04: Monday 1:00PM-2:30PM room MNO E218
students attend one of the labs:
Laboratory B01 Monday 2:30PM-4:00PM STE0131
Laboratory B02 Tuesday 1:00PM-2:30PM STE 2060

CSI2110D: Lecture D00: Monday 10:00AM - 11:30AM FSS 1006
Lecture D00: Wednesday 8:30AM - 10:00AM FTX 232 SMD 428 (new!)
students attend one tutorial:
Tutorial D03: Friday 5:30PM-7:00PM room MRT 218 MHN 257 (join Tutorial A03)
students attend one of the labs:
Laboratory D01 Tuesday 11:30AM-1:00PM STE2060
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. Graphs, graph traversals, shortest path algorithms, minimum spanning trees
  11. Hash tables
  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/class/tutorial participation or extra activities (specific bonus opportunities to be announced by professor)
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%  Sunday - October 27 10:00-12:00
Student Last Name A-K: room CRXC140
Student Last Name L-Z: room CRXC240
Final Exam (E) 40%  To be scheduled by uottawa in exam period Dec 5-18

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


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.