Course Objectives

This course aims to introduce the abstract concepts for data organization and manipulation, show how these concepts are useful in problem solving and how the abstractions can be made concrete by using a programming language. At the end of this course, students are expected to be able to use appropriate data structures for the solution of a given problem. Students will also be able to design and implement abstract data types which use efficient algorithms to manipulate these data structures. Various concepts such as searching, sorting, and algorithm analysis are also introduced.

Instructors

NİHAN KESİM ÇİÇEKLİ ŞEYDA ERTEKİN YUSUF SAHİLLİOĞLU
Nihan KESİM ÇİÇEKLİ
nihan@ceng.metu.edu.tr
Office: A308
Section 1
Şeyda ERTEKİN
seyda@ceng.metu.edu.tr
Office: B108
Section 2
Yusuf SAHİLLİOĞLU
ys@ceng.metu.edu.tr
Office: B107
Section 3

Teaching Assistants

ÖMER BAYKAL YAVUZ KARA
Ömer BAYKAL
obaykal@ceng.metu.edu.tr
Office: A310
Yavuz KARA
myk@ceng.metu.edu.tr
Office: IBM LAB
BORA YALÇINER FEYZA YAVUZ
Bora YALÇINER
yalciner@ceng.metu.edu.tr
Office: A210
Feyza YAVUZ
fyavuz@ceng.metu.edu.tr
Office: IBM LAB

Course Schedule

Section 1 Tuesday 15:40-17:30 Thursday 12:40-13:30
Section 2 Monday 15:40-17:30 Wednesday 16:40-17:30
Section 3 Wednesday 12:40-13:30 Thursday 13:40-15:30

Textbook

Textbook

Mark Allen Weiss, Data Structures and Algorithm Analysis in C++ (3rd Edition), Addison Wesley, 2006

* Note that the 4th edition of this book uses C++11.

Grading

Midterm Exam 25%
Final Exam 30%
Lab Sessions 10%
Programming Assignments 15% (3 * 5%)
Lab Quizzes 15% (3 * 5%)
Online Exercises & Participation in Class 5%