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.
Instructor
Selim AksoyOffice: EA 422
Email:
Office Hours: Thu 13:40-15:30 or by appointment
Teaching Assistants
- Hüseyin Gökhan Akçay (Office: EA 427, Email: akcay[at]cs.bilkent.edu.tr)
- Acar Erdinç (Office: EA 427, Email: acar.erdinc[at]cs.bilkent.edu.tr)
- Amir Rahimzadeh Ilkhechi (Office: EA 407, Email: amir.rahimzadeh[at]bilkent.edu.tr)
- Ozan Karsavuran (Office: EA 505, Email: ozan.karsavuran[at]bilkent.edu.tr)
- Caner Mercan (Office: EA 427, Email: caner.mercan[at]cs.bilkent.edu.tr)
Schedule
- Tue 10:40-12:30, Thu 08:40-10:30, Fri 15:40-17:30, B-Z08 (Section 1)
- Tue 15:40-17:30, Thu 10:40-12:30, Fri 13:40-15:30, B-Z08 (Section 2)
Texts
- Frank M. Carrano, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 5th edition, Addison-Wesley, 2006. (required)
- Harvey M. Deitel and Paul J. Deitel, C++ How to Program, 8th edition, Prentice Hall, 2011. (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
- There will be four quizzes (closed-book, closed-notes, no A4 sheet is
allowed). All quizzes will be held during 12:40-13:30 on the dates
announced in the syllabus. There will be NO make-up quiz.
Quiz locations are as follows (all classrooms are in the BCC Building):
- B-Z01: AÇIKGÖZ - ERYILMAZ
- B-Z02: ERZİN - KOYUNCU
- B-Z04: KÖKSAL - SAVAŞAN
- B-Z05: SEZER - ZAİMOĞLU
- The midterm exam will be held during 10:00-12:00 on July 13, 2014. It will be a closed-book and closed-notes exam. No A4 sheet will be allowed. Exam locations are same as the ones for the quizzes as listed above.
- The final exam will be held during 9:00-12:00 on July 31, 2014. 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 same as the ones for the quizzes as listed above.
Homework
- Homework 0: supplementary files, Due: this assignment will not be graded
- Homework 1: Due 23:59 on Monday, July 7, 2014
- Homework 2: Due 23:59 on Monday, July 14, 2014
- Homework 3: Due 23:59 on Thursday, July 31, 2014
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.
We will use the PAGS system to grade your homeworks. Therefore, you should make sure that the latest version of your homework is available in the PAGS system before the deadline. You should also upload your homework using the online submission form before the deadline for backup purposes. 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 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
Quiz: | 20% |
Homework: | 10% |
Midterm exam: | 35% |
Final exam: | 35% |
In order to be able to take the final exam, one must obtain at least 22 points (40% of total 55) from the weighted sum of the quiz and midterm grades; otherwise, one will receive the FZ grade.
The instructor also reserves the right to set other thresholds for passing grades.
Related Links
- Textbooks
- C++ How to Program, 5th edition home page
- C++ How to Program, 5th edition code examples
- Data Abstraction and Problem Solving with C++: Walls and Mirrors home page
- Data Abstraction and Problem Solving with C++: Walls and Mirrors code examples
- Data Abstraction and Problem Solving with C++: Walls and Mirrors errata list
- 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