BILKENT UNIVERSITY
CS 201 Fundamental Structures of Computer Science I, Fall '04
Section 1 (15:40-17:30 T, 13:40-15:30 F at BZ02)
Section 2 (13:40-15:30 W, 15:40-17:30 F at BZ02 Dr. Tugrul Dayar
Department of Computer Engineering, EA521
e-mail: tugrul@cs.bilkent.edu.tr
Office Hours (OH): 8:40-12:30 W (or if this is not possible, by appointment from 1981)
Section 3 (15:40-17:30 M, 13:40-15:30 Th at BZ01) Dr. Ugur Gudukbay
Department of Computer Engineering, EA524
e-mail: gudukbay@cs.bilkent.edu.tr
OH: 8:40-10:30 F (or if this is not possible, by
appointment from 1386)
Teaching Assistants
Section 1: Umut Tosun (umutt@cs.bilkent.edu.tr, EA531, OH: 8:40-10:30 M),
Section 2: Gokce Nil Noyan (gnil@cs.bilkent.edu.tr, EA 501, OH: 10:40-12:30 T),
Section 3: Tarkan Sevilmis (sevilmis@cs.bilkent.edu.tr, EA526, OH: 14:40-15:30 M, 15:40-16: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 introduces the abstract data types of
lists, queues, and
stacks, 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, 4th edition,
Prentice Hall, 2003.
[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 and C++ programming (Ch.1 of textbook [1],
slides 186K, ppt file)
Control Structures (Ch.2 of textbook [1],
slides 240K, ppt file)
Functions (Ch.3 of textbook [1],
slides 284K, ppt file)
Arrays (Ch.4 of textbook [1],
slides 456K, ppt file)
Pointers and Strings (Ch.5 of textbook [1],
slides 333K, ppt file)
Classes and Data Abstraction (Ch.6 of textbook [1],
slides 454K, ppt file)
Classes: Part II (Ch.7 of textbook [1],
slides 411K, ppt file)
Operator Overloading; String and Array Objects (Ch.8 of textbook [1],
slides 447K, ppt file)
Principles of Programming and Software Engineering (Ch.1 of textbook [2],
slides 668K, ppt file)
Abstract Data Types (Ch.3 of textbook [2],
slides 1525K, ppt file)
Linked Lists (Ch.4 of textbook [2],
slides 824K, ppt file)
Stacks (Ch.6 of textbook [2],
slides 1256K, ppt file)
Queues (Ch.7 of textbook [2],
slides 1068K, ppt file)
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.
Grading:
Homework/Quiz (30%)
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.
The turned in assignment must be a printer output and a floppy disk with your
name, number,
and section including 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.
For the grading criteria and submission information, check the assistant's Web page
Grading Criteria
and Submission Information
Assignment 1
(Section 1 due October 8, friday)
(Section 2 due October 8, friday)
(Section 3 due October 7, thursday) Grades
Assignment 2
(Section 1 due October 22, friday)
(Section 2 due October 22, friday)
(Section 3 due October 21, thursday)
Assignment 3
(Section 1 due November 12, friday)
(Section 2 due November 12, friday)
(Section 3 due November 11, thursday)
Assignment 4
(Section 1 due November 26, friday)
(Section 2 due November 26, friday)
(Section 3 due November 25, thursday)
Assignment 5
(Section 1 due December 10, friday)
(Section 2 due December 10, friday)
(Section 3 due December 9, thursday)
Assignment 6
(Section 1 due December 24, friday)
(Section 2 due December 24, friday)
(Section 3 due December 23, thursday)
Midterm (30%) December 2, thursday, 17:40-19:40,
EB 101, 103, 201, 202, 203, 204
(an open (text)book exam, covers the eight chapters in [1])
Final (40%) January
(a comprehensive, open textbook exam: 8% from midterm material,
32% from [2]:
you should bring either [2] or [1] but not both; we highly recommend [2])