
Welcome to CS 2110
Object-Oriented Programming and Data Structures
Cornell University - Fall 2025

This public-facing website serves as the backbone for Cornell's intermediate-level course on programming and software design. Above, you'll find links to many useful resources including the course syllabus, course lecture notes, and assignments, as well as our external course services Gradescope, Ed, and PollEv.
If you ever have any anonymous feedback about the course that you wish to share with the instructors, you can do so through this form.
Below is the schedule of lecture topics and deadlines throughout the course. This schedule will be updated as the course proceeds with links to lecture slides and code, discussion worksheets, practice exams, and other useful resources, so check back here regularly.
Day | Date | Lecture | Discussion | Assignment |
---|---|---|---|---|
T | Aug 26 |
Lecture 1: Introduction to Java [slides, code] |
Discussion 1: Coding in IntelliJ [solutions] |
Review course syllabus Complete grading survey |
W | Aug 27 | |||
R | Aug 28 |
Lecture 2: Reference Types and Semantics [slides, code] |
A1 | |
M | Sep 1 | Labor Day: Office Hours Not Held | ||
T | Sep 2 |
Lecture 3: Method Specifications and Testing |
Discussion 2 | |
W | Sep 3 | |||
R | Sep 4 |
Lecture 4: Loop Invariants |
A2 | |
T | Sep 9 |
Lecture 5: Analyzing Complexity |
Discussion 3 | |
W | Sep 10 | |||
R | Sep 11 |
Lecture 6: Recursion |
A3 | |
T | Sep 16 |
Lecture 7: Sorting Algorithms |
Discussion 4 | |
W | Sep 17 | |||
R | Sep 18 |
Lecture 8: Classes and Encapsulation |
A4 | |
T | Sep 23 |
Lecture 9: Interfaces and Polymorphism |
Discussion 5 | |
W | Sep 24 | |||
R | Sep 25 |
Lecture 10: Inheritance |
A5 | |
T | Sep 30 |
Lecture 11: Additional Java Features |
Discussion 6 | |
W | Oct 1 | |||
R | Oct 2 |
Lecture 12: Collections and Generics |
A6 | |
T | Oct 7 |
Lecture 13: Linked Data |
Discussion 7 | |
W | Oct 8 | |||
R | Oct 9 |
Lecture 14: Iterating over Data Structures |
||
Prelim 1: 7:30-9:00 PM | ||||
Oct 11-14 | Fall Break: Office Hours Not Held | |||
R | Oct 16 |
Lecture 15: Stacks and Queues |
A7 | |
T | Oct 21 |
Lecture 16: Trees and their Iterators |
Discussion 8 | |
W | Oct 22 | |||
R | Oct 23 |
Lecture 17: Binary Search Trees |
A8 | |
T | Oct 28 |
Lecture 18: Heaps and Priority Queues |
Discussion 9 | |
W | Oct 29 | |||
R | Oct 30 |
Lecture 19: Sets and Maps |
A9 | |
T | Nov 4 |
Lecture 20: Hashing |
Discussion 10 | |
W | Nov 5 | |||
R | Nov 6 |
Lecture 21: Graphs |
||
Prelim 2: 7:30-9:00 PM | ||||
T | Nov 11 |
Lecture 22: Graph Traversals |
Discussion 11 | |
W | Nov 12 | |||
R | Nov 13 |
Lecture 23: Shortest Paths |
A10 | |
T | Nov 18 |
Lecture 24: Graphical User Interfaces |
Discussion 12 | |
W | Nov 19 | |||
R | Nov 20 |
Lecture 25: Event-Driven Programming |
A11 | |
T | Nov 25 |
Lecture 26: Concurrency |
||
Nov 26-30 | Thanksgiving Break: Office Hours Not Held | |||
T | Dec 2 |
Lecture 27: Synchronization |
Discussion 13 | |
W | Dec 3 | |||
R | Dec 4 |
Lecture 28: The Java Ecosystem |
||
Final Exam: Date and Time TBA |