Welcome to CS 2110
Object-Oriented Programming and Data Structures
Cornell University - Fall 2026
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.
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 25 |
Lecture 1: Introduction to Java |
Discussion 1 |
Review course syllabus Install IntelliJ Complete grading survey |
| W | Aug 26 | |||
| R | Aug 27 |
Lecture 2: Reference Types and Semantics |
A1 | |
| T | Sep 1 |
Lecture 3: Method Specifications and Testing |
Discussion 2 | |
| W | Sep 2 | |||
| R | Sep 3 |
Lecture 4: Loop Invariants |
||
| M | Sep 7 | Labor Day: Office Hours Not Held | ||
| T | Sep 8 |
Lecture 5: Analyzing Complexity |
Discussion 3 | |
| W | Sep 9 | |||
| R | Sep 10 |
Lecture 6: Recursion |
A2 | |
| T | Sep 15 |
Lecture 7: Sorting Algorithms |
Discussion 4 | |
| W | Sep 16 | |||
| R | Sep 17 |
Lecture 8: Classes and Encapsulation |
||
| T | Sep 22 |
Lecture 9: Interfaces and Polymorphism |
Discussion 5 | |
| W | Sep 23 | |||
| R | Sep 24 |
Lecture 10: Inheritance |
A3 | |
| T | Sep 29 |
Prelim 1: 7:30-9:00 PM |
||
|
Lecture 11: Additional Java Features |
Discussion 6 | |||
| W | Sep 30 | |||
| R | Oct 1 |
Lecture 12: Collections and Generics |
||
| T | Oct 6 |
Lecture 13: Linked Data |
Discussion 7 | |
| W | Oct 7 | |||
| R | Oct 8 |
Lecture 14: Iterating over Data Structures |
||
| Oct 12-13 | Fall Break: Office Hours Not Held | |||
| W | Oct 14 | No Discussion | ||
| R | Oct 15 |
Lecture 15: Stacks and Queues |
A4 | |
| T | Oct 20 |
Lecture 16: Trees and their Iterators |
Discussion 8 | |
| W | Oct 21 | |||
| R | Oct 22 |
Lecture 17: Binary Search Trees |
||
| T | Oct 27 |
Lecture 18: Heaps and Priority Queues |
Discussion 9 | |
| W | Oct 28 | |||
| R | Oct 29 |
Lecture 19: Sets and Maps |
A5 | |
| T | Nov 3 |
Lecture 20: Hashing |
Discussion 10 | |
| W | Nov 4 | |||
| R | Nov 5 |
Lecture 21: Graphs |
||
|
Prelim 2: 7:30-9:00 PM |
||||
| T | Nov 10 |
Lecture 22: Graph Traversals |
Discussion 11 | |
| W | Nov 11 | |||
| R | Nov 12 |
Lecture 23: Shortest Paths |
||
| T | Nov 17 |
Lecture 24: Graphical User Interfaces |
Discussion 12 | |
| W | Nov 18 | |||
| R | Nov 19 |
Lecture 25: Event-Driven Programming |
A6 | |
| T | Nov 24 |
Lecture 26: Concurrency |
No Discussion | |
| Nov 25-29 | Thanksgiving Break: Office Hours Not Held | |||
| T | Dec 1 |
Lecture 27: Synchronization |
Discussion 13 | |
| W | Dec 2 | |||
| R | Dec 3 |
Lecture 28: Real-World Software Engineering |
||
| M | Dec 7 | |||
|
Final Exam: Date and Time TBA |
||||