BILKENT UNIVERSITY
CS 201 Fundamental Structures of Computer Science I, Fall '05
Section 1 (10:40-12:30 M, 8:40-10:30 F at BZ05) Section 3 (15:40-17:30 M, 13:40-15:30 Th at BZ05) Dr. Selim Aksoy
Department of Computer Engineering, EA423
e-mail: saksoy@cs.bilkent.edu.tr
Office Hours (OH): 9:40-10:30, 14:40-15:30 M (or if this is not possible, by appointment from 3405)
Section 2 (13:40-15:30 W, 15:40-17:30 F at BZ05 Dr. Tugrul Dayar
Department of Computer Engineering, EA521
e-mail: tugrul@cs.bilkent.edu.tr
OH: 13:40-15:30 F (or if this is not possible, by appointment from 1981)
Teaching Assistants
Section 1: Huseyin Gokhan Akcay (akcay@cs.bilkent.edu.tr, EA522, OH: 14:40-16:30 W),
Section 2: Umut Tosun (umutt@cs.bilkent.edu.tr, EA501, OH: 10:40-12:30 M),
Section 3: Emel Kaya Dogrusoz(emelkaya@cs.bilkent.edu.tr, EA530, OH: 10:40-12:30 Th). Course Description:
The course teaches C++ in a way that emphasizes algorithm design using a
structured, modular,
and object-oriented approach. Then it studies recursion, introduces the
abstract data type of lists,
and shows how one can implement them in C++ using fundamental data
structures.
Textbooks:
[1] Harvey M. Deitel and Paul J. Deitel, C++ How to Program, 5th edition,
Prentice Hall, 2005.
[2] Frank M. Carrano, Data Abstraction and Problem Solving with C++:
Walls and Mirrors,
4th edition, Addison-Wesley, 2005.
[3] Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 2nd edition,
Addison Wesley,
1999. (recommended)
Course Outline:
Introduction to Computers, the Internet and World Wide Web
(Ch.1 of textbook [1],
slides 1549K, ppt file)
Introduction to C++ Programming (Ch.2 of textbook [1],
slides 2595K, ppt file)
Introduction to Classes and Objects (Ch.3 of textbook [1],
slides 3845K, ppt file)
Control Statements: Part I (Ch.4 of textbook [1],
slides 1415K, ppt file)
Control Statements: Part II (Ch.5 of textbook [1],
slides 6564K, ppt file)
Functions and Introduction to Recursion (Ch.6 of textbook [1],
slides 1773K, ppt file)
Arrays and Vectors (Ch.7 of textbook [1],
slides 1861K, ppt file)
Pointers and Pointer-Based Strings (Ch.8 of textbook [1],
slides 2318K, ppt file)
Classes: A Deeper Look, Part I (Ch.9 of textbook [1],
slides 1380K, ppt file)
Classes: A Deeper Look, Part II (Ch.10 of textbook [1],
slides 1194K, ppt file)
Operator Overloading; String and Array Objects (Ch.11 of textbook [1],
slides 1253K, ppt file)
Principles of Programming and Software Engineering (Ch.1 of textbook [2],
slides 668K, ppt file)
Recursion: The Mirrors Ch.2 of textbook [2],
slides 1146K, ppt file)
Abstract Data Types (Ch.3 of textbook [2],
slides 1525K, ppt file)
Lists (Ch. 4 of textbook [2],
slides 824K, ppt file)
Recursion as a Problem-Solving Technique (Ch.5 of textbook [2],
slides 594K, ppt file)
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.
Grading:
Homework (25%)
Assignments will be posted on this page about ten days before their due date.
Assignments are due at class time on the due date; they will not be accepted
after class time.
You should turn in a hardcopy (printer output) in class and also upload your
homework using
the online submission form before midnight (23:59) the same day.
Your submission must include both source code and sample output;
otherwise they will not be graded.
Sample outputs should test a sufficient number of inputs so as to demonstrate
that your program
works correctly.
Graded assignments are to be picked up from the TAs during their office hours.
Assignment 1, solutions
(Section 1 due 29 September, thursday)
(Section 2 due 28 September, wednesday)
(Section 3 due 29 September, thursday)
Assignment 2, solutions
(Section 1 due October 13, thursday)
(Section 2 due October 12, wednesday)
(Section 3 due October 13, thursday)
Assignment 3, solutions
(Section 1 due October 27, thursday)
(Section 2 due October 26, wednesday)
(Section 3 due October 27, thursday)
Assignment 4, solutions
(Section 1 due November 14, tuesday)
(Section 2 due November 16, wednesday)
(Section 3 due November 14, tuesday)
Assignment 5, solutions
(Section 1 due December 19, monday)
(Section 2 due December 16, friday)
(Section 3 due December 19, monday)
Quiz (5%)
Midterm (30%) thursday November 17, 17:40-19:30, EB 101-104, 203-204
(an open (text)book exam, covers the eleven chapters in [1])
Final (40%) tuesday December 27, 15:30-18:30, BZ 01-05, 08
(a comprehensive, open textbook exam: 25% from midterm material,
75% from [2]:
you should bring either [2] or [1] but not both; we highly recommend [2])