CSC263H: Data Structures and Analysis – Fall 2017

Overview

Welcome to the course web-page for the fall 2017 term of CSC263H, Data Structures and Analysis. Here is the course description:

Algorithm analysis: worst-case, average-case, and amortized complexity. 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, implementation, and comparison of data structures. Introduction to lower bounds.

Make sure to read and understand the course information sheet. Check the discussion board frequently to make sure you receive any course announcements.

General information
Instructor:
  • Fatemeh Panahi
  • Email: fpanahi (at) cs (dot) toronto (dot) edu
  • Office: BA 3219
Teaching Assistants:
  • Robin Swanson
  • Sasa Milic
  • Morgan Shirley
  • Roleen Nunes
  • Mohammad Amin Beiruti
  • Tristan Aumentado-Armstrong
  • Ruowei Jiang
  • Ziqiao Meng
Section LEC0101, LEC2003 C0201, LEC2000, LEC2201
Lectures Wed 12:00-14:00 (BA 1190) Wed 15:00-17:00 (EM 001)
Tutorials Fri 10:00-11:00 (BA 1190) Fri 13:00-14:00 (EM 001)
Office Hours: Mon 09:00 - 10:30 (BA 3219) Mon 10:30 - 12:00 (BA 3219)
Textbook

    Introduction to Algorithms, Third Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein is available from the University of Toronto Library.

Course goal

    Data structures are ways of organizing the data involved in computation, suitable for representation in and manipulation by computers. Algorithms are precisely-stated 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 forum
  • All course materials and announcements will be posted in Piazza. We will be monitoring the course forum regularly to answer your questions.
Assignment submission system
  • All assignment submissions will be done electronically, using the MarkUs system. (You can logon to MarkUs using your CDF login and password, starting the first lecture date.)
  • All grades will be released in Markus and will be announced in Piazza.
Participation

You should not expect that you would learn course materials only by participating in lectures. The major part of the learning happens outside of the class by studding the materials and working on the assignments and exercises. But yet, lectures and tutorials are both important parts of your learning. The lectures' goal is to provide context and motivation for the materials, and to answer questions that arise while you're learning something new. Tutorials' goal is to practice applying the materials you've learned into new problems. The more problems YOU solve, the deeper understanding you gain. TAs will be present to answer questions and provide guidance when something does not make sense.

Why should you attend the lectures?
  • Studies show that students who attend the lectures, they’ll remember the course materials easier and longer. Because emotional involvement makes the brain remember better! Participating in the lectures, forces you to pay close attention to the course concepts and think critically about the subject at hand. This is a good way to remember the course materials over the course of the semester and it sure beats having to cram at the last minute!

  • If you miss lectures and try to learn the material on your own by reading the textbook, you would not be missing any of the technical content of the course. But you may not see all of the connections that run throughout the material, and you may find some of the topics difficult to understand without someone to point out some of those connections.

  • Participating the lectures is a good way to get to know your fellow students. You’ll also catch the Instructor's attention. It shows that you’re open and sociable.

  • Last but not least, you’ll have the chance to participate in the course's fun games and win little prizes as shown here! :)

Group work

"Two heads are better than one."

  • We strongly encourage you to work in a group for your assignments. Group work can help you develop a host of skills that are increasingly important in the professional world. You would share diverse perspectives and pool knowledge and skills. Both explaining and listening to the concepts would result in a deeper understanding of the materials.

  • Note that group work does not mean that you split the tasks in a way that you work on smaller parts of the assignments, individually. Everyone should be involved in working on all the questions and all the assignments.