1. (Jan 28) Course page is online.
  2. (Jan 28) Please register to the Moodle system. You will submit your assignments using Moodle.
  3. (Feb 23) Homework assignment 1 is available.
  4. (Mar 26) Homework assignment 2 is available.
  5. (Apr 6) Homework assignment 3 is available.
  6. (May 1) Homework assignment 4 is available.

Course Description

Introduction to data structures and algorithm analysis. Time complexity, space complexity, and related trade-offs. Dynamic memory management. Sorting algorithms. Implementation and analysis of abstract data types: lists, stacks, and queues. C++ Standard Template Library.

Section 1

Instructor: Selim Aksoy (Office: EA 418, Email: )
Lectures: Mon 08:30-10:20 (EA Z01), Wed 13:30-15:20 (EA Z01)

Section 2

Instructor: Ercüment Çiçek (Office: EA 514, Email: cicek[at]
Lectures: Mon 10:30-12:20 (EA Z03), Wed 15:30-17:20 (EA Z03)

Teaching Assistants

Office Hours


  1. Frank M. Carrano and Timothy Henry, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 7th edition, Pearson, 2017 (textbook, ebook).
  2. Harvey M. Deitel and Paul J. Deitel, C++ How to Program, any edition, Prentice Hall, 2011 or newer (recommended).





[ Slides ]


[ Slides ]

  • Ch. 6 (Deitel)

Pointers and Arrays

[ Slides ]

Case Study

[ Slides ]

Multidimensional Arrays

[ Slides ]

  • Ch. 8 (Deitel)

Algorithm Analysis

[ Slides ]


[ Slides ]

  • Ch. 11 (Carrano)

Abstract Data Types

[ Slides ]

  • Ch. 1 (Carrano)


[ Slides ]


[ Slides ]

  • Ch. 5, Ch. 6, Ch. 7 (Carrano)


[ Slides ]

  • Ch. 13, Ch. 14 (Carrano)

Standard Template Library

[ Slides ]

  • Interlude 7 (Carrano)



  1. Assignment 1: Due 23:59 on March 17, 2024
  2. Assignment 2: Due 23:59 on April 8, 2024
  3. Assignment 3: Due 23:59 on April 28, 2024
  4. Assignment 4: Due 23:59 on May 17, 2024

Homework assignments will be posted on this page. Assignments are expected to be turned in by 23:59 on the due date. You should upload your solutions to the homework assignments using Moodle before the deadline.

Late submissions will not be accepted. Thus, please make sure that you start working on the assignments early enough and submit them on time.

Please make sure you fully understand the Bilkent University Policy on Academic Honesty (in Turkish) and the Rules and Regulations of the Higher Education Council (YOK) (in Turkish). Cheating and plagiarism on exams and homework assignments will be punished according to these regulations.

A very important guideline on academic integrity is the Honor Code for Introductory Programming Courses (CS 101/2 and 201/2) in our department. Please make sure that you are fully aware of these guidelines.

Grading Policy

Midterm exam:40%
Final exam:40%

In order to be able to take the final exam, a student must

Otherwise, the student will receive the FZ grade.

The instructors also reserve the right to set other thresholds for passing grades.

Due to the YOK (Higher Education Council) regulations, we are taking attendance and will report it to the Department at the end of the semester.


When you are in doubt, ask. Use office hours. If you cannot visit us during office hours, you can always ask questions or arrange meetings by e-mail. Study regularly for the course and attend classes. Do your assignments on time and pay attention to the instructions for submitting assignments. Always make sure that the code you submitted does compile and run correctly.

Related Links