BILKENT UNIVERSITY
CS 202 Fundamental Structures of Computer Science II, Fall '11


Dr. Tugrul Dayar
Department of Computer Engineering, EA521; e-mail: tugrul@cs.bilkent.edu.tr
Section 1 (10:40-12:30 T, 8:40-10:30 F at EB202)
Section 2 (15:40-17:30 T, 13:40-15:30 F at EB202)
OH: 13:40-15:30 Th (or if this is not possible, by appointment from 1981/1261)


Teaching Assistants
Gizem Misirli (gmisirli@cs.bilkent.edu.tr, EA522, OH: 13:40-15:30 T),
Muhsin Can Orhan (morhan@cs.bilkent.edu.tr, EA530, OH: 10:40-12:30 F),


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, 6th edition, Prentice Hall, 2008.
(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)
  • Graphs (Ch.13 of textbook [1], 3 weeks)

Resources:


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 on friday, October 14)
    • Assignment 2 (due on tuesday, November 1)
    • Assignment 3 (due on friday, December 2)
    • Assignment 4 (due on tuesday, December 13)
    • Assignment 5 (due on friday, December 23)
  • Midterm 1 (20%) October 26 (wednesday), EB101, 17:40-19:40
    (a closed book/notes exam, covers chapters 9-10 from [1])
    • Make-up November 17 (thursday), EA 2nd Floor Dean’s Office, 8:40-10:00
  • Midterm 2 (20%) December 14 (wednesday), EB102, 17:40-19:40
    (a closed book/notes exam, covers chapters 10-11-12 (except hashing) from [1])
    • Make-up December 26 (monday), EA 2nd Floor Dean’s Office, 10:40-12:00
  • Final (30%) January 19 (Thursday), EB 101, 15:30-18:00
    (a comprehensive closed book/notes exam, covers chapters 9-13 from [1])

Please see the Bilkent University policy for academic honesty.

Scores.