Syllabus of CTIS 264 - Computer Algorithms


Department: Computer Technology and Information Systems

Credits: Bilkent 3,    ECTS 6

Course Coordinator: Duygu Albayrak

Semester: 2016-2017 Spring

Section: 001

Instructor(s): Hamdi Murat Yıldırım

Office & Office Hours: Mon. 13:40-15:30; Thu 10:40-11:30


Course Schedule:
  Mon. Tue Wed Thu Fri Sat Sun
08:40 - 09:30       CTIS 264-001 CD-B01*      
09:40 - 10:30       CTIS 264-001 CD-B01      
10:40 - 11:30 CTIS 264-001 CD-B01            
11:40 - 12:30 CTIS 264-001 CD-B01            
12:40 - 13:30              
13:40 - 14:30              
14:40 - 15:30              
15:40 - 16:30              
16:40 - 17:30              
17:40 - 18:30              
18:40 - 19:30              
19:40 - 20:30              
          Lecture hours.
          Lab/studio/others
          Spare hour
*  This hour has been reserved as spare hour in the weekly schedule. The spare hour may be used by the instructor for recitations, make-up of classes missed, etc.
 

Contact Hours: 3 hours of lecture per week   
 
Textbook and Other Required Material:
  • Required - Textbook: Introduction to The Design and Analysis of Algorithms, Anany Levitin , 3rd , Pearson
  • Recommended - Textbook: Introduction to Algorithms, Cormen H. T, Leiserson E. C., Rivest L. R., & Stein C., 2009, MIT
 
Catalog Description:
The analysis of algorithms and problem solving techniques. Major concepts including; sorting, searching, divide and conquer algorithms, dynamic programming, greedy algorithms, graph algorithms, cryptographic algorithms and string matching algorithms.
 
Prerequisite(s): CTIS 152 and CTIS 163
 
Assessment Methods:
  Type Label Count Total Contribution
1 Quiz Quizes 1 15
2 Quiz 1 15
3 Final:Essay/written 1 35
4 Midterm:Essay/written 1 30
5 In-class participation Out-of class participation: Moodle and Course Facebook page + Homework (selfchecks) 1 5
 
Minimum Requirements to Qualify for the Final Exam:
If you miss class “more than 12 hours” or you collect “less than 20 points (out of 65 points)” till Final exam, you will get FZ and you cannot enter neither Final norRetake exams.
 
Course Learning Outcomes:
Course Learning Outcome Assessment
Design new algorithms and analyze both efficiency and complexity of algorithms by using mathematical tools. Quizes
Final:Essay/written
Midterm:Essay/written
Interpret, apply, analyze, construct, extend and evaluate algorithms Quizes
Final:Essay/written
Midterm:Essay/written
Out-of class participation: Moodle and Course Facebook page + Homework (selfchecks)
Compare and construct design techniques for algorithm Quizes
Final:Essay/written
Midterm:Essay/written
 
Weekly Syllabus:
  1. Information about the course Objective, Textbook, Grading Chapter 1: Introduction 1.1 What is an Algorithm 1.2 Fundamentals of Algorithmic Problems Solving
  2. Chapter 1: Introduction (Continue) Representation of Algorithm (What is Pseudocode?) 1.3 Important Problem Types. 1.4 Fundamental Data Structures
  3. Appendix A: Useful Formulas for the Analysis of Algorithms Chapter 2: Fundamentals of the Analysis of Algorithm Efficiency 2.1 Analysis Framework
  4. Chapter 2: Fundamentals of the Analysis of Algorithm Efficiency (Continue) 2.2 Asymptotic Notations and Basic Efficiency Classes 2.3 Mathematical Analysis of Nonrecursive Algorithms
  5. Chapter 2: Fundamentals of the Analysis of Algorithm Efficiency (Continue) 2.6 Empirical Analysis of Algorithms Chapter 3: Brute Force & Exhaustive Search 3.1 Selection Sort and Bubble Sort
  6. Chapter 3: Brute Force & Exhaustive Search (Continue) 3.2 Sequential Search and Brute-Force String Matching 3.4 Exhaustive Search
  7. Chapter 4: Decrease-and-Conquer 4.1 Insertion Sort Chapter 5: Divide-and-Conquer: 5.1 Mergesort
  8. Chapter 5: Divide-and-Conquer (Continue) 5.2 Quicksort 5.3 Binary Tree Traversals and Related Properties
  9. Chapter 6: Transform-and-Conquer 6.3 Balanced Search Trees (AVL Trees) 6.4 Heaps and Heapsort
  10. Chapter 7: Space and Time Tradeoffs 7.1 Sorting by Counting 7.5 Hashing
  11. Chapter 8: Dynamic Programming 8.2 Three Basic Examples
  12. Chapter 8: Dynamic Programming 8.3 Optimal Binary Search Trees
  13. Chapter 8: Dynamic Programming (Continue) 8.1 The Knapsack Problem and Memory Functions Chapter 9: Greedy Technique 9.1 Prim’s Algorithm
  14. Review
 
ECTS - Workload Table:
Activities Number Hours Workload
Preparation for Midterm exam 1 12 12
Midterm exam 1 2 2
Preparation for Quiz 2 6 12
Course hours 14 3 42
Final exam 1 2 2
Individual or group work 14 3 42
Quiz 2 2 4
Preparation for Final exam 1 24 24
Homework 14 3 42
Total Workload: 182
Total Workload / 30: 182 / 30
  6.07
ECTS Credits of the Course: 6
 
Type of Course:   Exercise Course - Lecture
 
Course Material:   Multimedia - OHP - PC - PP - Written
 
Teaching Methods:   Assignment - Exercises - Lecture - Presentations