CS 201: Fundamental Structures of Computer Science I
Section 1 and Section 2
Spring 2013
|
Instructor: |
Aynur Dayanık |
|
Office: |
Engineering Building, EA-426 |
|
Phone: |
x3441 |
|
E-mail: |
|
|
Lectures: |
Section 1: Mon 10:40-12:30 (B-Z 08) and Thur 9:40-10:30 (B-Z 08) Section 2: Tue 15:40-16:30 (EB-201) and Fri 13:40-15:30 (EB-201) |
|
Office Hours: |
Tuesday 11:00-12:00 or by appointment |
|
TAs: |
Salim Arslan (salima at cs bilkent edu tr) Tunc Gultekin (tunc.gultekin at bilkent edu tr) Gulden Olgun (gulden at cs bilkent edu tr |
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.
Textbooks:
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)
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). The quiz dates are announced in the syllabus. There will be NO make-up quiz.
The midterm exam date will be announced shortly. It will be a closed-book and closed-notes exam. No A4 sheet will be allowed either.
The final exam will cover the whole semester. The final exam date will be announced by the university. It will be a closed-book and closed-notes exam. No A4 sheet will be allowed either.
Homework:
Homework 0 (Assigned on Feb 28, 2013. This assignment will not be graded.) You can download the sample files from here: hw0_files.zip. You can now download a sample solution for this homework.
Homework 1 (4%) Assigned on March 14, Due: 23:59 on Thursday, April 4, 2013.
Homework 2 (2%) Assigned on April 8, Due: 23:59 on Thursday, April 18, 2013.You can download the implementations of the three algorithms.
Homework 3 (4%) Assigned on April 26, Due: 23:59 on Monday, May 13, 2013.
Homework assignments will be posted on this page about two weeks before their due date. 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 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. Note that no late submission will be allowed for the last homework.
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.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.
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 an average of at least 40% from the weighted sum of the quiz and midterm grades;
else one will receive FZ.
The instructor reserves the right to set thresholds for passing grades.
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
Compilers and Integrated Development Environments
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.
Documentation
Linux tutorial by the course TAs
C Programming in Linux by Ibrahim Korpeoglu
Operating Systems and Emulators
Other Software