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., CSA 1.110; Office Hours: T Th 12:30 - 2:00.

TAs:

Lab Proctors will be in the labs to help with programming projects:

TIP Tutor: For students in the TIP Scholars program, there is a tutor,

Grades on Canvas.

Syllabus

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

Assigned Reading

iClicker: Each student is required to buy/rent an iClicker (the old model, multiple choice version). This will be used for attendance and to reinforce and practice with the class material. If you prefer to get the newer iClicker2 or already have one for another class, that will work too.

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.

Lecture Notes Annotated on NB

How to Make an A

Clicker Questions

Vocabulary

Get a CS Account

Follow CS 314 Discussions on Piazza

Try Some Lisp

Pointer Basics

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/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.

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 Notes on Assignment
  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     Scenic Downtown Muleshoe
  11. MapReduce
    MapReduce Paper
    NYT Article on Hadoop
    Google Code University
    Hadoop
    Lecture slides on PageRank

Goals of the Course:

Topics:

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 and Students' Final Exam Review

Gordon S. Novak Jr.