Syllabus
CS 302: Advanced Data Structures
Winter 2013
Meeting
Times 
Lect: 1:00  1:50 MTuW, HB 106 Labs:
1:00  1:50 Th, HB 203/209 
Instructor 
Dr.
Razvan Andonie, HB 219B,
Office hours 
Lab
Graders 
Marshall Brooks brookmar@cwu.edu (Projects 1 & 2) PaoShih Huang huangp@cwu.edu
(Projects 3 & 4) 
Text 
William
J. Collins Data
Structures and The Java Collections Framework, Wiley, 2011. 
This course continues the exploration of data structures, algorithms for manipulating them, and the practical problems of implementing those structures in real programming languages and environments. Attention is paid to the analysis of algorithms to characterize their worst and average case requirements for running time and memory.
Perhaps more than any other courses, CS 301 and 302 should expand the students tool box of basic techniques for manipulating data at both the conceptual and the concrete level. At the conceptual level, the student will see a broad selection of standard practices and approaches used in program design. At the concrete level, the student will begin what should be a careerlong practice of accumulating useful, reusable code units.
The
basic organization of this course will proceed through the classic data
structures and Javabased containers, exploring the use and implementation of
each in turn. Motivating problems will be drawn from a variety of application
areas. Specifically:
The student will be able to
demonstrate the use of basic complexity measures. The student will be able to
apply these measures to basic algorithms. The student will be able to give a
general description of how these complexity measures are obtained.
The student will be able to
demonstrate a basic understanding of an abstract data type. The student
will be able to demonstrate the association between ADT concepts and basic Java
constructs.
The student will be able to
demonstrate the correct use and application of trees, binary trees, search
trees, balanced trees, 23 trees, Btrees, heaps, priority queues, hashing,
maps, sets, matrices, and graphs.
Exams (2  25% each)
50%
Lab Projects
50%
95  100 A
90  94 A
87  89 B+
83  86 B
80  82 B
77  79 C+
73  76 C
70  72 C
67  69 D+
63  66 D
60  62 D
0  59 F
If
you must miss an exam, contact your instructor prior to the
exam to schedule a time to make it up. Late submission of assignments is
generally not accepted. No partial credit for late assignments will be offered.
The
slides for lectures and the lab projects can be found in the shared directory. Be prepared to
spend about 12 hours for each project.
Available
in Hebeler Labs are J2SE Development Kit (JDK) and NetBeans IDE from Sun
Microsystems. NetBeans is an open source
integrated development environment (IDE) for writing, compiling, testing, and
debugging J2SE and J2EE applications.
Using
the Java software at home: Download the JDK with Netbeans (Java SE Development Kit and NetBeans IDE Cobundle for
Windows).
Book Resources from the author.
(source code from the text, applets, Errata, lab
experiments).
The Source for Java Technology: jGuru, Code
Conventions for the JavaTM Programming Language, Training
and Tutorials, NetBeans IDE Quick Start Guide and Video Tour, Java’s
Collections.
Date 
Topic 

1/7 
Introduction &
Binary Trees  review 
Syllabus, Ch.
9 
1/8 
Binary
Search Trees 
Ch. 10 
1/9 
Balanced Binary Search Trees 
Ch. 10 
1/14 
AVL Trees 
Ch. 10 
1/15 
The Comparator Interface, Insertion Sort,
Selection Sort, Bubble Sort 
Ch. 11 
1/16 
Decision
trees 
Ch. 11 
1/21 
No School, M. L.
King 

1/22 
Mergesort 
Ch. 11 
1/23 
Quicksort 
Ch. 11 
1/28 
RedBlack Trees 
Ch. 12 
1/29 
Tree Maps and Tree Sort 
Ch. 12 
1/30 
Tree Sets 
Ch. 12 
2/4 
Review 

2/5 
Midterm Exam (closed book) 
Ch. 1012 
2/6 
Priority Queues 
Ch. 13 
2/11 
Heap Class and Heap Sort 
Ch. 13 
2/12 
Heap Class and Heap Sort 
Ch. 13 
2/13 
Huffman Codes 
Ch. 13 
2/18 
No School, Presidents Day 

2/19 
Hashing 
Ch. 14 
2/20 
Hashing 
Ch. 14 
2/25 
Hashing 
Ch. 14 
2/26 
Graphs & Networks 
Ch. 15 
2/27 
Graphs & Networks 
Ch. 15 
3/4 
Graphs & Networks 
Ch. 15 
3/5 
Graphs & Networks 
Ch. 15 
3/6 
Java Collections Framework &
Review 

3/12 
Final Exam (closed book): noon – 2:00 
Ch. 1015 
Date 
Topic 
Item Due 
1/3 
No
class 

1/10 
Introduce
Project 1 

1/17 
Project
1 

1/24 
Introduce Project 2 
Project 1, due 
1/31 
Introduce Project 3 
Project 2, due 
2/7 
Project 3 

2/14 
Introduce Project 4 
Project 3, due 
2/21 
Project 4 

2/28 
Project 4 
Project 4, due 
3/7 
Final discussion on projects 