CS 315: Algorithms & Data Structures

CS 315 covers methods for storing large amounts of data in data structures, the algorithms used to efficiently access and manipulate that data, and analysis of the performance of the algorithms.

Instructor: Gordon S. Novak Jr., CSA 1.110; Office Hours: M T Th 1:00 - 1:50.


Lab Proctor will be in the lab to help with programming projects:


Text: Mark Allen Weiss, Data Structures and Algorithm Analysis in Java, 2nd Ed.; Amazon; Barnes & Noble.

Lecture Notes: Available in printed form in WEL 2.228. Buying the printed notes is strongly recommended so that you can take notes on them during class.
Lecture Notes by Contents or Index or PDF      DO NOT print out the slides on CS department printers.


Follow CS 315 Discussions on Piazza

DrJava provides an interactive development environment for Java. Documentation at the preceding link. There is also a DrJava plugin for Eclipse at the preceding link. Downloads: Use their downloads or these copies: Windows (right-click and select Save Target As), Mac OSX, JAR file .

Programming assignments will mainly be done in Java, with an option to do some in Lisp or Scheme. All programming assignments must be your own individual work. Program files are provided, in the directory /projects/cs315/ or in the FTP directory for Program Files, ftp://ftp.cs.utexas.edu/pub/novak/cs315/ for use with the assignments. It is legal to use any of these files as part of your programs.

How to Turn in Assignments

Testing and Debugging

  1. Timing and Big O   log-log paper (PDF)   semi-log paper (PDF)
  2. Recursion and Lists
  3. More Recursion and Lists
  4. Merging and Stacks
  5. Java List Library
  6. Basic Trees
  7. Trees and Symbolic Algebra   Handout (PDF)
  8. Patterns
  9. Memos and Drums
  10. Do You Know the Way to San Jose Muleshoe?     Selected Answers
  11. MapReduce
    MapReduce Paper
    NYT Article on Hadoop
    Google Code University
    Lecture slides on PageRank

Goals of the Course:


You can download Gnu Common Lisp for Linux or GCL for Windows or LispWorks for Mac.

Lisp is easier to use through the Emacs editor. Gnu Emacs can be dowloaded free, for Linux or Windows or Mac.

Song: "God Wrote in Lisp", Lyrics by Bob Kanefsky, sung by Julia Ecklar.

Midterm Study Guide and Example Midterm Questions

Final Exam Study Guide and Example Final Exam Questions

Gordon S. Novak Jr.