CS 253
Data Structures
Instructor: Fatemeh Abdollahzadeh, Ph.D.,
Professor of Computer Science.
Text: Tomassio and
Goodrich, Data Structures and Algorithms in Java.
Office MS303
Phone (860) 832-2714.
E-mail abdollah@ccsu.edu
Office hours MW:
4:20 to 4:30 Pm in Room Ms204 and 5:50 to 7:10 Pm in my office
TR : 4:00 to 4:25 Pm in my
office , 5:45 to 5 :55 Pm in room MS 204 and
7:15 to 7:40 Pm in my office
Course Objectives: Having completed this course successfully,
the student should:
- Be familiar with the use of data
structures as the foundational base for computer solutions to problems.
- Become introduced to and investigate the
differing logical relationships among various data items.
- Understand the generic principles of
computer programming as applied to sophisticated data structures.
- Comprehend alternative implementations
using the differing logical relationships and appreciate the significance of
choosing a particular
logical relationship for implementation
within real-world setting.
- Demonstrate the ability to plan, design,
execute and document sophisticated technical programs to handle various sorts
of data structures.
Topics in the course and
number of lecture hours each:
Introduction to algorithm analysis: pseudo
code, algorithm efficiency (examples: sorting and searching
problems), asymptotic and empirical
analysis of algorithms. 3.0
hours
Introduction to data structures. Linear
data structures: stacks, queues, linked lists and
sequences (operations, implementations,
applications.) 6.0
hours
Non-linear data structures: binary trees
and general trees (operations, implementations and applications). Binary search
trees. 3.0 hours
Priority queues and heaps: using a heap to
implement a priority queue. Heap sort. 3.0 hours
Dictionaries, AVL trees, and hash
tables. 3.0 hours
Balanced search trees: (2,4) and red-black
trees. 3.0 hours
Sets, selection, and sorting: merge and
quick sorts. 4.5 hours
Caches and disks: external searching and
sorting. 1.5 hours
Non-linear data structures: graphs
(representations, implementations). Path algorithms: depth-first and
breadth-first search, transitive closure, topological
ordering). 4.5 hours
Non-linear data structures: weighted
graphs. Minimum spanning tree algorithms. Shortest path algorithms. 3.0 hours
Strings. Pattern matching algorithms
(brute-force, the KMP algorithm, the Boyer-Moore algorithm).
Regular expression pattern matching. 4.5 hours
Tests.
3.0 hours
Student presentations. 3.0 hours
Programming
assignments. There will be at least 6 programming assignments and a research
project, which every student must perform individually. There will be a penalty
for late submissions, but all assignments must be completed for a student to
have a passing grade in the class.
Project
For the research project, students will choose a graph algorithm or
pattern matching algorithm to study in
depth (2 – 4 references in addition to the book will be sufficient), develop an
implementation of that algorithm in a selected application context, and write a
research paper describing the results of this research. Everybody (team) will
summaries the results of the research project in 15 minutes talk given in
class. The research paper (typically 8 -
10 pages long), a program listing plus the disk with the program must be
submitted for grading.
Class discussion: Since the style of the class sessions will be interactive, the student is expected to come to the class with prepared questions, comments and answers to the assigned exercises.
Academic honesty: All homework and other written assignments must be an individual effort of the student submitting the work for grading. See the section "Policy on Academic Honesty" in the CCSU Student Handbook.
Attendance: It is expected that the student will attend class sessions regularly. Absences result in the student being totally responsible for the make-up process.
Tests. There will be two tests during the semester
and a final exam will be a cumulative
test of representative content of the entire semester's course offerings.
Grades
Programming assignments & Project 30 points
Tests 20 points each
Final exam 30
points
Total points Final grade
---------------- ----------------
94 - 100 A
90 - 93.99 A-
87 - 89.99 B+
84 - 86.99 B
80 - 83.99 B-
77 - 79.99 C+
74 - 76.99 C
70 - 73.99 C-
67 - 69.99 D+
64 - 66.99 D
60 - 63.99 D-
below 60 F