BILKENT UNIVERSITY

CS 202 Fundamental Structures of Computer Science II, Spring
'18

Dr. Tugrul Dayar

Department of Computer Engineering (EA521) e-mail: tugrul@cs.bilkent.edu.tr

Section 3 (8:40-10:30 M, 10:40-12:30 W at EE517)

OH: 13:40-15:30 Th (or if this is not possible, by
appointment from x1981)

**Teaching
Assistant**

(Hasan Balci, EA525, hasan.balci@bilkent.edu.tr, OH:
13:40-15:30 Th, or if this is not possible, by
appointment from x3474,

Ilkin Safarli, EA525, ilkin.safarli@bilkent.edu.tr,
OH: 13:40-15:30 W, or if this is not possible, by appointment from x3474,

Leonard
Dervishi, EA525, leonard.dervishi@bilkent.edu.tr,
OH: 13:40-15:30 T, or if this is not possible, by appointment from x3474)

**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 and Timothy M. Henry, Data
Abstraction and Problem Solving with C++:

Walls
and Mirrors, 6th edition, Pearson, 2013. (Textbook)

[2]
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.)

[3] Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 3rd
edition, Addison Wesley,

2006. (recommended)

[4] Harvey M. Deitel and Paul J. Deitel,
C++ How to Program, 8th edition, Prentice Hall, 2011.

(recommended)

**Course
Outline:**

- Algorithm Efficiency and Sorting (Ch.10 and 11 of
textbook [1], 3 weeks, slides1,
slides2)
- Trees (Ch.15 and 16 of textbook [1], 2 weeks, slides)
- Tables and Priority Queues (Ch.17 of textbook [1], 2
weeks, slides)
- Advanced Implementation of Tables (Ch.18 and 19 of
textbook [1], 4 weeks, slides1)
- Graphs (Ch.20 of textbook [1], 3 weeks, slides)

**Resources:**

- Data
Abstraction and Problem Solving with C++: Walls and Mirrors home page.
- Source files
of examples
- Mark Allen Weiss
home page
- Deitel
& Deitel home page
- Related books in the
library

**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 (9%)
- Homework (16%) grading rubric

Assignments will be posted 7-10 days before their due date.

Assignments should be uploaded to Moodle by 23:55 on the due date.

Graded assignments are to be picked up from the TAs during their office hours.

You have to do your own homework. Cheating will be heavily punished. - Assignment
1 (due on Monday, February 26)
- Assignment
2 (due on Sunday, March 18)
- Assignment
3 (due on Wednesday, April 18)
- Assignment 4 (due on
Saturday, May 12)
- Midterm 1 (25%) March 9 (Friday), 17:40-19:40,
EE03,04,05,214

(a closed book/notes exam, covers chapters 10-11, 15 from [1])

·
Midterm
2 (25%) April 12 (Thursday), 17:40-19:40, EE03,04,05,214

(a closed book/notes exam, covers chapters 16-19 from [1])

·
Final
(25%) 27 May (Sunday), 9:00-11:30, BZ01,02,04,05,08

(a comprehensive closed book/notes exam, covers chapters 10-11, 15-20 from [1])

In order to be able to
take the final exam,

one must obtain a weighted sum of at least 40% from the quiz, midterm,
first 3 homework grades,

and at least 30% from the first 3 homework grades;

else one will receive FZ.

Please
see the Bilkent University policy on Academic
honesty.

CS202
other sections.