Course Description
The course picks up from where CS 201 left by discussing concepts related to algorithmic efficiency on basic abstract data types and some sorting algorithms that utilize recursion. Then, the course introduces the abstract data types of trees, tables, priority queues, and graphs, and shows how one can implement them in C++ using fundamental data structures by emphasizing run-time complexity analysis.
Section 1
Instructor: | Aynur Dayanık (Office: EA 426, Email: adayanik[at]cs.bilkent.edu.tr) |
---|---|
Lectures: | Wed 10:30-12:20 (EE 214), Fri 15:30-17:20 (EE 214) |
Section 2
Instructor: | Aynur Dayanık (Office: EA 426, Email: adayanik[at]cs.bilkent.edu.tr) |
---|---|
Lectures: | Mon 8:30-10:20 (B Z05), Wed 13:30-15:20 (B Z05) |
Section 3
Instructor: | Selim Aksoy (Office: EA 422, Email: ) |
---|---|
Lectures: | Tue 8:30-10:20 (EE 412), Thu 13:30-15:20 (EE 412) |
Teaching Assistants
- Kemal Büyükkaya (Office: EA 507, Email: kemal.buyukkaya[at]bilkent.edu.tr)
- Mert Sayar (Office: EA 427, Email: mert.sayar[at]bilkent.edu.tr)
- Mubashira Zaman (Office: EA 525, Email: mubashira.zaman[at]bilkent.edu.tr)
Office Hours
- Aynur Dayanık: by appointment
- Selim Aksoy: by appointment
Texts
- Frank M. Carrano and Timothy Henry, Data Abstraction and Problem Solving with C++: Walls and Mirrors, any edition, Pearson, 2013 or newer (textbook, ebook).
- Harvey M. Deitel and Paul J. Deitel, C++ How to Program, any edition, Prentice Hall, 2011 or newer (recommended).
- Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 3rd edition, Addison Wesley, 2006 (recommended).
Lectures
Topics |
Contents |
---|---|
Algorithm Analysis[ Slides ] |
|
Sorting[ Slides ] |
|
Trees[ Slides ] |
|
Heaps[ Slides ] |
|
Balanced Search Trees |
|
Hashing[ Slides ] |
|
Graphs[ Slides ] |
|
Exams
- The midterm exam will be held during 17:30-20:00 on March 24, 2021. It will be a closed-book and closed-notes exam. No A4 sheet will be allowed.
- The final exam will be held at TBD during TBD. It will be a closed-book and closed-notes exam. No A4 sheet will be allowed. The exam will cover the whole semester.
Homework
- Assignment 1: Due 23:55 on February 26, 2021
- Assignment 2: Due 23:55 on March 18, 2021
- Assignment 3: Due 23:55 on April 16, 2021
- Assignment 4 (vertex data, edge data): Due 23:55 on May 10, 2021
Homework assignments will be posted on this page. Assignments are expected to be turned in by 23:55 on the due date. You should upload your solutions to the homework assignments using Moodle before the deadline.
For the late submissions, each student will be given two grace days for each homework assignment (with no deduction of points). If no submission is received within two days after the homework deadline, no submission will be accepted for that homework.
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.
Grading Policy
Homework: | 20% |
Midterm exam: | 40% |
Final exam: | 40% |
In order to be able to take the final exam, a student must
- collect at least 30% of EACH of the first three homework grades, AND
- collect at least 30% of the midterm 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.
Advice
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
- Data Abstraction and Problem Solving with C++: Walls and Mirrors (7th ed., Carrano and Henry) home page
- Mark Allen Weiss home page
- Deitel & Deitel home page
- Tools for data visualization: David Galles, Visualgo
- Tools for memory leaks
- PuTTY: Free Telnet/SSH Client