Skip to main content
You can >watch recordings of the Fall 2023 lecture videos online.

You can >watch recordings of the Spring 2024 lecture videos online.

Recordings are saved on Panopto and require a BMC/HC login.

The lecture schedule will be updated as the term progresses.

Pre-course

Make sure you are registered for the course Gradescope and Piazza.

Please complete Lab00 before the first lab meeting.

Part I

Date Topic Reading Assignment
Mon, Jan 22, 2024 Lecture 1
Java Review [slides]
Chapter 1
Lab00 - Command Line, Unix, Vim
Lab01 - Exceptions & I/O
Wed, Jan 24, 2024 Lecture 2
Inheritence
OOP
Arrays [slides]
Chapter 2, Chapter 3.1, Chapter 7.2
Sun, Jan 28, 2024
HW00 - Arrays & Classes (Due Thu, Feb 1, 2024)
Mon, Jan 29, 2024 Lecture 3
Generics [slides]
Chapter 2.5
Lab02 - Inheritance, ExpandableArray
Wed, Jan 31, 2024 Lecture 4
LinkedList [slides]
Chapter 3
Sun, Feb 4, 2024
HW01 - ArrayList & Inheritance (Due Thu, Feb 8, 2024)
Mon, Feb 5, 2024 Lecture 5
FancyLinkedList [slides]
Chapter 3
Lab03 - LinkedLists
Wed, Feb 7, 2024 Lecture 6
Algorithm Analysis [slides]
Chapter 4
Sun, Feb 11, 2024
HW02 - LinkedLists (Due Sun, Feb 18, 2024)
Mon, Feb 12, 2024 Lecture 7
Stacks [slides]
Chapter 6.1
Lab04 - Interfaces
Wed, Feb 14, 2024 Lecture 8
Stacks & Junit [slides]
Chapter 6.2-6.3
Sun, Feb 18, 2024
HW03 - Stacks & Queues (Due Thu, Feb 22, 2024)
Mon, Feb 19, 2024 Lecture 9
Queues
Lists & Iterators [slides]
Chapter 7
Lab05 - Stacks
Wed, Feb 21, 2024 Lecture 10
Iterators, Recursion & Binary Search [slides]
Chapter 5
Sun, Feb 25, 2024
HW04 - Binary Search (Due Thu, Feb 29, 2024)
Mon, Feb 26, 2024 Lecture 11
Trees [slides]
Chapter 8
Lab06 - Iterators & ArrayList (Due Thu, Feb 29, 2024)

Wed, Feb 28, 2024 Lecture 12
Tree Traversals [slides]
Chapter 8
Sun, Mar 3, 2024
HW05 - Binary Trees (Due Sun, Mar 17, 2024)
Mon, Mar 4, 2024 Lecture 13
Midterm Review [slides]
Lab07 - Binary Trees
Wed, Mar 6, 2024 Midterm
Mon, Mar 11, 2024 Spring Break
Wed, Mar 13, 2024 Spring Break

Part II

Date Topic Reading Assignment
Mon, Mar 18, 2024 Lecture 14
Heaps [slides]
Chapter 9 - Priority Queues
No Lab
Wed, Mar 20, 2024 Lecture 15
Heaps
Priority Queues [slides]
Chapter 9 - Priority Queues
Sun, Mar 24, 2024
HW06 - Heaps (Due Thu, Apr 4, 2024)
Mon, Mar 25, 2024 Lecture 16
Quiz Review [slides]
Lab08 - Array based Binary Trees & Heaps
Wed, Mar 27, 2024 Lecture 17
Quiz
Mon, Apr 1, 2024 Lecture 18
Maps
Hash Tables [slides]
Chapter 10 - Maps, Hash Tables, and Skip Lists
No Lab
Wed, Apr 3, 2024 Lecture 19 - CANCELLED
Hash Tables
Chapter 10 - Maps, Hash Tables, and Skip Lists
Sun, Apr 7, 2024
HW07 - Hash Tables (Due Sun, Apr 21, 2024)
Mon, Apr 8, 2024 Lecture 20
Hash Tables [slides]
Chapter 12 - Sorting & Selection
Lab09 - HashMaps
Wed, Apr 10, 2024 Lecture 21
Merge Sort
Quick Sort [slides]
Chapter 10.3 - Sorted Maps
Chapter 11.2 - 11.3 Balanced Trees, AVL Trees
Mon, Apr 15, 2024 Lecture 22
Merge Sort, Quick Sort
Balanced Search Trees, AVL Trees [slides]
Chapter 11.2 - 11.6
Lab10 - AVL Trees
Wed, Apr 17, 2024 Lecture 23
Balanced Trees [slides]
Chapter 11.2 - 11.6
Sun, Apr 21, 2024
HW08 - AVL Trees (Due Thu, May 9, 2024)
Mon, Apr 22, 2024 Lecture 24
Splay Trees
Graphs [slides]
Chapter 10.5
No Lab.
Wed, Apr 24, 2024 Lecture 25
Graphs [slides]
Chapter 14.1 - Chapter 14.3
Sun, Apr 28, 2024
No Homework
Mon, Apr 29, 2024 Lecture 26
Midterm Review [slides]
No Lab - Extra Credit Opportunity
Wed, May 1, 2024 Lecture 27
Midterm Review [slides]