You should consult this page regularly to see the most current version of the schedule of topics and readings. You should complete all assigned readings and attempt to work all the problems at the end of each section as you are studying. They will be good practice for the regular quizzes during the first ten minutes on Wednesday mornings, and may also appear on the midterms or final exam.

Week Day Date Topic
1 Mon Aug 28 Introduction and OOP
Wed Aug 30 Java Basics
2 Mon Sept 4 Labor Day
Wed Sept 6 Inheritance, Interfaces, and Generics
3 Mon Sept 11 The Catch-All Java Lecture
Wed Sept 13 Analysis of Algorithms
4 Mon Sept 18 ArrayLists
Wed Sept 20 Singly Linked Lists
5 Mon Sept 25 Doubly Linked Lists
Wed Sept 27 Stacks, Queues, and Iterators
6 Mon Oct 2 Midterm I
Wed Oct 4 Sorting Basics and Comparators
7 Mon Oct 9 Sorting Basics and Comparators Cont'd
Wed Oct 11 Mergesort
8 Mon Oct 16 Fall Break
Wed Oct 18 Quicksort
9 Mon Oct 23 Mid-semester check-in
Wed Oct 25 Binary Trees, Binary Search, and Heaps
10 Mon Oct 30 Priority Queues and Heapsort
Wed Nov 1 Dictionaries
11 Mon Nov 6 Binary Search Trees
Wed Nov 8 Binary Search Trees
12 Mon Nov 13 Midterm II
Wed Nov 15 Balanced Binary Search Trees
13 Mon Nov 20 Hash Tables
Wed Nov 22 Thanksgiving Break
14 Mon Nov 27 Graphs
Wed Nov 29 Graphs
15 Mon Dec 4 Shortest Paths
Wed Dec 6 Summary
16 Tue Dec 12 Final Exam

© Alexandra Papoutsaki, 2023