CS 314: Data Structures

CS 314 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., GDC 3.824; Office Hours: T Th 3:30 - 5:00.

Guns are prohibited in the instructor's office. I do not want any guns to be brought to my class. I will not write recommendations for anyone who brings a gun to campus.

Teaching Assistant:

Discussion Section is taught by the TA. Attendance at discussion section is optional.

Grades on Canvas.

Follow CS 314 Discussions on Piazza


Lecture Notes: Available in printed form at UT Copy Center, GSB 3.136 . 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.

Optional Text: Mark Allen Weiss, Data Structures & Problem Solving Using Java, 4th Ed.; Amazon; textbooks.com.

Reading in Weiss

Optional Text: Eric S. Roberts, Thinking Recursively with Java ; Amazon.

Optional Free Online Text by David Gries: JavaHyperText and Data Structures

iClicker: Each student is required to buy/rent an iClicker (any version of iClicker device; not iClicker GO app). This will be used for attendance and to reinforce and practice with the class material. Two iClicker points are given just for voting, and an additional point is given for a correct answer. Most iClicker questions and answers are online at Clicker Questions, and it is okay to review them in advance. The clicker scores will be converted to a grade by making the highest student score at least 108 and linearly scaling other scores; this gives some extra points to account for minor illness, forgotten or malfunctioning clicker, etc. Adjustments to clicker scores will only be made for significant causes such as major illness. Bringing another student's clicker to class is considered to be cheating.

Register your iClicker on Canvas.

How to Make an A

Vocabulary       Midterm Vocabulary Flash Cards     All Vocabulary Flash Cards

Get a CS Account

Try Some Lisp       Lisp Tutorial by Max Timkovich

Pointer Basics

DrJava provides an interactive development environment for Java. Documentation at the preceding link. Get the file Cons.drjava.java from the FTP directory, put it in a new directory drjava by itself, and then change its name to Cons.java; after starting DrJava (double-clicking on the JAR file may be easiest), Open this file and then click Compile. You then can use functions such as Cons.list() in the Interactions pane.

Downloads: Use their downloads or these copies: Windows (right-click and select Save Target As), Mac OSX, JAR file, Eclipse Plug-in.

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/cs314/ or http://www.cs.utexas.edu/users/novak/cs314/ or in the FTP directory for Program Files, ftp://ftp.cs.utexas.edu/pub/novak/cs314/ for use with the assignments. It is legal to use any of these files as part of your programs.

Note that if the Cons.java file is out of date, you can find the right one as Cons.asgi.java where i is the assignment number.

Turn in Assignments through Canvas.

Testing and Debugging

Documentation of Cons Functions

Grading Criteria: Points for Questions on Assignments

  1. Timing and Big O     log-log paper (PDF)     semi-log paper (PDF)
  2. Recursion and Lists
  3. More Recursion and Lists     Notes on Assignment
  4. Merging and Stacks
  5. Java List Library     LinkedList.java
  6. Basic Trees
  7. Trees and Symbolic Algebra     Notes on Assignment (PDF)
  8. Patterns
  9. Memos and Music
  10. Do You Know the Way to San Jose Muleshoe?     Selected Answers     Scenic Downtown Muleshoe
  11. MapReduce
    MapReduce Paper
    New York Times Article on Hadoop
    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.

Manu Cornet: Companies as Data Structures

Midterm Study Guide     Example Midterm Questions     Midterm Vocabulary Flash Cards     Midterm Review Flash Cards

Final Exam Study Guide     Example Final Exam Questions     Students' Final Exam Review     Vocabulary Flash Cards

Gordon S. Novak Jr.