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.
Instructor
Selim AksoyOffice: EA 422
Email:
Office Hours: by appointment
Teaching Assistants
- Nabil AbuBaker (Office: EA 505, Email: nabil.abubaker[at]bilkent.edu.tr)
- Gündüz Vehbi Demirci (Office: EA 505, Email: gunduz.demirci[at]bilkent.edu.tr)
- Nour M. AlMadhoun (Office: EA 405, Email: nour.madhoun[at]gmail.com
Schedule
- Tue 10:40-12:30, Thu 08:40-10:30, Fri 15:40-17:30, EB 204 (Section 1)
- Tue 15:40-17:30, Thu 10:40-12:30, Fri 13:40-15:30, EB 204 (Section 2)
Texts
- Frank M. Carrano and Timothy Henry, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 6th edition, Pearson, 2013. (required)
- Frank M. Carrano, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 5th edition, Addison-Wesley, 2006. (old version)
- Harvey M. Deitel and Paul J. Deitel, C++ How to Program, any edition, Prentice Hall, 2011 or newer. (recommended)
Lectures
Topics |
Contents |
---|---|
Introduction[ Slides ] |
|
Functions[ Slides ] |
|
Arrays[ Slides ] |
|
Pointers[ Slides ] |
|
Case Study[ Slides ] |
|
Recursion[ Slides ] |
|
Algorithm Analysis[ Slides ] |
|
Lists |
|
Stacks[ Slides ] |
|
Queues[ Slides ] |
|
Exams
- The first midterm exam will be held at EB 101, 102, 103 and 104 during
17:40-20:00 on June 21, 2016.
It will be a closed-book and closed-notes exam. No A4 sheet will be allowed.
The exam will cover until the end of pointers.
Exam locations are as follows:
- EB-101: Section 1 (AGCA - ILGUN)
- EB-102: Section 1 (KARGIN - ZENCIROGLU)
- EB-103: Section 2 (ALBABA - KESKIN)
- EB-104: Section 2 (KIRAY - ZIHLI)
- The second midterm exam will be held at EB 101, 102, 103 and 104 during
17:40-20:00 on July 1, 2016.
It will be a closed-book and closed-notes exam. No A4 sheet will be allowed.
The exam will cover until the end of linked lists.
Exam locations are as follows:
- EB-101: Section 1 (AGCA - ILGUN)
- EB-102: Section 1 (KARGIN - ZENCIROGLU)
- EB-103: Section 2 (ALBABA - KESKIN)
- EB-104: Section 2 (KIRAY - ZIHLI)
- The final exam will be held at EB 103, 104, and 203 during
12:30-15:00 on July 26, 2016.
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:
- EB-103: Section 1 (AGCA - MOTANI)
- EB-104: Section 1 (OZLU - TASHBOLOTOV), Section 2 (ALBABA - ERDOGAN)
- EB-203: Section 2 (GUZEL - YUSUF)
- There will be several pop-up quizzes throughout the semester. There will be no make-up quiz for the missed quizzes.
Homework
- Assignment 0: supplementary files, Due: this assignment will not be graded
- Assignment 1: Due 23:59 on June 27, 2016
- Assignment 2: supplementary files, Due 23:59 on July 6, 2016
- Assignment 3: Due 23:59 on July 20, 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 two grace days (whole or partial) for the whole semester. Once these late days are 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 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
Quiz: | 15% |
Homework: | 10% |
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.
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
- Textbooks
- 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
- C++ How to Program (Deitel & Deitel) home page
- Dive Into GNU C++ on Linux
- Dive Into GNU C++ with Cygwin on Windows
- Dive Into Microsoft Visual C++ .NET
- Dive into Microsoft Visual C++ 6
- Dive Into Borland C++ 5.5
- Books in reserve
- Compilers and Integrated Development Environments
- GCC: GNU Compiler Collection
- Minimalist GNU for Windows
- Microsoft Visual C++ (If you would like to obtain Visual C++ through the MSDN Academic Alliance program, you should follow the link at the Department home page.
- Eclipse Open Source IDE
- Borland C++ Builder
- Dev C++ IDE
- Code::Blocks C++ IDE
- Documentation
- C/C++ Reference
- C++ Resources Network
- GNU Standard C++ Library
- Microsoft Visual C++ Language Reference
- Linux tutorial by the course TAs
- Linux command summary [ summary1 | summary2 ]
- C Programming in Linux by Ibrahim Korpeoglu
- Operating Systems and Emulators
- Other Software