University of Toronto,
Department of Computer Science
CSC263H Data Structures and Analysis
Students should consult this page at least once a week and check for new announcements.
If you have a question, please check first the FAQ and the forum to see if your question is already answered. Please try to post non-personal questions like clarification requests about assignments on the forum so other students can also benefit from them. If you are sending an email to us please check this note.
- Name: Kaveh Ghasemloo
- Office: SF4306B
- Teaching Assistants:
- Names: Michael Dzamba, Aziz Mezlini, Mohammad Norouzi, Chun Kong Yung
- When: Thursdays 10AM-12PM
- Where: LM161
- When: Tuesdays 10AM-11AM
- Where: LM161
- Office Hours (by TAs)
- When: Tuesdays 11AM-12PM
- Where: BA2230
- Office Hours (by Instructor)
- When: Thursdays 12PM-1PM
- Where: BA2230
- or email the instructor for an appointment.
- Course Website
- Course Forum
- Discussion/Bulletin Board for CSC263H
Teaching assistants will be monitoring the board regularly to answer your questions.
- T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein, "Introduction to Algorithms", 3rd. ed., 2009.
- Errata page for the book.
- Online access to the 2nd edition is available to UofT students through the UofT library.
- We will be using the 3rd edition of the book. Buying a copy is a good investment and is strongly encouraged.
- Supplementary Book
- Goodrich M.T. and Tamassia R., "Algorithm Design, Foundations, Analysis, and Internet Examples", 2001.
- Course Goals
- Data structures are ways of organizing the data involved in computation, suitable for representation in and manipulation by computers. Algorithms are precisely stated, general problem solving methods. Data structures and algorithms are central to computer science. They are also integrally related: neither can be studied fruitfully without knowledge of the other. This course has two goals: First, to survey several important data structures and algorithms; and second, to introduce the basic tools and techniques for the analysis of algorithms and data structures.
- Course Description
- Algorithm analysis: worst-case, average-case, and amortized complexity. Expected worst-case complexity, randomized quicksort and selection. Standard abstract data types, such as graphs, dictionaries, priority queues, and disjoint sets. A variety of data structures for implementing these abstract data types, such as: balanced search trees, hashing, heaps, and disjoint forests. Design and comparison of data structures. Introduction to lower bounds.
- (from undergraduate handbook)
- Tentative Course Outline
- Review of time complexity of algorithms and asymptotic notation; upper and lower bounds on algorithm complexity; Abstract data types; Priority queues; Dictionaries; Binary search trees; Balanced search trees; Augmenting data structures; Hashing; Disjoint sets; Amortized analysis; Dynamic tables; Graphs; BFS; DFS; MST; Randomized algorithms (QuickSort); Lower bounds (decision trees and lower- bounds for comparison based sorting).
CGPA 1.5/enrollment in a CSC subject POSt.
- The prerequisite requirement is strictly enforced in this course.
- Marking Scheme
Marking Scheme Title Points Notes Assignments 40
4 assignments, each worth 10 points.
Tests 20 Take Home 10
Optional, see the instructions below.
Final Exam 40
To pass this course you must get at least 40% in the final exam.
Anyone with score above 100 points will get 100 points (the extra points are bonus).
- Course Information Sheet
FAQ and General Remarks
- Email is the preferred way to contact the instructor and the teaching assistants for personal issues. For non-personal issues please try to post on the forum so other students can also benefit from them.
- Feel free to email the instructor regarding any course related issues.
- Please use only the email addresses provided in the course info section.
- Please use informative subject lines for your emails and include "[CSC263]", e.g. "[CSC263] a question about asymptotic complexity" or "[CSC263] clarification request for assignment 1". We may miss emails without subject line starting with "[CSC263]".
- Please send email only from your official University of Toronto email address when contacting us if you want to receive a reply.
- We will try to answer your emails in 3 working days. Please do not rely on getting same-day answers.
- How to ask questions outside lectures/tutorials
- Please try to post your question on the forum as much as possible so other students can also benefit from them.
- You can also ask questions by coming to an office hour or emailing the TAs or the instructor.
- The Undergraduate Help Center (located in BA2230) is open from Monday-Thursday 4-6pm. You can drop by the Help Center to ask questions.
- You can also post questions on online Q&A sites like Computer Science - StackExchange.
- Accessing files in the restricted areas of this website
- If needed use "csc263h" and "fall2012" to access the files on this website.
- Late homework policy
- No late homeworks will be accepted.
- If you miss a homework deadline because of a medical or personal emergency, you must fill out the Special Consideration Form. In case of a medical emergency, you must also submit the U of T Student Medical Certificate, completed and signed by your physician. Please check the policy and information about Student Medical Certificate on UofT Health Services.
- If we judge your reason for missing the deadline to be valid, we will use the average mark you achieved in other homeworks as your mark for the missed homework.
- Missed test policy
- If you miss the test due to a medical or other serious emergency, get in touch with your instructor immediately, and fill out the Special Consideration Form. In case of a medical emergency, you must also submit the U of T Student Medical Certificate, completed and signed by your physician. There will be no make-up test, but if we consider your reason for missing the test to be valid, we will use your final examination mark to compute your mark for the missed midterm test.
- Tutorial attendance
- Attendance in tutorials is as mandatory as attendance in lectures. A formal attendance is not taken in neither. However, there will be new material that is presented only in tutorials and not discussed in the lectures for which you are responsible and in which you may be tested in homeworks or exams.
- The prerequisite requirement is strictly enforced in this course.
- If you do not satisfy it, you must contact the instructor and submit a petition for a waiver within the first week of class.
- You must be already in the list of the students provided by the undergraduate office (UGO), we can only give a waiver to students on the list. If you are on the list and not satisfy prerequisite you should receive an email from them. If you haven't please contact the UGO directly.
- Your petition should include the following information:
- Your full name,
- Your student number,
- The specific prerequisite that you are requesting a waiver for,
- The reason for requesting a waiver,
i.e. explain why you need a waiver and why you have not completed the prerequisite,
- Explain why you know the material covered by the prerequisite.
- We will grant a waiver only in exceptional cases where we have enough confidence based on the information you have provided that you will not suffer in this course because of not completing the required prerequisite. In addition, you should provided good reasons for why you have not taken the prerequisites before taking this course. Please submit one email explaining all relevant information, the decisions are final, we will not consider any information provided later. Submitting a request doesn't mean that you will receive a waiver. If you are making any plans, you should do so assuming that your request is going to be rejected.
- If you receive a waiver it will be your responsibility to learn any material needed from the prerequisite. Throughout the course the assumption will be that students are familiar with material from the prerequisite.
- The University of Toronto is committed to accessibility. If you require accommodations or have any accessibility concerns, please visit Accessibility Services as soon as possible to make any required arrangements.
- Remark request policy (for assignments/test)
- You can ask for remarking if you believe there is a mistake in the marking. If your request concerns a simple addition error or similar kind of errors, see the instructor.
- For any other kind of remarking request, you must submit your request in written form. To submit a remark request, please print and fill the remark request form, attach it to your paper, and give it to the instructor. In the explanation section of the form, specify the question and the part you are requesting a remarking, and explain briefly and clearly which part of marking you disagree with and why.
- You should submit your remark request at most one week (7 days) before the final exam. Remark requests after this date will not be accepted.
- We will look at all remark request, however please try to submit a remark request only when you believe the remarking will result in a significant increase your mark, e.g. please don't submit a remark request if the total increase that can result from your remark request is less than 1% of your final grade.
- Reminder: A remarking request can cause the overall mark to stay the same, increase or decrease: we may re-examine every question in the paper and if new mistakes are found they can also change the marking up or down accordingly. Please submit a remarking request only if: (a) you have read and completely understood our posted solution set, and (b) you still think that your solution is correct and was mistakenly marked as incorrect. We rarely if ever accept remarking requests of the type ``yes, my solution is not correct, but I think you took off too many marks for this mistake'': The marking scheme was decided and applied as uniformly as possible to all students. If you believe a marking scheme is too harsh, it is still fair as long as it is consistently applied, we will adjust the marks (by adding points to everyone) if the marks are unexpectedly low because of marking scheme being harsh.
(Sept. 11, 13)
||1, 2, 3||Bounds|
(Sept. 18, 20)
||6||Binomial heaps||A1 out|
(Sept. 25, 27)
(Oct. 2, 4)
||14 (using AVL in place of RB)||AVL trees||A1 due,
(Oct. 9, 11)
(Oct. 16, 18)
(Oct. 23, 25)
(Oct. 30, Nov. 1)
(Nov. 6, 8)
(Nov. 13, 15)
||23, 35.2||MST||A3 due,
(Nov. 20, 22)
||5.1-3 (5.4?), 7.1-3 (7.4?)|
(Nov. 27, 29)
||8.1, 9.1||Min-Max||A4 due|
- The course is finished. I hope that you have enjoyed the course. Have a great holiday.
- Dec. 14, 2012
- Concerns about the final exam:
I know that some of you are concerned about the final exam and feel that you haven't done well. I haven't looked at the papers yet, however I expect that in general the marks for final exam to be considerably better than those for the midterm. However, as I said before if I see that the marks for the final exam are lower than I am expecting, I will adjust the marks by adding points to everyone to make sure the marks are reasonable, so don't worry too much about the marks.
I will post the marks for takehome by next weekend to CDF.
- Picking up assignments/tests:
If you haven't picked up your assignments/test papers, you can do so on next Tuesday. I will be in my office from 1PM-3PM.
- Dec. 12, 2012:
- Office hour
Due to conflicts we have to move the office hour. The office hour will be held 12PM-3PM in the help center if it is possible. If we can't use the room then we will move to my office (SF4306B).
- Picking up assignment/test
If you haven't pick up your papers you can drop by during the office hour to pick up your assignments.
- Remark requests
The time for submitting remark requests for A3, A4 is extended till next Tuesday. Please follow the instructions for asking a remark request.
- Marks on CDF
Marks posted on CDF are raw marks. In other words, if you have submitted a remark request or special consideration request they are not applied to the marks posted there.
Don't forget the final exam is Friday 9AM-12PM .
If you have missed the tutorial on lower-bounds, you can find the example here.
- Dec. 4, 2012:
- Course evaluations
Online course evaluations are in process! And in response to student requests, we have extended the deadline for your responses to Sunday, December 9th.
To complete your course evaluations, please check the email account associated with your UTORid/ROSI account (the email account from which you receive official university communications) for a direct link to your course evaluations. This email will have arrived on Friday, November 23 from “Course Evaluations” (email@example.com).
If you have not received this email and have your utoronto.ca or mail.utoronto.ca email address set to forward your emails to a Gmail (or similar) account, please log in directly to your utoronto.ca or mail.utoronto.ca email account to check for an email from “Course Evaluations” (course.evaluations AT utoronto.ca).
Course evaluations are very important. They are used in the tenure and promotion process for your instructors, and instructors use the results to change and improve courses. The Faculty of Arts & Science also has a long history of sharing evaluation results with students, to help them in making course selections. Make sure that you provide your input on teaching at the UofT!
- Nov. 30, 2012:
There will be a tutorial next week. The topic of the tutorial will be lower-bounds. This tutorial is important, there will be a question about lower-bounds in the final exam, so you should attend this tutorial. I have also posted 4 video lectures by Professor Faith Ellen about lower-bounds that she has prepared for CSC265, around 25min in total, I strongly recommend watching them, however keep in mind they are more advanced than what we need, they are designed for the enriched version of this course.
- Final Exam:
There are going to be 9 questions in the final exam, the questions will be similar to questions from exams from previous years and assignments (there won't be a question similar to question 1 in the test), the exam is going to be 3 hours long, you can bring an aid sheet similar to the one for the test (details), there will be roughly one question from each topic.
- Office Hours:
The weekly office hours by the instructor will continue during the study and exam period, there will be one on Dec. 6 and another one on Dec. 13.
Remarking request form is available.
- Nov. 29, 2012:
- If you haven't picked up your test paper or assignments A1, A2, A3, you can pick them up today from my office until 3PM or next week during the tutorial or office hours.
- Oct. 25, 2012:
The test is next week. There will be 3 questions. The duration of the test will be one hour. Please be on time. The difficulty of the questions will be similar to the questions you have solved in the assignments. For sample questions please check the links section.
- I will be holding an extra office hour next week on Monday afternoon 2PM-3PM. The location will be the same as usual (Help Center, 2nd floor of Bahen Center). Feel free to drop by to ask questions.
- Picking up your assignments:
- If you haven't picked up yout first assignment yet, you can do so after the lecture or during my office hour.
- The second assignment is being marked and hopefully I can return it to you on Monday.
- Oct. 14, 2012:
Seeking online help in doing assignments is forbidden:
I have seen a student has posted an assignment question online. Remember that you are not allowed to seek help in written form. That means you are not permitted to post assignment questions online and/or seek help over the Internet in solving them.
The goal of the assignments is to make sure you understand the course material and learn problem solving skills. You should spend some time thinking about assignments alone and try to do the assignment on yourself before seeking help from any other resource.
If you don't spend time thinking about assignments yourself it is very likely that you will not learn these problem solving skills. As a result you will have trouble in the test/final exam. Note that to pass this course you have to get at least 40 out of 100 in the final independent of how you have done in the assignments.
Moreover if I see that academic dishonesty is endemic I will have to take measures to make sure the final grades faithfully reflect the knowledge and skills of students. For example, I may need to make the questions on the test/final more difficult.
Additionally, violating the course's policy is an academic offense. Any case that I will become aware of will be dealt with according to university's academic offense policy. That means I have to report it to the dean (and they will decide about what disciplinary action will be taken, and punishment can go as far as being expelled from university, see Advice About Academic Offences for more information about the process).
I strongly advice you to read the Policy Regarding Plagiarism and Academic Offense and make sure you follow it. If you are in doubt about what is permitted and what is not permitted feel free to ask them on the forum or by email.
- Oct. 4, 2012:
- Accessibility Services has asked me to post the following request:
There is a student in this class who requires a volunteer notetaker as an accommodation for a disability. By signing up and posting your notes, you can make a significant difference for this individual’s capacity to fully participate in this course. To sign up go to: http://www.studentlife.utoronto.ca/accessibility/pcourselist.aspx or come in person to Accessibility Services 215 Huron St. Suite 939.Please also check Note-Taking Services: Online.
Many students notice the quality of their notetaking improves through volunteering.
You will also receive a certificate of recognition.
- Sept. 19, 2012:
- Background information for the course: Please skim through the appendices of the book to make sure you know the background we will need in this course and can follow the lectures. You should know almost all of the topics in the appendices from previous courses you have taken and it shouldn't take you much time to remind them to yourself. Feel free to ask questions about them on the course forum if you have trouble or some part is not clear.
- Sept. 17, 2012:
- Tentative course time table is now available.
- Prerequisite waiver: I have gone over the list of students requiring a prerequisite waiver provided to me by the undergraduate office (UGO) and have informed them about my decisions. You can contact the office to check if you have got a waiver. You should have received an email from UGO if you were on the list. Note that I cannot provide a waiver for people who are not on the list provided to me by UGO. Please contact UGO.
- Sept. 13, 2012:
- The course website is now online. I still need to update a few things (e.g. how to submit assignments, course time table), don't forget to check the website next week before the tutorial.
- Prerequisite waiver: If you have emailed me to get a prerequisite waiver, I will check them over the weekend. I will let you know if receive a waiver by next week. I will grant a waiver only in exceptional cases where I have enough confidence based on evidence you have provided that you will not suffer in this course because of not having the required prerequisites. In addition, you should have provided good reasons for why you have not taken the prerequisites before taking this course.
- Note: AFAIK, the course will be available in the next semester (Spring 2013) (you should check with the undergraduate office to be sure).
- Sept. 11, 2012:
- Today's tutorial will be an introductory session to the course. I will explain logistics (marking scheme, etc.).
- We will also review chapters 1, 2, and 3 from the textbook (CLRS). Please go over the chapters to make sure you understand them. Feel free to ask question if something is not clear for you or have trouble understanding any part.
- Sept. 10, 2012:
- Course starts on Sept. 11.
- Students should check this page regularly (at least once a week) for new announcements.
Assignments must be typed and a PDF copy must be submitted for marking using CDF's submit command or website.
The filename must be the assignment's name followed by "sol", e.g. your submission for the assignment "A1" must be "A1sol.pdf".
(Similarly the filename for your TeX file must be "A1sol.tex".)
Using LaTeX is strongly encouraged. If you use LaTeX (use sample.tex and csc_assignment.cls) then you will have two extra days to submit your assignment (i.e. Thursday in place of Tuesday). You have to submit both the PDF and TeX file to use the extension. Check also the LaTeX links section. If you are using another program to write your assignment, the output must be similar to the following sample: sample.pdf.
No late assignments will be accepted.
- Assignment 1 (10 points)
- Due: Tuesday, Oct. 2, 10PM
- Topic: Review, Heaps (6)
- Questions: A1.pdf
- Solutions: A1sol.pdf
- Marker's Remarks: A1mr.pdf
- Assignment 2 (10 points)
- Due: Tuesday, Oct. 16, 10PM
- Topic: BST (12, AVL), Augmentation (14)
- Questions: A2.pdf
- Solutions: A2sol.pdf
- Marker's Remarks: A2mr.pdf
- Assignment 3 (10 points)
- Due: Tuesday, Nov. 13, 10PM
- Topic: Hash (11), Disjoint Sets (21), Amortized Analysis (17)
- Questions: A3.pdf
- Solutions: A3sol.pdf
- Marker's Remarks: A3mr.pdf
- Assignment 4 (10 points)
- Due: Tuesday, Nov. 27, 10PM
- Topic: Graphs (22.1), BFS (22.2), DFS (22.3), MST (23.1)
- Questions: A4.pdf
- Solutions: A4sol.pdf
- Marker's Remarks: A4mr.pdf
- Assignment 5 (0 points, sample questions for practice)
- Due: None
- Topic: MST (23.2), Probabilistic (5)/Randomized Algorithms(7), Lower-Bounds (8.1, 9.1)
- Questions: A5.pdf
- Solutions: A5sol.pdf
- Marker's Remarks: NA
- Take Home (10 points)
- Due: Tuesday, Dec. 4, 10PM
- Questions: See the instructions below.
- Sample file: THsample.tex, THsample.pdf
- For takehome you have to write a short (2 pages long) brief high-level essay (no need for details) about an advanced data structure. The main goal is to get you familiar with some advanced data structure. You should explain the ADT, the running time of operations, comparison with other similar data structures (advantages and disadvantages), an application, and a high-level idea of how the data structure is implemented. Select an advanced data structure as your topic (something which we will not cover in this course) from the references listed below and send an email to the instructor about our topic and a link to your reference. Each topic can be selected a limited number of times. You should get a confirmation email form the instructor before starting working on a topic. (Other references might also be acceptable.)
- WikiBook: Fundamental Data Structures by David Eppstein
- Advanced Data Structures by Erik Demaine and André Schulz
- Advanced Data Structures by Jeff Erickson
Takehome Topics Topic Reference Selected by van Emde Boas tree 1 B-tree 4 B+ tree 4 Bloom filter 4 Fibonacci heap 4 Red–black tree 4 Scapegoat tree 4 Splay tree 4 Tango tree 4 Skip list 4 Fusion tree 3 Soft heap 4 Pairing heap 1 Treap 3 Trie 4 Radix tree 1 Suffix tree 4 Exponential tree Other Topics...
Final Examination (40 points)
- Final Examination (40 points)
- When: Friday, Dec. 14, 9AM-12PM
- Where: SS1083 & SS1085, Examination Locations
- Questions: FE.pdf
- You are permitted to bring a 8.5"x11" aid sheet, handwritten on both sides.
- Faculty of Arts and Sciences 2012 December Examination Schedule
- Faculty of Arts and Sciences 2012 Examination Schedule
- Faculty of Arts and Sciences Examination Reminders
- Faculty of Arts and Sciences Examination Rules
Policy Regarding Plagiarism and Academic Offense
University of Toronto has strict rules against plagiarism. You must not submit work belonging to others as yours. It is considered an academic offense and will be dealt with accordingly. The work you submit must be your own, if you are going to get help from any resource (books, online resources, people including other students, ...) other than the course material (textbook, course lecture notes) you must acknowledge them explicitly and give proper credit to them in your work.
For this course, you have the permission to discuss and work on assignments together with other students, but you must prepare the written solutions alone. It is fine to get help to understand, but the work you submit must represent your understanding in your words. You must be able to explain what you have submitted to the instructor orally without any previous preparation or notice during the semester. To make sure that you are writing what you have understood in your own words, don't take any notes from your discussions, wait a few hours before writing any notes related to them, and do not show your written answers to other students before due dates. Copying assignments and allowing others to copy your assignment are strictly forbidden.