1. (Jan 28) Course page is online.
  2. (Feb 24) Midterm 1 is postponed.
  3. (Mar 3) Homework assignment 1 is available.
  4. (Apr 2) Homework assignment 2 is available.
  5. (Apr 22) Homework assignment 3 is available.

Course Description

This course introduces the abstract data types of lists, stacks and queues, and shows how one can implement them in C++ using fundamental data structures. It also introduces recursion and algorithm analysis.

Section 1

Instructor: Ercüment Çiçek (Office: EA 531, Email: cicek[at]
Lectures: Tue 15:40-17:30 (EA Z01), Fri 13:40-15:30 (EA Z01)

Section 2

Instructor: Selim Aksoy (Office: EA 422, Email: )
Lectures: Tue 10:40-12:30 (EE 04), Fri 8:40-10:30 (EE 04)

Teaching Assistants

Office Hours


  1. Frank M. Carrano and Timothy Henry, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 6th edition, Pearson, 2013. (required)
  2. Frank M. Carrano, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 5th edition, Addison-Wesley, 2006. (old version)
  3. Harvey M. Deitel and Paul J. Deitel, C++ How to Program, any edition, Prentice Hall, 2011 or newer. (recommended)





[ Slides ]

  • Introduction to Classes and Objects (Ch. 3 of Deitel)
  • Control Statements: Part I (Ch. 4 of Deitel)
  • Control Statements: Part II (Ch. 5 of Deitel)
  • Code examples
  • Recitation


[ Slides ]


[ Slides ]


[ Slides ]

Case Study

[ Slides ]

  • Classes: A Deeper Look, Part I (Ch. 9 of Deitel)
  • Classes: A Deeper Look, Part II (Ch. 10 of Deitel)


[ Slides ]

  • Recursion: The Mirrors (Ch. 2, 5 of Carrano-Henry)

Algorithm Analysis

[ Slides ]

  • Handout at library electronic reserve
  • Algorithm Efficiency (Ch. 10 of Carrano-Henry)
  • Recitation


[ Slides: Part 1 | Part 2 ]


[ Slides ]

  • Stacks (Ch. 6, 7 of Carrano-Henry)


[ Slides ]

  • Queues (Ch. 13, 14 of Carrano-Henry)



  1. Assignment 0: supplementary files, Due: this assignment will not be graded
  2. Assignment 1: Due 23:59 on March 21, 2016
  3. Assignment 2: supplementary files, Due 23:59 on April 11, 2016.
  4. Assignment 3: Due 23:59 on May 6, 2016

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 the online submission form before the deadline.

For late assignments, each student will be given a total of three grace days (whole or partial) for the whole semester. Once these late days have been exhausted, no late assignments will be accepted. As an example, if Student A submits her/his 1st assignment 29 hours late, s/he will have used two late days and have only one day left. If Student A then submits her/his 2nd assignment 5 hours late, s/he will have used her/his remaining late day. If Student A submits her/his 3rd assignment 1 minute late, this assignment will not be accepted.

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, quizzes, and homework assignments will be punished according to these regulations.

Grading Policy

Midterm exam 1:25%
Midterm exam 2:25%
Final exam:25%

In order to be able to take the final exam, a student must collect at least 26 points (40% of total 65) from the weighted sum of the quiz and midterm grades; otherwise, the student will receive the FZ grade.

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


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