1. (Jun 10) Course page is online.
  2. (Jun 10) Syllabus is available.
  3. (Jun 10) Homework assignment 0 is available.
  4. (Jun 25) Homework assignment 1 is available.
  5. (Jul 9) Homework assignment 2 is available.
  6. (Jul 13) 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.

The syllabus contains more information about the course.


Selim Aksoy
Office: EA 422
Office Hours: Tue 13:40-15:30 or by appointment

Teaching Assistants



  1. Frank M. Carrano, Data Abstraction and Problem Solving with C++: Walls and Mirrors, any edition, Addison-Wesley, 2006 or later. (required)
  2. Harvey M. Deitel and Paul J. Deitel, C++ How to Program, any edition, Prentice Hall, 2011 or later. (recommended)





[ Slides ]

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


[ Slides ]


[ Slides ]


[ Slides ]

Case Study

[ Slides ]

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


[ Slides ]

  • Recursion: The Mirrors (Ch.2 of Carrano book)

Algorithm Analysis

[ Slides ]

  • Handout at library electronic reserve
  • Recitation


[ Slides: Part 1 | Part 2 ]


[ Slides ]

  • Stacks (Ch.6 of Carrano book)


[ Slides ]

  • Queues (Ch.7 of Carrano book)



  1. Homework 0: supplementary files, Due: this assignment will not be graded
  2. Homework 1: Due 23:59 on Wednesday, July 8, 2015.
  3. Homework 2: supplementary files, Due 23:59 on Wednesday, July 15, 2015.
  4. Homework 3: Due 23:59 on Wednesday, July 29, 2015.

Homework assignments will be posted on this page. Assignments are expected to be turned in by 23:59 on the due date. For the late assignments, each student will be given a total of two 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 23 hours late, s/he will have used one late day and have only one day left. If Students 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.

You should upload your homework using the online submission form before the deadline. Your submission must include your source code. No hardcopy (printer output) will be required if it is not announced otherwise. Always make sure that the code you submit does compile and run correctly. Late submissions should also be done through the online submission form.

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 instructor also reserves the right to set other thresholds for passing grades.

Related Links