Course homepage (Fall 2024)

Welcome to the homepage for Cornell’s intermediate-level course on computer programming and software design. The majority of materials used in the course will be available on this publicly-accessible website.

See Cornell’s class roster for official meeting times and locations. Lectures and discussion sections will be delivered exclusively in person.

Prerequisites

We assume that all students in the class have prior programming experience with a general-purpose procedural language (e.g. Python, Java, …). Suitable courses offered by Cornell include CS 1110 and CS 1112. Credit for CS 1110 is also offered to students who scored a 5 on the “Computer Science A” AP exam, passed the CASE exam during orientation, or took an equivalent course at another university. If you are not familiar with recursion or reference semantics (i.e., objects), then your prior experience is likely insufficient, and we recommend taking one of Cornell’s introductory offerings.

The language used in this course is Java. Knowledge of Java is not a prerequisite, but we do assume that you will be able to adapt your knowledge of other languages to this setting quickly. CS 2110 focuses on generalizable design principles, algorithms, and data structures, not on the syntax and quirks of a particular language, so be prepared to do additional reading and practice at the outset if the language is new to you.

Related courses

CS 2110 is cross-listed as ENGRD 2110. These are the exact same course (same lecture, same discussion sections); it makes no difference which one you enroll in. The ENGRD label is a reminder that this course can count towards the engineering distribution requirement for students in the College of Engineering (if taken for a letter grade). Whenever course staff or materials refer to “CS 2110”, they also apply to “ENGRD 2110”.

An honors course on object-oriented programming and data structures is offered most fall semesters as CS 2112. That course covers topics in more depth, and its assignments entail writing significantly more code.

A student-led Academic Excellence Workshop (AEW) is offered as ENGRG 1011 and provides additional practice with the material in a collaborative setting.

CS 2110 is a prerequisite for most other courses offered by the Computer Science department (see prerequisite structure chart).

Key dates

August 27
First lecture and discussion section
September 19
Prelim exam 1
November 26
Prelim exam 2
December 5
Last lecture
December 14
Final exam

Instructors

Portrait of Owolabi Legunsen

Prof. Owolabi Legunsen

Faculty, Computer Science

Portrait of Curran Muhlberger

Prof. Curran Muhlberger

Faculty, Computer Science