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.
TAs:
To get to ENS 31NQ: Take the elevator in ENS to the lower basement (LB).
When doors open, exit right and keep going down the hallway.
It will curve to the right and you'll come to ENS 31NR (on the left).
Go through 31NR to a smaller room, which is 31NQ.
There are six desks, marked 1 through 6.
Messages from your TA
Syllabus
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.
Online by Contents
or Index
or PDF     
DO NOT print out the slides on CS department printers.
Vocabulary
Programming assignments will mainly be done in Java.
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. The files are described by
Program File Descriptions.
It is legal to use any of these files as part of your programs.
- Timing and Big O
Goals of the Course:
- Understand the tools of the trade:
- Data Structures that allow certain operations on the data
to be done efficiently.
- Algorithms that perform operations and maintain the data
structure.
- Gain experience in using library packages
- the buy-versus-build decision
- Understand performance:
- Big O
- How to analyze a problem, design a solution, and estimate
the performance.
- How to analyze an existing design or program, spot the
performance problems, and fix them.
- Gain experience in other programming paradigms:
- Lisp
- MapReduce
- Hadoop and data-intensive parallel programming
Topics:
- Introduction: why we need clever algorithms and
data structures.
- Performance: Big O: how much time and storage are needed as
data sizes become large
- Some Lisp: (+ x 3)
- Lists and Recursion; Stacks and Queues
- Trees and Tree Recursion
- Using Library Packages
- Balanced Trees and Maps
- Hashing and randomization; XOR
- Priority Queues
- Sorting, Merge
- Graphs
- Map, Reduce, and MapReduce
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.
Midterm Study Guide
and Example Midterm Questions
Final Exam Study Guide
and Example Final Exam Questions