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.
Section 1
Instructor: | Ercüment Çiçek (Office: EA 514, Email: cicek[at]cs.bilkent.edu.tr) |
---|---|
Lectures: | Tue 17:30-19:20 (EE 05), Fri 10:00-11:50 (EE 05) |
Section 2
Instructor: | Selim Aksoy (Office: EA 422, Email: ) |
---|---|
Lectures: | Tue 15:30-17:20 (EE 214), Fri 8:00-9:50 (EE 214) |
Section 3
Instructor: | Selim Aksoy (Office: EA 422, Email: ) |
---|---|
Lectures: | Mon 8:00-9:50 (EE 214), Wed 15:30-17:20 (EE 214) |
Teaching Assistants
- Mert Duman (duman.m.mert[at]gmail.com)
- Aydamir Mirzayev (aydamir.mirzayev[at]bilkent.edu.tr)
Office Hours
- Ercüment Çiçek: by appointment
- Selim Aksoy: by appointment
- Mert Duman: Mon 10:30-12:30
- Aydamir Mirzayev: Fri 15:30-17:30
Texts
- Frank M. Carrano and Timothy Henry, Data Abstraction and Problem Solving with C++: Walls and Mirrors, any edition, Pearson, 2013 or newer (required).
- 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 ] |
|
Pointers and Arrays[ Slides ] |
|
Case Study[ Slides ] |
|
Multidimensional Arrays[ Slides ] |
|
Recursion[ Slides ] |
|
Algorithm Analysis[ Slides ] |
|
Lists |
|
Stacks[ Slides ] |
|
Queues[ Slides ] |
|
Exams
- The midterm exam will be held at EB-101, EB-102, EB-103, EB-104,
EB-201, EB-202, EB-203, EB-204, EE-03, EE-04, EE-05, EE-214, EE-412
during 08:30-11:00 on November 11, 2020.
It will be a closed-book and closed-notes exam. No A4 sheet will be allowed.
The exam will cover until the end of the case study slides.
Exam locations are as follows:
- EE-03: ABİ - AYDOĞDU
- EE-04: AYDOĞMUŞ - ÇETİNUS
- EE-05: ÇİFTÇİ - ER
- EE-214: ERDAL - GENÇ
- EE-412: GHAFFARZADEH- KANDEMİR
- EB-201: KANTARCIOĞLU - KUTLU
- EB-202: KÜÇÜKASLAN - ÖNAL
- EB-203: ÖNDER - ÖZYEĞEN
- EB-204: PİRİM - SEZEN
- EB-101: SİVRİKAYA - ŞENLİ
- EB-102: ŞİMŞİR - TURAN
- EB-103: TURUNÇ - YAVUZ
- EB-104: YETİŞTİREN - ZİYAGİL
- The final exam will be held during 12:30-16:30 on January 4, 2020. The exam will cover the whole semester. The classroom assignments will be announced by the university.
Homework
- Assignment 1: Due 23:59 on November 16, 2020
- Assignment 2: Due 23:59 on November 30, 2020
- Assignment 3: Due 23:59 on December 14, 2020
- Assignment 4: Due 23:59 on December 28, 2020
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 on Moodle before the deadline.
For the late assignments, 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 attend the 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 (7th ed., Carrano and Henry) home page
- Data Abstraction and Problem Solving with C++: Walls and Mirrors (6th ed., Carrano and Henry) home page
- Mark Allen Weiss home page
- 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
- 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
- Dev C++ IDE
- Code::Blocks C++ IDE
- Documentation and Tutorials
- 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
- Compiling C and C++ Programs
- GCC and Make: Compiling, Linking and Building C/C++ Applications
- Makefile Tutorial
- Operating Systems and Emulators
- Other Software