Data Structures · Fall 2017 Common Syllabus

CSCI-UA 102: Data Structures

Course Sections (Spring 2018)

Topics Covered

  • Java features: abstract classes, interfaces, inheritance, polymorphism, generics, iterators, exception handling, file I/O
  • Recursion
  • Worst case asymptotic running time analysis
  • Abstract data types
  • Lists, stacks, queues
  • Trees (binary and binary search trees)
  • Sorting algortihms (merge sort, quicksort)

Additional topics:

  • Hashing and hash tables
  • Priority Queues
  • Graphs
  • Other sorting algorithms


Book cover
Data Structures and Algorithms in Java, 6th edition,
Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser,
Sixth Edition
ISBN-13: 978-1-118-77133-4 (paperback), 978-1-118-80314-1 (e-text)
Publisher's website

Additional resources:


The CSCI-UA 102 class at the Computer Science Department in Courant Institute of Mathematical Sciences is taught in Java. Students starting the CSCI-UA 102 are expected to be familiar with Java at the level equivalent to one semester college level course (usually CSCI-UA 101).
Topics covered in CSCI-UA 101: primitive data types and elementary programming, simple input/output, conditional execution and selection statements, mathematical functions, characters and strings, iterations, methods, arrays (1D and 2D), operations on arrays, objects and classes, object oriented thinking and design, inheritance and polymorphism, graphics and animations (using Processing), exception handling and text I/O, abstract classes and interfaces, basics of recursion.

Java Review Resources

If you took the equivalent of CSCI-UA 101 (Introduction to Computer Science) in a different programming language, or, if you took CSCI-UA 101 a while ago and may need a refresher, here are some resources that may come in handy.

if you already know Python:

open books teaching Java from scratch:

an online course teaching Java from scratch:

online practice:

sample programming assignments given at the end of CSCI-UA 101:


Tutors will be available throughout the semester in room 406 CIWW. Tutoring starts in the second week of classes and continues until the last week of classes (there is no tutoring available during the finals week).

The following calendar is updated on a regular basis to refelct any last minute changes to the regular schedule.

To add this calendar to your own:
  • Open your own google calendar.
  • Next to "Other calendars" on the left, click the Down arrow .
  • Select Add by URL.
  • Enter the calendar's address in the field provided. The address needs to be an ICAL link:
  • Click Add Calendar.