I have organized a number of free online resources for learning Java and Data Structures in the page below. None of these textbooks are a perfect fit for the class, but I have drawn material from them and hope to provide my own readings from time to time.

Java Resources

If you are struggling with Java, it may be worthwhile for you to check out some of the following resources.

Think Java

  • Online, free, complete textbook
  • I like this book (free PDF), but they use arrays too much.

Oracle's Java Tutorials

  • Online, free, official
  • This is one of the official resources for learning the Java Programming Language. It provides an organized view on these topics that have been reviewed by many professionals.

Introduction to Programming using Java (Eck)

  • Online, free, complete, textbook
  • This book has grown with Java and comes with a lot of starter code that we will not necessarily use, but it is an excellent resource nonetheless.

Java Programming Wikibook

  • Online, free, incomplete, textbook
  • A bit sparse and short in places, but fairly complete in the early sections for those looking for a Java resource.

Programming by Doing Exercises

  • Online, free, exercises
  • Mostly a collection of exercises which could give you ideas to become more comfortable with Java.


CodingBat is a set of exercises for a mixed Python/Java introductory course (there are more exercises for Java).

CodingBat is a project by Nick Parlante, a computer science lecturer at Stanford.

Data Structures Resources

Java Structures - Bailey

  • Online, free, complete, textbook
  • This textbook covers data structures in Java from the perspective of Williams college, around the time of Java 1.4 (Sept. 2007). While data structures do not age, Java does, and I strongly dislike the culture in some of this book. Read the intro and form your own opinion.

Open Data Structures

  • Online, free, complete, textbook
  • This textbook covers the data structures we will use in this course and a little more.

CS2 Software Design & Data Structures

  • Online free, complete, interactive textbook
  • Very cool resource from Virginia Tech that is an interactive data structures textbook with mini exercises.

Data Structures Wikibook

  • Incomplete, online, free
  • This "wikibook" is far less complete than the Java one in the previous table, however, there are some useful sections. Maybe we can contribute to this as the course goes on!

Data Structures Pages from Wikipedia (as a book)

  • A list of ALL the data structures pages on Wikipedia. This will be very overwhelming before we get through the first few weeks of class (and even for someone like me!).
  • We won't discuss all of these but we will build a framework so that you can understand them all.


  • I taught a similar course in Spring 2020 at Smith College. When we went online due to COVID19, I recorded videos for the entire data structures part of the course.
  • I will likely reuse some of these where appropriate, although the syllabus is different here: DS4J