COURSE DESCRIPTION AND APPLICATION INFORMATION

Course Name Code Semester T+A+L (hour/week) Type (C / O) Local Credit ECTS
Data Structures and Algorithms CMPE 242 Spring 03+00+02 Compulsory 4 6
Academic Unit: Computer Engineering Department
Mode of Delivery: Face to face
Prerequisites: CMPE 241
Language of Instruction: English
Level of Course Unit: Undergraduate
Course Coordinator: - -
Course Objectives: The main objective of this course is to provide students with knowledge on problem-solving and experience in the design and implementation of discrete data structures commonly employed in computer science and computational problems. The students will be introduced to computational complexity analysis and will learn how to implement and how to use the most important data structures and relative algorithms.
Course Contents: Abstract Data Types and Data Structures definition, Introduction to Big-O Notation (Computational Complexity Analysis), Static Arrays, Dynamic Arrays, C++ STL Containers, C++ STL Iterators, C++ STL Algorithms, Recursion, Singly Linked List, Doubly Linked Lists, Stacks, Queues, Introduction to Graphs and Trees, Binary Trees, Depth-First Search, Breadth-First Search, Binary Search Trees, Preorder Traversal, Inorder Traversal, Postorder Traversal, Level Order Traversal, Priority Queues and Heaps, Binary Heaps, Hash Tables, Serial Chaining, Open Addressing, Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, Heap Sort, Suffix Arrays, LCP Arrays.
Learning Outcomes of the Course Unit (LO):
  • 1- analyze algorithms or computer code for correctness
  • 2- evaluate algorithms and computer code in terms of efficiency
  • 3- learn the most important data structures
  • 4- learn how to implement the most important data structures
  • 5- learn how to use data structures to solve problems
  • 6- learn some advanced algorithms
  • 7- develop problem solving skills
  • 8- learn how to solve problems without using brute force approach
  • 9- get ready for a coding interview
Planned Learning Activities and Teaching Methods: Classroom discussion and computer laboratory work.


WEEKLY SUBJECTS AND RELATED PREPARATIONS

WeekSubjectsRelated Preperation LO
1 Introduction, Abstract Data Types Goodrich-Tamassia Chapter 1, 2 1
2 Computational Complexity Analisys Goodrich-Tamassia Chapter 4 Skiena Chapter 2.1, 2.2, 2.3, 2.4, 2.6, 2.7, 5.1 2, 4, 5, 6
3 Static and Dynamic Arrays, STL Goodrich-Tamassia Chapter 3.1, 6.1, 6.2 Skiena Chapter 3.1.1 2, 4, 5, 6
4 Recursion Goodrich-Tamassia Chapter 3.5 1, 3, 4, 5
5 Linked Lists Goodrich-Tamassia Chapter 3.2, 3.3 Skiena Chapter 3.1 1, 2, 3, 6
6 Stacks, Queues Goodrich-Tamassia Chapter 5.1, 5.2 Skiena Chapter 3.2 1, 2, 3, 6
7 Live project 1 1, 2, 3, 6
8 Graphs, Trees, Binary Trees, Traversing Trees (1) Goodrich-Tamassia Chapter 13.1, 13.2, 13.3, 7 Skiena Chapter 7 1, 2, 3, 6
9 Graphs, Trees, Binary Trees, Traversing Trees (2) Goodrich-Tamassia Chapter 10.1 Skiena Chapter 3.4 1, 2, 3, 6
10 Priority Queues and Heaps Goodrich-Tamassia Chapter 8 Skiena Chapter 3.5 1, 2
11 Hash Tables Goodrich-Tamassia Chapter 9 Skiena Chapter 3.7 1, 2
12 Sorting Algorithms Goodrich-Tamassia Chapter 11.1, 11.2 Skiena Chapter 4 1, 2, 3, 4
13 Suffix Arrays and LCP Arrays (Tentative) 1, 3, 6, 4
14 Best Practices and Recap for Final Exam 1, 6, 4, 5


REQUIRED AND RECOMMENDED READING

M. A. Weiss, Data Structures and Algorithm Analysis in C++, Pearson, 2014, 4th Ed.


OTHER COURSE RESOURCES

Data Structures Using C++, 2nd Edition by D. S. Malik


ASSESSMENT METHODS AND CRITERIA

Semester RequirementsNumberPercentage of Grade (%)
Project 2 90
Homework Assignments 1 10
Total: 3 100


WORKLOAD

EventsCountDuration (Hours)Total Workload (hour)
Course Hours14342
Laboratory14228
Project23570
Homework Assigments11010
Total Workload (hour):150


THE RELATIONSHIP BETWEEN COURSE LEARNING OUTCOMES (LO) AND PROGRAM QUALIFICATIONS (PQ)

# PQ1 PQ2 PQ3 PQ4 PQ5 PQ6 PQ7 PQ8 PQ9 PQ10 PQ11 PQ12 PQ13
LO1                          
LO2                          
LO3                          
LO4                          
LO5                          
LO6                          
LO7                          
LO8                          
LO9