Course Calendar

Subject to revision!

The resources listed for each day are items I expect you to have read/prepared before class meets.

Please note the scheduled time for the final exam (from the College's final exam scheduling grid), and make sure that your exam for this class doesn't conflict with others in your schedule; I will not be able to accommodate rescheduling your final.


Introduction to the Class and to Team-Based Learning.

Data Structures! What are they, and why do we care? Here is a short blog post on this question, and here is a 6-minute video on the same topic.

Also read the book's "Why this Book?" and "Preface to the C++ Edition."

This course will be organized using the principles of Team-Based Learning (TBL). Read this in order to get a sense of how the class is going to run.

If you want to be able to keep track of your grades during the semester, and to receive emails from me, please fill out this short survey by September 15. (After that date, I will not be adding anyone to the online grading system.)

Here is the email I sent before classes started, and the slides from our first class meeting.

Exercise 0:
Introduction to the Standard Template Library (STL).

Read sections 12.1, 12.2, and 12.4 of C++ Annotations. I do not expect you to absorb everything in 12.4! I want you to start to be aware of what C++ offers — we'll be coming back to this material several times. The tables here offer another perspective on this material.

Read this to get more detailed information about installing g++ and make on your own machine. I'll also be posting information soon about accessing the College's Linux machines, if you prefer to use g++ that way.

Here will be the link to the Exercise 0 instructions.

Unit 1:
Introduction to Data Structures
iRAT and tRAT
Read Chapter 1. The RATs will be on sections 1.1 and 1.2, and we will be talking about the rest of the chapter after the RATs.
Unit 1 Application Activities
Exercise 1:
Choosing Data Structures

Review the documentation for stack, array, set, and unordered_set at the STL reference.

Here are the Exercise 1 instructions.

Today we'll also decide on peer evaluation criteria.

Unit 2:
Array-Based Lists
iRAT and tRAT

Read Chapter 2. The RAT will be on sections 2.1—2.3.

The discussion, particularly the animations, here may help you with section 2.3. Note that this text uses slightly different terminology, but only a bit. Don't worry about the Java code (unless reading it helps you understand!); focus on the animations and the little 'exercises' at the end.

Unit 2 Application Activities
Unit 2 Application Activities
Exercise 2:
Working with Array-based Lists.

Here are the Exercise 2 instructions.

And here is the Project 0 assignment. Email me your solution (see the instructions) by 11:59pm on Wednesday, October 11. Grading details are here.

Unit 3:
Linked Lists
iRAT and tRAT

Read Chapter 3. The RATs will not include questions on section 3.3.

Unit 3 Application Activities

We'll do midterm peer evaluation in class today.

Unit 3 Application Activities
Unit 3 Application Activities
Exercise 3: Working with Linked Lists.
Here is today's exercise.
Unit 4:
Binary Trees and Heaps
iRAT and tRAT
Read Chapter 6.
Unit 4 Application Activities

The questions and animations here might help you with basic binary tree terms and operations.

Midterm Exam. (New Date!)
There will be a link here to a midterm review sheet. The exam will cover Units 1, 2, and 3.
Unit 4 Application Activities
Read Chapter 10.
Unit 4 Application Activities
Project 1 Assigned due 11:59pm, Wednesday, November 15.
Exercise 4: Working with Binary Trees.
Unit 5:
Sorting
iRAT and tRAT
Read Chapter 11. Here is a reading guide. The RAT will cover the whole chapter, but at a superficial level. Focus initially on understanding how the algorithms work, and how they're different from each other.
Unit 5 Application Activities
Unit 5 Application Activities
Project 1 due at 11:59 LAST NIGHT.
Unit 6:
Hash Tables
iRAT and tRAT
Read Chapter 5. Here is a reading guide. Project 2 is assigned here; it's due at 11:59pm on Momday, December 11.
Unit 6 Application Activities
Unit 6 Application Activities
Exercise 6:
Working with Hash Tables.
Here are instructions for today's exercise.
Project 2 due at 11:59 LAST NIGHT.
Final review. Here is a review guide (a work in progress).
Final peer evaluation.