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.
Discussion Section is taught by the TA. Attendance at discussion section is optional.
Grades on Canvas.
Follow CS 314 Discussions on Piazza
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.
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
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
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.
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