CS 2110 - Object-Oriented Programming and Data Structures

General Information

Easy-ish required course.

Prerequisites

Any intro to CS 111x

Topics Covered

  • Classes/Objects
  • Interfaces/Abstract Classes
  • Static/Dynamic typing in Java
  • Recursion
  • Grammars/Parsing
  • Lists
  • Trees
  • GUI
  • Asymptotic Complexity
  • Sorting Algorithms
  • Generic Types
  • Stacks
  • Queues
  • Heaps
  • Graphs
  • Induction
  • Some concurrency

Workload

A few hours a week depending on your coding experience. Usually you get around two weeks per project. Two prelims and one final. The tests are usually very similar to previous years.

Very light. The assignments take a few hours each, except the last one, which can take a while if you didn’t pay attention in the graph theory lectures.

General Advice

If you know you’re wicked serious about CS, and/or you’re a masochist, consider doing 2112 instead.

If you have a reasonable familiarity with Java programming and the Java API, consider 2112 instead. The first several weeks are spent introducing inheritance, static typing, and recursion.

There is no “textbook” for the class other than the free web-based textbook written by Gries, JavaHyperText.

You get out of this class the effort that you put in. You could coast through this class with almost no effort, and get barely anything out of it. Or, as you learn about the various data structures, take the extra effort and implement them yourself. The course material is a source of many interview questions for internships, and having an intimate (and mostly self-learned) knowledge of it can be very rewarding.

If you are concerned about how you will do in this class (CS major or not), then consider signing up for an AEW (Academic Excellence Workshop). These are workshops led by students that have done well in the class in previous semesters, and give you considerable exposure to the material without risk of a lower grade because it is pass/fail.

You can also consider signing up for CS 2111, which is the Java Practicum. The practicum supplements lecture and recitation material.

While many memes have been made for its optional final, one thing to note is that the final for this class is no longer optional as of Spring 2020. The only additional material covered in the final compared to prelims 1 and 2 is a little bit of concurrency.

Testimonials

The workload is very fair. Work at assignments a bit every day and you will have no issue getting through them.

When you are in it, the class seems boring as hell… although you don’t realize how important the material is until you get to interviews.

This class is super important. Don’t get lulled into a false sense of security by the seeming lack of work - the projects can sneak up on you. Also, you’ll get the most out of this class if you practice data structure questions on your own time. Cracking the Coding Interview is right at the level of this class for most chapters.

Past Offerings

Semester Time Professor Median Grade Course Page
Fall 2019 TR 10:10 - 11:00 AM Anne Bracy and David Gries B https://canvas.cornell.edu/courses/4486/
Fall 2018 TR 10:10 - 11:00 AM Anne Bracy and David Gries B http://www.cs.cornell.edu/courses/cs2110/2018fa/
Fall 2016 TR 10:10 - 11:00 AM Michael George and David Gries B http://www.cs.cornell.edu/courses/cs2110/2016fa/
Spring 2015 TR 10:10-11:00 AM Siddhartha Chaudhuri and David Gries B http://www.cs.cornell.edu/courses/CS2110/2015sp/
Fall 2013 TR 10:10 - 11:00 AM Ken Birman and David Gries B+ http://www.cs.cornell.edu/courses/CS2110/2013fa/
Spring 2013 TR 10:10 - 11:00 AM Ken Birman and David Gries B http://www.cs.cornell.edu/courses/CS2110/2013sp/

Resources

Edit this page on GitHub: classes/CS2110.md

Edit me on GitHub