CSC263H – Lecture and Tutorial Notes

Why Lectures and Tutorials Matter

Here is a brief explanation of how we plan to structure lectures and tutorials so that they work together to help you learn the course material.

The lectures allow us to explain new material, how it relates to the rest of the course (and what you've learned in other courses), and to show a small number of examples of applying the material. From a technical point of view, lectures will not cover anything that is not already in the textbook (or that can be found in other texts or online resources). The values of the lectures is that your instructor provides context and motivation for the material, and answers questions that arise while you're learning something new.

Tutorials are where you will practice applying the material to new problems. TAs will be present to answer questions and provide guidance, sometimes in the form of extra examples, sometimes in the form of feedback on your own work. The values of the tutorials is that you get to find out whether or not you are able to apply the material to solve new problems (something you will have to do anyway on homework and tests), with the benefit of someone there who is experienced enough to guide you, correct your misunderstandings, and ensure that you know how to apply what you've learned.

Lectures and tutorials each address a different (but just as important) part of learning the material. Clearly, it doesn't make sense to try to solve problems based on material that you do not even know (that's why lectures are important). But just as clearly, it is not of much use to understand what someone else is doing when they solve a problem, if you cannot yourself solve problems based on the same material (that's why tutorials are important).

We do plan to post brief sample solutions for each tutorial. But beware! Some of you are probably thinking right now: “Hey, I don't even need to show up, I can just work on the problems on my own and then read the solutions.” Behind this thinking lie two traps.

The moral of the story: tutorials are really good for you, and you've already paid for them with your tuition—attend them! :)

Lectures and Tutorials

This page will contain notes and examples from lecture.

Week and Topic Readings Lectures Tutorials
Week 1: Sept 14–18
Admin, Complexity Analysis: review and average case.
Review: Appendices A, C; Chapters 2, 3
Sections 4.5, 5.1, 5.2.
Week 1 slides Tutorial Problems
Tutorial Solution
Week 2: Sept 21–25
Priority Queues and Heaps
Chapter 6
Self-Test: Exercises 6.1-1, 6.1-4, 6.2-4.
Heap Visualization Tool Week 2 slides Tutorial Problems
Tutorial Solution
Week 3: Sept 28–Oct 2
Dictionaries, Binary Search Trees
Part III (introduction), Sections 12.1, 12.2, 12.3.
Self-Test: Exercises 12.2-3, 12.3-1.
Week 3 slides Tutorial Problems
Tutorial Solution
Week 4: Oct 5–9
AVL trees; Augmentation
Problem 13-3, Sections 14.1, 14.2. Self-Test: Exercises 14.1-1, 14.1-2. AVL Visualizer (VISUALGO)
Another AVL Visualizer to try
Week 4 slides
Tutorial Problems
Tutorial Solution
Week 5: Oct 12–16
Hashing
Sections 11.1, 11.2, 11.3 (except 11.3.3). Self-Test: Exercises 11.1-1, 11.2-1, 11.2-2. Week 5 slides Tutorial Problems
Tutorial Solutions
Week 6: Oct 19–23
(MIDTERM Oct 22) Randomization; Quicksort
Chapter 7. Self-Test: Exercises 7.1-1, 7.2-2. Notes on Randomized Algs and Quicksort
Week 6 slides
NO tutorial this week!
Week 7: Oct 26–30
Amortization; Dynamic Arrays
Chapter 17. Self-Test: Exercises 17.1-2. Week 7 slides Tutorial: Amortized Analysis and Midterm Solutions
Week 8: Nov 2–6
Graphs; Breadth-First-Search
Sections 22.1, 22.2. Self-Test: Exercises 22.1-1, 22.1-2, 22.2-1. Week 8 slides
Tutorial Problems
Tutorial Solutions
Week 9: Nov 9–13
Depth-First-Search
Sections 22.2, 22.3. Self-Test: Exercise 22.3-2. Week 9 slides
Tutorial Problems
Tutorial Solutions
Week 10: Nov 16–20
Minimum Spanning Trees
Chapter 23. Self-Test: Exercise 23.1-1, 23.2-2. Week 10 slides
Tutorial Problems
Tutorial Solutions
Week 11: Nov 23–27
Disjoint Sets
Sections 21.1, 21.2, 21.3. Self-Test: Exercise 21.2-2. Week 11 slides
Tutorial Problems
Tutorial Solutions
Week 12: Nov 30–Dec 4
Lower Bounds
Sections 8.1, 9.1. (Chapter 18 intro) Self-Test: Exercise 8.1-1. Week 12 slides
NO tutorial this week!

What's this “self-test” thing? Simple exercises you should attempt after you complete the readings, as a way to check your understanding.
It's okay if you don't know how to answer some of them, but then please make sure to ask questions during lecture, to make sure that you do know the answers by the end!