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