Home
News and Lectures
Listserv
Homeworks
Projects
|
|
This course deals with
the design, analysis, implementation, and evaluation of the fundamental
structures for representing and manipulating data: lists, arrays, trees,
tables, heaps, and graphs.
Prerequisites:
- CSCI 1730 (Systems
Programming) and
- CSCI (MATH) 2610
(Discrete Mathematics for Computer Science)
People:
Times and Places:
- Class is held
Tuesday/Thursday from 3:30 - 4:45; Wed from 1:25 - 2:15 in Room 154 of
Geology Building
- Office hours with Dr.
Arpinar: T/Th 5:00 - 5:45; W 1:30 – 2:15 in Hardman 226
- Office hours with
Bilal Gonen: Mon 10:00 - 12:00 in Boyd 538
Course Resources:
- Course Web page
including calendar, links to homework assignments, project descriptions,
and occasional online lecture notes (not operational yet)
- Textbooks:
- Data Structures and
Their Algorithms by Lewis & Denenberg
- A C++ text, such as
The C++ Programming Language, Third Edition, by Bjarne Stroustrup, or
other C++ text that you own or prefer
Topical Outline
(subject to slight change
-
Introduction/Algorithm
Analysis/Asymptotic Notation
-
Examples: Merge
Sort/Insertion Sort/Quick Sort
-
Rules-of-thumb for
Calculating Running Times
-
Binary Search/Solving
Recurrences/The "Master Method"
-
Lists/Doubly-Linked
Lists/Stacks/Queues
-
Trees/Tree Traversals
and Scans/Tree Implementations
-
Arrays/Compression
Algorithms/Sparse Arrays/Strings
-
Binary Search
Trees/2-3 Trees/B-Trees/Red-Black Trees/Splay Trees
-
Hashing
-
Priority Queues/Heaps
-
k-d-Trees/Quad
Trees/Grid Files (if time permits)
-
Graphs (if time
permits)
Grading Policy
(subject to slight change):
- Mid-term: 15%
- Homework assignments
(4/5): 20%
- Programming projects
(4/5): 40%
- Final exam: 25%
Letter Grades assigned as follows:
90 <= Grade A
80 <= Grade < 90 B
70 <= Grade < 80 C
60 <= Grade < 70 D
Grade < 60 F
|