The CS 2110 logo featuring a bear holding a cup of coffee

Welcome to CS 2110


Object-Oriented Programming and Data Structures

Cornell University - Fall 2025

The CS 2110 logo featuring a bear holding a cup of coffee
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