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: | Buğra Gedik (Office: EA 501, Email: bgedik[at]cs.bilkent.edu.tr) |
---|---|
Lectures: | Mon 10:40-12:30 (B 206), Thu 8:40-10:30 (B 206) |
Section 2
Instructor: | Uğur Doğrusöz (Office: EA 522, Email: ) |
---|---|
Lectures: | Mon 8:40-10:30 (B Z05), Wed 10:40-12:30 (B Z05) |
Section 3
Instructor: | Selim Aksoy (Office: EA 422, Email: ) |
---|---|
Lectures: | Tue 8:40-10:30 (B Z08), Thu 10:40-12:30 (B Z08) |
Teaching Assistants
- Hasan Balcı (Office: EA 525, Email: hasan.balci[at]bilkent.edu.tr)
- Alihan Okka (Office: EA 525, Email: alihan.okka[at]bilkent.edu.tr)
- Yiğit Özen (Office: EA 427, Email: yigit.ozen[at]bilkent.edu.tr)
- Mubashira Zaman (Office: EA 525, Email: mubashira.zaman[at]bilkent.edu.tr)
Graders
- Yusuf Sait Canbaz (Email: sait.canbaz[at]bilkent.edu.tr)
- Umut Utku Çalış (Email: utku.calis[at]bilkent.edu.tr)
- Caner Mercan (Email: caner.mercan[at]cs.bilkent.edu.tr)
Office Hours
- Buğra Gedik: Tue 8:40-9:30, Thu 8:40-9:30
- Uğur Doğrusöz: Mon 8:40-9:30, Wed 8:40-9:30
- Selim Aksoy: Tue 10:40-11:30, Tue 15:40-16:30
Texts
- Frank M. Carrano and Timothy Henry, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 6th edition, Pearson, 2013. (textbook)
- Frank M. Carrano, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 5th edition, Addison-Wesley, 2006. (old version)
- Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 3rd edition, Addison Wesley, 2006. (recommended)
- Harvey M. Deitel and Paul J. Deitel, C++ How to Program, 8th edition, Prentice Hall, 2011. (recommended)
Lectures
Topics |
Contents |
---|---|
Algorithm Analysis[ Slides ] |
|
Sorting[ Slides ] |
|
Trees[ Slides ] |
|
Heaps[ Slides ] |
|
Balanced Search Trees |
|
Hashing[ Slides ] |
|
Graphs[ Slides ] |
|
Exams
- The first midterm exam will be held at EE 03, 04, 05, 317, and 412
during 15:30-17:30 on March 30, 2019.
It will be a closed-book and closed-notes exam. No A4 sheet will be allowed.
The exam will cover until the end of heaps.
Exam locations are as follows:
- EE-03: Section 1 (AKMAN - OKUR)
- EE-04: Section 1 (ÖNEN - ZENGİN), Section 2 (ALİYEV - DOĞAN)
- EE-05: Section 2 (ELBATANOUNY - TANAMAN)
- EE-317: Section 2 (TİLKİ - ZENELİ), Section 3 (ABDULKHALİGLİ - EVİRGEN)
- EE-412: Section 3 (FARZALİYEV - ZEYDAN)
- The second midterm exam will be held at EE 03, 04, 05, 317, and 412
during 18:30-20:30 on April 27, 2019.
It will be a closed-book and closed-notes exam. No A4 sheet will be allowed.
The exam will cover until the end of balanced search trees.
Exam locations are as follows:
- EE-03: Section 1 (AKMAN - OKUR)
- EE-04: Section 1 (ÖNEN - ZENGİN), Section 2 (ALİYEV - DOĞAN)
- EE-05: Section 2 (ELBATANOUNY - TANAMAN)
- EE-317: Section 2 (TİLKİ - ZENELİ), Section 3 (ABDULKHALİGLİ - EVİRGEN)
- EE-412: Section 3 (FARZALİYEV - ZEYDAN)
- The final exam will be held at B-Z01, B-Z02, B-Z04, and B-Z05
during 9:00-11:30 on May 30, 2019.
It will be a closed-book and closed-notes exam. No A4 sheet will be allowed.
The exam will cover the whole semester.
Exam locations are as follows:
- B-Z01: ALAYDIN - ELBATANOUNY
- B-Z02: ELDENK - KHAN
- B-Z04: KHURRAM - ŞAHİN
- B-Z05: SALEEM - ZENELİ
- There will be several pop-up quizzes throughout the semester. There will be no make-up quiz for the missed quizzes.
Homework
Please make sure that you are aware of the homework grading policy that is explained in the rubric for homeworks.
- Assignment 1: Due 23:55 on March 9, 2019
- Assignment 2: Due 23:55 on March 23, 2019
- Assignment 3: Due 23:55 on April 20, 2019
- Assignment 4 (dataset and codes): Due 23:55 on May 18, 2019
Homework assignments will be posted on this page about 10 days before their due date. 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. Please contact the instructors or the TAs for the late submission policy.
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
Quiz: | 9% |
Homework: | 16% |
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 40% of the weighted sum of the quiz, midterm 1, midterm 2, and the first 3 homework grades, AND
- collect at least 30% of the first 3 homework grades, AND
- attend at least 60% of the lectures.
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 (6th ed., Carrano and Henry) home page
- Data Abstraction and Problem Solving with C++: Walls and Mirrors (5th ed., Carrano) home page
- Data Abstraction and Problem Solving with C++: Walls and Mirrors (5th ed., Carrano) code examples
- 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