SEDS 562

Programming and Data Structures

Basic concepts of data, data structures and data types: arrays, strings, linear structures, sequential searching and sorting techniques, stacks, queues, pointers, linked lists. Various forms of m-way search and B-trees.

Course Objectives

To improve the students understanding and abilities related to data structures and algorithms. To improve the students ability to program.

Recommended or Required Reading

Data Structures and Abstractions with Java, F.M. Carrano and T.M. Henry, 4th ed., Pearson, 2016.
Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2013). Data structures and algorithms in Python. John Wiley & Sons Ltd.

Learning Outcomes

  1. To be able to use and design abstract data types.
  2. To be able to implement array and linked data structures.
  3. To be able to design and analyze recursive data structures and algorithms.
  4.  To be able to implement and use algorithms and data structures for searching.
Week Topics
1 Introduction
2 Data Abstraction
3 Queues and Stacks
4 Analysis of Algorithms
5 Recursive Data Structures: Linked Lists and Trees
6
Elementary Sorts: Selection Sort, Insertion Sort, and Shellsort
7 Mergesort
8 Quicksort
9 Heaps and Priority Queues
10 Symbol Tables and Binary Search
11 Binary Search Trees
12 Balanced Search Trees
13 Hash Tables
14 Graph Representation and Traversal

Grading:

  • Midterm Exam %25
  • Homework %25
  • Final Exam  %40
  • Quiz %10

Submissions: Project, Report