BILKENT UNIVERSITY
CS 202 Fundamental Structures of Computer Science II, Spring '08
Dr. Savio Tse Section 1 (13:40-15:30 W, 15:40-17:30 F at B204) Dr. Ilyas Cicekli Section 2 (15:40-17:30 T, 13:40-15:30 F at B204) Dr. Savio Tse Section 3 (08:40-10:30 T, 10:40-12:30 Th at B204) Dr. Tugrul Dayar
Department of Computer Engineering, EA521;
e-mail: tugrul@cs.bilkent.edu.tr
Section 4 (13:40-15:30 T, 15:40-17:30 Th at B204)
OH: 13:40-15:30 Th (or if this is not possible, by appointment from 1981) Teaching Assistants
Kadir Akbudak (kadir@cs.bilkent.edu.tr, EA526,
OH: 10:30-12:30 T),
Miray Kas (miray@cs.bilkent.edu.tr, EA439,
OH: 13:30-15:30 M),
Onur Kucuktunc (onurk@cs.bilkent.edu.tr, EA529,
OH: 13:30-15:30 Th),
Ozcan Oksuz (oksuz@cs.bilkent.edu.tr, EA530,
OH: 13:40-15:40 Th), Course Description:
The course picks up from where the first semester course left by discussing
concepts related to algorithmic efficiency on basic abstract data types and
some sorting
algorithms that utilize recursion. Then the course introduces the abstract
data types of trees,
tables, priority queues, and graphs, and shows how one can implement them in C++
using
fundamental data structures by emphasizing run-time complexity analysis.
Textbooks:
[1] Frank M. Carrano, Data Abstraction and Problem Solving with C++:
Walls and Mirrors, 5th edition, Addison-Wesley, 2006.
(You can also use the 4th edition.)
[2] Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 3rd edition,
Addison Wesley,
2006. (recommended)
[3] Harvey M. Deitel and Paul J. Deitel, C++ How to Program, 5th edition,
Prentice Hall, 2005.
(recommended) Course Outline:
Algorithm Efficiency and Sorting (Ch.9 of textbook [1], 3 weeks)
Trees (Ch.10 of textbook [1], 2 weeks)
Tables and Priority Queues (Ch.11 of textbook [1], 2 weeks)
Advanced Implementation of Tables (Ch.12 of textbook [1], 4 weeks)
Advice:
When you are in doubt, ask. Use office hours. If you cannot visit me 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:
Quiz and attendance (15%)
Homework (15%)
Assignments will be posted 7-10 days before their due date.
Assignments are due at class time on the due date; they will not be accepted
after class time.
Turned in assignments must be printer outputs with your names, student-ids,
and sections on them;
otherwise they will not be graded.
You should also send an e-mail message (to the assigned TA) containing your
typed homework and
source codes of your C++ programs in your homework. You should send this
e-mail message
before 18:00 on the due date.
Graded assignments are to be picked up from the TAs during their office hours.
You have to do your own homeworks. Cheating will be heavily punished.
Assignment 1
(Due March 11) solutions
Assignment 2
(Due March 21) solutions
Assignment 3
(Due April 14)
solutions_part_1
solutions_part_2
Assignment 4
(Due April 25)
solutions_part_1
solutions_part_2
Assignment 5
(Due May 16)
solutions
Midterm 1 (20%) March 25 (tuesday), 17:40-19:40, EB 101-204
(a closed book/notes exam, covers chapters 9-11 from [1])
Midterm 2 (20%) April 29 (tuesday), 17:40-19:40, EB 101-204
(a closed book/notes exam, covers chapters 12 from [1])
Final (30%) May 26 (monday), 9:00-11:30, EB 101-204
(a comprehensive closed book/notes exam, covers chapters 9-13 from [1])