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
- To be able to use and design abstract data types.
- To be able to implement array and linked data structures.
- To be able to design and analyze recursive data structures and algorithms.
- 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