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
Aynur Dayanık (Office: EA 426, Email: )Section 1
Lectures: | Mon 08:30-10:20 (B-Z01), Wed 13:30-15:20 (B-Z01) |
---|
Section 2
Lectures: | Mon 10:30-12:20 (B-113), Wed 15:30-17:20 (B-113) |
---|
Teaching Assistants
- Cihan Erkan (EA 427; cihan.erkan[at]bilkent.edu.tr)
- Hakan Sivük (EA 405; hakan.sivuk[at]bilkent.edu.tr)
Office Hours
- Aynur Dayanık: by appointment
Texts
- Frank M. Carrano and Timothy Henry, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 7th edition, Pearson, 2017 (textbook, ebook).
- 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 ] |
|
Abstract Data Types[ Slides ] |
|
Lists[ Slides ] |
|
Stacks[ Slides ] |
|
Queues[ Slides ] |
|
Standard Template Library[ Slides ] |
|
Exams
- The midterm exam will be held at G-134, G-207, G-210, G-232, and G-236, during 15:30-18:00 on April 10, 2023. It will be a closed-book and closed-notes exam. The exam will cover until the end of case study. Exam locations are as follows: Students in rooms
- The final exam will be held at EE-03, EE-04 and EE-05 during 18:00-20:00 on June 13, 2023. It will be a closed-book and closed-notes exam. The exam will cover the whole semester. Exam locations are as follows: Students in rooms
Homework
- Assignment 1: Due 23:59, April 7, 2023
- Assignment 2: Due
- Assignment 3: Due
- Assignment 4: Due
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 Moodle before the deadline.
Late submissions will not be accepted. Thus, please make sure that you start working on the assignments early enough and submit them on time.
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 on exams and homework assignments will be punished according to these regulations.
A very important guideline on academic integrity is the Honor Code for Introductory Programming Courses (CS 101/2 and 201/2) in our department. Please make sure that you are fully aware of these guidelines.
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 instructor also reserve 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 (7th 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
- Documentation and Tutorials
- C/C++ Reference
- C++ Resources Network
- GNU Standard C++ Library
- 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
- MIT course on useful tools for CS education
- Operating Systems and Emulators
- Other Software