Syllabus for Advanced Data Structures & Algorithms
Fall 2004
Lecture Schedule
Instructor:
Anne DeFrance
defrance@cs.montana.edu
Office and phone:
361 EPS 994-4835.
Office Hours:
10:00 to 11:00 MWF and 10:00 Tuesday
and by appointment;
Teaching Assistants:
@cs.montana.edu
@cs.montana.edu
Text
Data Structures and Abstractions with Java
by Frasnk Carrano and Walter Savitch
Foundations of Algorithms Using Java Pseudocode
by Richard Neapolitan and Kumarss Naimipour
The objectives of this course are for the student to:
Know the choices of data structures available to the programmer.
Understand the advantages and disadvantages of each data structure.
Be aware of the Java library available to reduce programming time.
Be aware of existing algorithms, and how they solve their specific problem.
Understand the efficiencies of different algorithms, and when to use each.
At the end of the course a student should:
Use the Java Collections available in the library.
Understand and implement different data structures, including:
Hash tables
Balanced binary search trees
Priority queues implemented as heaps
Graphs
Implement and know the efficiency of many of the common algorithms, including
Searching and sorting algorithms
Floyd's, Prim's, Kruskal's, and Dijkstra's algorithms
Understand when to use some of the algorithm design techniques, including:
Greedy algorithms
Divide and conquer algorithms
Dynamic Programming algorithms
Grading
Lab 30%
Homework 10%
Exam1 15%
Exam2 20%
Final 25%
Final: Thursday December 16 @ 6:00-7:50
Last modified: August 26, 2004