BBM 202  Algorithms, Spring 2013
Lectures: Thursday 13:0015:45 @D2 (Section 2)
Practicum (BBM204): Friday 15:0016:45 @D4 (Sections 35)
“It has often been said that a person does not really understand something until he teaches it to someone else. Actually a person does not really understand something until he can teach it to a computer, i.e. express it as an algorithm The attempt to formalise things as algorithms lead to a much deeper understanding than if we simply try to comprehend things in the traditional way.”
~Donald E. Knuth, in American Mathematical Monthly (1974)
Teaching Staff: 
Erkut Erdem (Instructor)  Burcu Can  Pelin Aktas  Yasin Sahin 
email: 
erkutatcs.hacettepe.edu.tr 
burcucanatcs.hacettepe.edu.tr 
pelinaktasatcs.hacettepe.edu.tr 
yasinatcs.hacettepe.edu.tr 
Office, Tel: 
114, Tel: 297 7500 / 149 
217, Tel: 297 7500 / 121 
Old VisionLab, Tel: 297 7500 
218, Tel: 297 7500 / 123 
Office Hours: 
Tuesday, 13:3015:30 
Thursday, 09:0011:00 
Tuesday, 09:3011:30 
Thursday, 15:3017:00 
Lectures: 
Thursday, 13:0015:45 @ D2 (Sec. 2)  
Practicum (BBM204): 
Friday, 15:0016:45 @ D4 (Sec. 35)  
Course Description:
The subject matter of this course concerns fundamental algorithms in computer science. The course is structured around key topics including analysis of algorithms, sorting, searching, graph algorithms, string processing, dynamic programming, combinatorial search and NPcompleteness.
The goal of this course is to teach student how to develop algorithms in order to solve the complex problems in the most efficient way. The students are expected to develop a foundational understanding and knowledge of key concepts that underly important algorithms in use on computers today. The students will also be expected to gain handon experience via a set of programming assignments supplied in the complementary BBM 204 Software Practicum.
Textbook:
Algorithms, 4th Edition, R. Sedgewick and K. Wayne, AddisonWesley Professional, 2011
Grading Policy:
2 Quizzes 
24% (12% each) 
Midterm exam 
32% 
Final exam 
40% 
Class participation 
4% 
Important Dates:
Programming Assignment 1 
25 March 2013 
Programming Assignment 2 
08 April 2013 
Programming Assignment 3 
29 April 2013 
Programming Assignment 4 
13 May 2013 
Programming Assignment 5 
27 May 2013 
Quiz 1 
04 April 2013 
Quiz 2 
23 May 2013 
Midterm exam 
25 April 2013 
Final exam 
To be announced. 
Detailed Schedule:
Week 
Date 
Topic 
From the book 
Assignments 

1 
3/7 
Introduction, Analysis of Algorithms [slides] [4perpage] 
1.4 

2 
3/14 
Recursion, Recurrence Relations [slides] 

3 
3/21 
Sorting Algorithms (Review + HeapSort) [slides] [4perpage] 
2.12.4 
PA1 out 

4 
3/28 
Elementary Search Algorithms, Binary Search Trees [slides] [4perpage] 
3.1, 3.2 

5 
4/4 
Balanced Trees, Geometric Applications [slides] [4perpage], Quiz 1 [questions] 
3.3 
PA1 due, PA2 out 

6 
4/11 
Hashing, Search Applications [slides] [4perpage] 
3.4, 3.5 

7 
4/18 
Undirected Graphs, Directed Graphs [slides] [4perpage] 
4.1, 4.2 
PA2 due 

8 
4/25 
Midterm Exam [questions] 
PA3 out 

9 
5/2 
Minimum Spanning Trees, Shortest Path [slides] [4perpage] 
4.3, 4.4 

10 
5/9 
String Sorts, Tries [slides] [4perpage] 
5.1, 5.2 
PA3 due, PA4 out 

11 
5/16 
Substring Search, Regular Expressions [slides] [4perpage] 
5.3, 5.4 

12 
5/23 
Quiz 2 [questions] 
5.5 
PA4 due, PA5 out 

13 
5/30 
Data Compression [slides] [4perpage] 

14 
6/6 
Advanced topics [slides] [4perpage] 
6.56.6 
PA5 due 

Communication:
The course webpage will be updated regularly throughout the semester with lecture notes, programming and reading assignments and important deadlines. All other course related communications will be carried out through Piazza. Please enroll it by following the link https://piazza.com/hacettepe.edu.tr/spring2013/bbm202
For the BBM 204 related communications, you should also enroll that course in Piazza through the link https://piazza.com/hacettepe.edu.tr/spring2013/bbm204
Policies:
Attendance to lectures is required. You are responsible for all material presented in lecture. Some of the course material is not covered in the textbook.
All work on assignments must be done individually unless stated otherwise. You are encouraged to discuss with your classmates about the given assignments, but these discussions should be carried out in an abstract way. That is, discussions related to a particular solution to a specific problem (either in actual code or in the pseudocode) will not be tolerated.
In short, turning in someone else’s work, in whole or in part, as your own will be considered as a violation of academic integrity. Please note that the former condition also holds for the material found on the web as everything on the web has been written by someone else.