2017 Theory of Algorithms

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Mathematical and Computing Science
Ito Toshiya  Watanabe Osamu 
Course component(s)
Day/Period(Room No.)
Mon5-6(W331)  Thr5-6(W331)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

This course covers problem-oriented algorithm design and analysis techniques. To this end, the instructor gives an overview of the writing and symbols of algorithms, indicating computational complexity as a measure of the efficiency of algorithms. In addition to using computational complexity as a criterion, quality (accuracy and error rate) of output obtained from algorithms is also used as a criteria for designing algorithms for a variety of problems, while also performing theoretical analysis of the quality. The instructor will specifically show exponential time algorithms important for enumeration, typical randomized algorithms as examples of efficient algorithms, online algorithms for searching for good output from partial information, and greedy algorithms for problems with a special structure (general concept of independence), as well as perform theoretical analysis on them.

Student learning outcomes

At the end of this course, students will be able to:
1) design and analyze algorithms
2) understand efficiency measure of algorithms (time complexity and space complexity)
3) understand accuracy measure of algorithms (approximation ratio and competitive ratio)


complexity, randomized algorithms, online algorithms, algebraic method, probabilistic method

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

Exercise problems are assigned (due next class) for homework every few classes to review the lesson content. The material is explained in the next lecture.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Introduction (descriptions of algorithms, notations, etc.) Foundations on algorithms
Class 2 Complexity of algorithms Formal definition of a basic programming language
Class 3 Exponential time algorithms: subexponential time algorithms An example of subexponential algorithm
Class 4 Exponential time algorithms: expected polynomial time algorithms Analysis of exponential algorithms
Class 5 Exponential time algorithms: enumeration algorithms An example of exponential algorithm
Class 6 Randomized algorithms for equality of sequences Number of zeros of multivariate polynomilas and (total) degree of multivariate polynomilas
Class 7 Randomized algorithms for matrix products Orthogonality of nonzero vectors
Class 8 Randomized algorithms for maximum cut Applications of linearity of expectations
Class 9 Derandomization for maximum cut randomized algorithms Applications of pairwise independence
Class 10 Online algorithms for job assignment An example of online algorithm
Class 11 Online algorithms for caching An example of online algorithm
Class 12 Greedy algorithms for minimum spaning trees An example of greedy algorithm
Class 13 Greedy algorithms for Matroids Characterization of greedy algorithms
Class 14 Algebraic method for set systems An example of algebraic method
Class 15 Probabilistic method for maximum independent set An example of probabilistic method


All materials are found on OCW-i or are provides during class.

Reference books, course materials, etc.

1. Fedor V. Fomin and Dieter Kratsch, Exact Exponential Algorithms, Springer, 2010
2. Stasys Jukna, External Combinatorics, Springer, 2001.
3. Allan Borodin and Ran El-Yaniv, Online Computation and Competitive Analysis, Cambridge Univ. Press, 1998.
4. Noga Alon and Joel H. Spencer, The Probabilistic Method, 3rd eds, Wiley, 2008.

Assessment criteria and methods

Students' course scores are determined by solutions to several homework assignments given at the end of class and a report given at the final class.

Related courses

  • MCS.T213 : Introduction to Algorithms and Data Structures
  • CSC.T271 : Data Structures and Algorithms
  • ZUS.F302 : Discrete Structures and Algorithms
  • MCS.T322 : Combinatorial Algorithms
  • MCS.T411 : Computational Complexity Theory

Prerequisites (i.e., required knowledge, skills, courses, etc.)

No prerequisites are necessary, but basic knowledge on algorithms is expected.

Contact information (e-mail and phone)    Notice : Please replace from "[at]" to "@"(half-width character).

Osamu Watanabe watanabe[at]is.titech.ac.jp
Toshiya Itoh titoh[at]c.titech.ac.jp

Office hours

Contact by e-mail in advance for an appointment

Page Top