Topics

Week 01

Jan 27
Introduction / What is a Data Structure?
Jan 29
Working with Objects
Syllabus Quiz Due (Thursday 11:59 PM) Quiz

Week 02

Feb 3
Arrays & ArrayLists
A0: DynamicArray Prototype due (Tuesday 11:59 PM) Download · Submit
Feb 5
Array Edits
Self-Study: Helpful Video about Java Generics

Week 03

Feb 10
Class canceled
A1: DynamicArray due (Tuesday 11:59 PM)Download · Submit
Feb 12
Linked Lists

Week 04

Feb 17
Lists Edits & Iterators
A2: Linked Lists due (Wednesday 11:59 PM) Download · Submit
Feb 19
Iterators & Loops Revisited
Midterm 1: Feb 20–22

Week 05

Feb 24
Stacks, Queues & Deques
A3: Iterators (Wednesday 11:59 PM) Download · Submit
Feb 26
SQD Implementations & Applications
Rally Day in afternoon

Week 06

Mar 3
Asynchronously Watch Recursion I (also linked from Moodle)
A4: DIY Calculator (Tuesday 11:59 PM) Download · Submit
Helpful Videos (also on Moodle): Using the Command Line · Shunting Yard Algorithm
Mar 5
Recursion II (No slides, interactive only)

Week 07

Mar 10
Sorting & Searching (Linear/Iterative)
A5: Maze Runner (Tuesday 11:59 PM) Download · Submit
Helpful Video (also on Moodle): Graphics
Mar 12
Sorting & Searching (Recursive)

Spring Break

Mar 17
Spring Break (no classes)
Mar 19
Spring Break (no classes)

Week 08

Mar 24
Intro to Trees
A6: Sorting Cards (Tuesday 11:59 PM) Download · Submit
Mar 26
Tree Implementations
In Class: Fill out final project survey
Midterm 2: Mar 27–29

Week 09

Mar 31
Binary Search Trees
A7: Guessing Game (Tuesday 11:59 PM)
Apr 2
Hash Maps

Week 10

Apr 7
Hash Maps
Apr 9
[Catch up: Sets]
Intro to Graphs!

Week 11

Apr 14
[Implementing Graphs & Trees]
Final Project Prototype Due
Apr 16
[Shortest Path]
A9: DIY Spellchecker (Thursday 11:59 PM)

Week 12

Apr 21
[Heaps]
Apr 23
Computer Science Fair!
Midterm 3: Apr 24–26

Week 13

Apr 28
[Shortest Path]
Apr 30
Semester Review
A10: Heaps Mini Assignment due (Friday 11:59 PM)

Week 14

May 5
Final Exam Period
May 6
Final Exam Period
May 7
Final Exam Period
May 8
Final Exam Period