Course Description
Introduction to C++. Data abstraction and dynamic memory management. Implementation and analysis of abstract data types. Lists. Trees. Tables. Priority Queues. Heaps. Balanced trees. Hashing. Graphs.
Section 1
| Instructor: | Ercüment Çiçek (Office: EA 514, Email: cicek[at]cs.bilkent.edu.tr) |
|---|---|
| Lectures: | Mon 08:30-10:20 (EB-101), Wed 13:30-15:20 (EB-101) |
Section 2
| Instructor: | Selim Aksoy
(Office: EA 422, Email: )
|
|---|---|
| Lectures: | Tue 13:30-15:20 (EB-103), Fri 08:30-10:20 (EB-103) |
Section 3
| Instructor: | Selim Aksoy
(Office: EA 422, Email: )
|
|---|---|
| Lectures: | Tue 08:30-10:20 (EB-103), Thu 13:30-15:20 (EB-103) |
Section 4
| Instructor: | Ercüment Çiçek (Office: EA 514, Email: cicek[at]cs.bilkent.edu.tr) |
|---|---|
| Lectures: | Mon 10:30-12:20 (EB-104), Wed 15:30-17:20 (EB-104) |
Teaching Assistants
- TBD
Office Hours
- Selim Aksoy: by appointment
- Ercüment Çiçek: by appointment
Texts
- Frank M. Carrano and Timothy Henry, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 7th edition, Pearson, 2017 (recommended).
Lectures
Topics |
Contents |
|---|---|
Introduction[ Slides ] |
|
Pointers and Arrays[ Slides ] |
|
Linear Data Structures: Lists |
|
Non-linear Data Structures: Trees |
|
Tables |
|
Balanced Search Trees |
|
Hashing |
|
Graphs |
|
Exams
- The midterm exam will be held at TBD during TBD. It will be a closed-book and closed-notes exam.
- The final exam will be held at TBD during TBD. It will be a closed-book and closed-notes exam. The exam will cover the whole semester.
Homework
- Assignment 1: TBD
- Assignment 2: TBD
- Assignment 3: TBD
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 and plagiarism 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 211) in our department. Please make sure that you are fully aware of these guidelines.
GenAI Policy: Using Generative Artificial Intelligence (GenAI) tools to do programming assignments is strictly prohibited unless otherwise stated. A violation of this rule will be treated as cheating/plagiarism/academic misconduct. Please also check the Guidelines for the Use of Generative Artificial Intelligence (GenAI) Tools at Bilkent.
Grading Policy
| Homework: | 10% |
| Midterm exam: | 45% |
| Final exam: | 45% |
In order to be able to take the final exam, a student must
- collect at least 30% of EACH of the first two homework grades, AND
- collect at least 35% 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 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
- Compilers and Integrated Development Environments
- Documentation and Tutorials
- C/C++ Reference
- C++ Resources Network
- GNU Standard C++ Library
- Linux command summary [ summary1 | summary2 ]
- 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
- Java to C++ Guide, CS106B Programming Abstractions course at Stanford
- C++ for Java Programmers video series by Mary Elaine Califf
- Operating Systems and Emulators
- Other Software
)