At the end of this course, the students; 1) Learn dynamic memory allocation and linked list concepts 2) Learn basic data structures 3) Learn how to implement data structures 4) Learn data abstraction and object oriented design concepts 5) Get the ability to analyze the complexity of algorithms 6) Comprehend recursion 7) Get practice on solving problems with data structures 8) Gains the ability to work in interdisciplinary projects.
MODE OF DELIVERY
Face to face
PRE-REQUISITES OF THE COURSE
Yes(BİL122)
RECOMMENDED OPTIONAL PROGRAMME COMPONENT
None
COURSE DEFINITION
Basic data types. Arrays, singly and doubly linked lists, memory considerations, stacks and recursion, queues, tree structures and traversal methods, sorting and searching algorithms, space and time considerations, and applications of data structures.
COURSE CONTENTS
WEEK
TOPICS
1st Week
Introduction to Data Structures, Programming Principles
2nd Week
Object Design Techniques
3rd Week
The Vector Container
4th Week
Pointers and Dynamic Memory Management
5th Week
The List Container and Iterators
6th Week
Stacks
7th Week
Applications of Stacks
8th Week
Midterm Week
9th Week
Queues / Priority Queues and Their Applications
10th Week
Linked Lists
11th Week
Binary Trees
12th Week
Binary Search Trees
13th Week
Advanced Associative Structures - I (Hash Functions)
14th Week
Advanced Associative Structures - II (2-3-4 Trees, Red/Black Tree Structures)
RECOMENDED OR REQUIRED READING
1. Data Structures with C++ using STL, 2nd Edition, W.Ford & W.Topp, Prentice-Hall, 2002. 2. Data Structures and Algorithm Analysis in C++, 3rd Edition, M.A. Weiss, Addison Wesly Inc., 2006. 3. Data Structures & Program Design in C, 2nd Edition, Kruse, Tondo, Leung, Prentice-Hall, 1997.