Course description

Intermediate programming in a high-level language and introduction to computer science. Topics include program structure and organization, object-oriented programming (classes, objects, types, sub-typing), graphical user interfaces, algorithm analysis (asymptotic complexity, big O notation), recursion, data structures (lists, trees, stacks, queues, heaps, search trees, hash tables, graphs), simple graph algorithms. Java is the principal programming language.

Outcome 1: Be fluent in the use of recursion and object-oriented programming concepts (e.g. classes, objects, inheritance, and interfaces).

Outcome 2: Be able to design and implement nontrivial Java programs (roughly 1000 lines of code), starting from an English language specification.

Outcome 3: Be able to design graphical user interfaces (GUIs).

Outcome 4: Understand asymptotic complexity of algorithms and be able to analyze programs to determine their running times.

Outcome 5: Understand basic data structures taught in the course and be able to implement them and use them in programs.


CS 1110 or CS 1112 or equivalent course on programming in a procedural language.

No upcoming classes were found.

Previously offered classes

Summer 2022: Ithaca campus

Section ID:CS 2110 001-LEC
Session:Summer 6-week
Class dates:June 21-July 29, 2022
Final exam/project due:Tuesday August 02, 8:30 AM - 11 AM / Kimball Hall B11 (see Final exams)
Time / room:M-F 10 AM - 11:15 AM / Kimball Hall B11
Mode of instruction:In person
Grade:Student option
Instructor:Vanhattum, A. (amv94)
Max. enroll:70
Related:Cross-listed with ENGRD 2110 001-LEC
To enroll:Enrollment for this class is closed.

This course is open to all registrants, including undergraduates and precollege students.