Course ID: CSCI 2720 - Data Structures
Name of the Instructor: I. Budak Arpinar
Semester and Year Syllabus is for: Fall04
Prerequisites:
- CSCI
1730 (Systems Programming) and
- CSCI
(MATH) 2610 (Discrete Mathematics for Computer Science)
Description
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.
Course
Resources
- Course
Web page including calendar, links to homework assignments, project
descriptions, and occasional online lecture notes
- A
discussion group for projects and homework assignments
- 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:
- Mid-term:
15%
- Homework
assignments (~10): 20%
- Programming
projects (~4): 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