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 studies recursion as a problem solving technique using data abstraction.
The syllabus contains more information about the course.
Section 1
Instructor: | Selim Aksoy (Office: EA 423, Email: ) |
---|---|
TA: | Nazlı İkizler (Office: EA 522, Email: inazli[at]cs.bilkent.edu.tr) |
Lectures: | Mon 10:40-12:30 (B 206), Thu 8:40-10:30 (B 206) |
Office Hours: | Selim Aksoy (Thu 10:40-12:30) Nazlı İkizler (Wed 13:40-14:30) |
Section 2
Instructor: | Selim Aksoy (Office: EA 423, Email: ) |
---|---|
TA: | Hüseyin Gökhan Akçay (Office: EA 522, Email: akcay[at]cs.bilkent.edu.tr) |
Lectures: | Mon 15:40-17:30 (B 206), Thu 13:40-15:30 (B 206) |
Office Hours: | Selim Aksoy (Thu 10:40-12:30) Hüseyin Gökhan Akçay (Tue 10:40-11:30) |
Section 3
Instructor: | Çiğdem Gündüz Demir (Office: EA 407A, Email: gunduz[at]cs.bilkent.edu.tr) |
---|---|
TA: | Süleyman Tuncer Erdoğan (Office: EA 529, Email: serdogan[at]cs.bilkent.edu.tr) |
Lectures: | Tue 10:40-12:30 (B 204), Fri 8:40-10:30 (B 204) |
Office Hours: | Çiğdem Gündüz Demir (Mon 13:40-15:30, Tue 13:40-15:30) Süleyman Tuncer Erdoğan (Mon 14:40-15:30) |
Section 4
Instructor: | Çiğdem Gündüz Demir (Office: EA 407A, Email: gunduz[at]cs.bilkent.edu.tr) |
---|---|
TA: | Mümin Cebe (Office: EA 529, Email: mumin[at]cs.bilkent.edu.tr) |
Lectures: | Tue 15:40-17:30 (B 204), Fri 13:40-15:30 (B 204) |
Office Hours: | Çiğdem Gündüz Demir (Mon 13:40-15:30, Tue 13:40-15:30) Mümin Cebe (Mon 14:40-15:30) |
Section 5
Instructor: | Çiğdem Gündüz Demir (Office: EA 407A, Email: gunduz[at]cs.bilkent.edu.tr) |
---|---|
TA: | Miray Kaş (Office: EA 434, Email: miray[at]cs.bilkent.edu.tr) |
Lectures: | Mon 15:40-17:30 (B 204), Thu 13:40-15:30 (B 204) |
Office Hours: | Çiğdem Gündüz Demir (Mon 13:40-15:30, Tue 13:40-15:30) Miray Kaş (Tue 11:40-12:30) |
Texts
- Harvey M. Deitel and Paul J. Deitel, C++ How to Program, 5th edition, Prentice Hall, 2005. (required)
- Frank M. Carrano, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 4th edition, Addison-Wesley, 2005. (required)
- Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 3nd edition, Addison Wesley, 2006. (recommended)
Lectures
Topics |
Contents |
---|---|
Introduction, Classes and Objects, Control Statements |
|
Functions |
|
Arrays and Pointers |
|
Classes: A Deeper Look |
|
Operator Overloading |
|
Recursion |
|
Algorithm Analysis |
|
Abstract Data Types |
|
Lists |
|
Stacks |
|
Queues |
|
Exams
- Midterm exam will be held at EB 101-104, 201-204 at 10:00-13:00
on December 15, 2007. It will be a closed-book and closed-notes
exam but you are allowed to bring one hand-written A4 sheet.
The exam will cover until the end of linked lists. Exam locations
are as follows (all classrooms are in the Engineering Building):
- EB 101: Section 1 (AKGÜN - MIDOĞLU)
- EB 102: Section 1 (MORALI - YÜRÜTEN), Section 2 (AKAY - CERRAHOĞLU)
- EB 103: Section 2 (COŞKUN - ÜNSÜR)
- EB 104: Section 2 (VAROL - ZORER), Section 3 (AKÇAKOCA - OCAK)
- EB 201: Section 3 (OKUMUŞ - ZENGİN), Section 4 (ABBASOĞLU - BALABAN)
- EB 202: Section 4 (BEKMEZCİ - ÖZCAN)
- EB 203: Section 4 (ÖZKUL - YEŞİLYURT), Section 5 (ADIGÜZEL - DURMUŞ)
- EB 204: Section 5 (EKMEKÇİ - YAYAN)
- Final exam will be held at BZ 01, 02, 03, 04, 05, 08 and B 204, 206
at 9:00-12:00 on January 8, 2008. It will be a closed-book and closed-notes
exam but you are allowed to bring one hand-written A4 sheet.
The exam will cover the whole semester. Exam locations are as follows
(all classrooms are in the BCC building):
- BZ 01: Section 1 (AKGÜN - MIDOĞLU)
- BZ 02: Section 1 (MORALI - YÜRÜTEN), Section 2 (AKAY - CERRAHOĞLU)
- BZ 03: Section 2 (COŞKUN - ÜNSÜR)
- BZ 04: Section 2 (VAROL - ZORER), Section 3 (AKÇAKOCA - OCAK)
- BZ 05: Section 3 (OKUMUŞ - ZENGİN), Section 4 (ABBASOĞLU - BALABAN)
- BZ 08: Section 4 (BEKMEZCİ - ÖZCAN)
- B 204: Section 4 (ÖZKUL - YEŞİLYURT), Section 5 (ADIGÜZEL - DURMUŞ)
- B 206: Section 5 (EKMEKÇİ - YAYAN)
- There will be six in-class quizzes (closed-book, closed-notes, no A4 sheet is allowed) that will be announced in advance.
Homework
- Questions, Due: November 26, 2007
- Questions, Due: December 24, 2007
- Questions, Due: January 14, 2008 (help on command line arguments) (example test files)
Homework assignments will be posted on this page about two weeks before their due date. Assignments are expected to be turned in by 18:00 on the due date. For the late assignments, each student will be given a total of three 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 29 hours late, s/he will have used two late days 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. Graded assignments are to be picked up from the TAs during their office hours. Late submissions should also be done through the online submission form.
Please make sure you fully understand the Bilkent University Policy on Academic Honesty / Öğrenci Disiplin İlke ve Kuralları. Cheating and plagiarism on homework assignments will be punished according to the regulations of the University.
Academic integrity is a problem on programming assignments. Please refer to the "Honor Code Statement" to understand which actions violate the academic integrity. Each student is expected to read and understand this "Honor Code Statement" and return a signed copy of this form to his/her instructor. For those who do not return the signed copy, the homework assignments will not be graded. Students caught cheating on assignments will also be subject to disciplinary action.
Grading Policy
Quiz: | 20% |
Homework: | 15% |
Midterm exam: | 30% |
Final exam: | 35% |
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
- Microsoft Visual C++ (If you would like to obtain Visual C++ through the MSDN Academic Alliance program, you should send an e-mail to and register.)
- Eclipse Open Source IDE
- Borland C++ Builder
- 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