Kuopion yliopisto Klikkaamalla nimeä pääset etusivulle

ASA 2009
Practical arrangements
Course material
Exercises
Assumed background
Links
Course feedback

Other links
Department of Computer Science
Wossikka
University of Kuopio

Algoritmien suunnittelu ja analysointi (syksy 2009)

  • Tietojenkäsittelytieteen syventävien opintojen (IV-V vuosi) kurssi (6 op)
  • vaihtoehtoisesti pakollinen älytekniikan linjalla, valinnainen ohjelmistotekniikan linjalla
  • (vanhassa tutkintorakenteessa pakollinen tietojenkäsittelytieteen linjalla, valinnainen ohjelmistotekniikan sekä tieto- ja tietoliikennetekniikan linjoilla)

Design and Analysis of Algorithms (Fall 2009)

  • graduate-level course (6 ECTS) in Computer Science
  • obligatory for the specialization lines of Computational Intelligence and of Computer Science, elective for other specialization lines
I'll reserve most of the last lecture on Tuesday, October 27 for a fast-replay Review of the course. (But first we'll complete the discussion of the fully polynomial epsilon approximation for Knapsack.)

Thanks for Mikko Suominen for pointing out a typo on this page: At least half of the total exam points are required for passing the course, while the exercise activity is not obligatory (as it was erroneously written).

Goals of the course:

  • learn methods for analyzing algorithms and for designing efficient algorithms
  • familiarize with some central algorithmic problems and their solutions
  • learn to understand and to utilize exact formalizations of computational problems
  • get a well-founded understanding of the limitations (unsolvability, NP-completeness) of algorithmic computing
  • obtain literacy of algorithmic literature

Language of the course
The course is bi-lingual. I'll use English when there are international students in class (and perhaps some Finnish, too). You can use either Finnish or English to communicate with me and to provide solutions. Printed course notes (luentomoniste) are available in Finnish. The slides are in English; their hand-out copies will be made available on-line (see below).

Materials for International Students
Practical arrangements

Please register for the course through Wossikka. (In addition, I can accept late registrations at the lecture.)

Contact teaching:
  • 34 hours of lectures (Tue 1.9. - Tue 27.10.09)
The first lecture is on Tuesday, September 1, at 10-12 am in class MT2.
  • 8*2 hours of exercise sessions (11.09. - 30.10.)
The lectures and the exercise sessions are given by professor Pekka Kilpeläinen.
  • two midterm exams: The first one on Thursday, October 8, at 14-16 in class MT3, and the second one on November 5, at 8-10 in class E26+27 (together with the final exam). Please register for the exams through Wossikka.
The course schedule is available among other on-line course schedules.

The grade is determined by the formula

    round(6*E + 2*H - 2,5) ,
where E is the fraction of exam points out of their maximum, and H is the fraction of solved exercise assignments out of their total. The lowest accepted grade is 1, and the highest is 5. Notice that exercise activity forms 25 % of the grade. For passing the course one must get at least half of the total exam points. (That is, (exam_1 + exam_2)/(max_exam_1 + max_exam_2) >= 0,5.) Examples of the grades given by the formula can be found here.

Alternatively one can take the final exam, which will be on Thursday, November 5 at 8-12 in class E26+27. Please register for the final exam through Wossikka. The exercise activity can be rewarded in the final exam, too, so that the better of the grades given (a) by exam points alone or (b) by exam and ecercise activity together will be chosen. In either option, a minimum of half of the exam points is required for passing the course.

The exercise activity is not taken into account in retake exams anymore. The first retake exam will be on Monday, December 7, at 8-12 in E26+27.

Course Material

The contents of the course is included in the Finnish lecture notes (luentomoniste) "Algoritmien suunnittelu ja analysointi (ASA), Syksy 2008 (2009)" (sama kuin vuonna 2008). The lecture notes can be bought at the KUTOP cafeteria, on the 3rd floor of Technopolis "IT building". The price is 2.95 EUR.

Textbooks: The main topics of the course are selected from Penttonen, M, Johdatus algoritmien suunnitteluun ja analysointiin (Otatieto, 1997), and from Levitin, A, Introduction to the design and analysis of algorithms, second intl ed (Addison-Wesley, 2006). For a more detailed coverage of the course by international textbooks, see here.

NB: Penttonen's textbook, the lecture notes, and the slide hand-outs are quite terse, and therefore more suitable as support for following the lectures than as self-study material. (See also Ian Craw's note about the relationship of lecture notes and lectures.)

Slide copies

  1. Introduction
  2. Analysis methods
  3. Algorighm desing patterns I
    • Brute force
    • Divide-and-conquer
    • Decrease-and-conquer
  4. Transform and Conquer
  5. Heaps and Heapsort
  6. Space-Time Tradeoffs
  7. Greedy Method
  8. Dynamic Programming
  9. Limitations of Computing
  10. Random Access Machine
  11. Turing Machine
  12. Comparison of TM and RAM models
  13. NP-completeness
  14. Solving hard problems

Harjoitustehtävät / Exercises

Exercise assignments will be posted here, normally about a week before the exercise session.

  1. harjoitus (11.9.) (English version)
  2. harjoitus (18.9.) (English version)
  3. harjoitus (25.9.) (English version)
  4. harjoitus (1.10.) (English version)
  5. harjoitus (16.10.) (English version)
  6. harjoitus (20.10.) (English version)
  7. harjoitus (23.10.) (English version)
  8. harjoitus (30.10.) (English version)

Assumed background

  • Data structures and algorithms
  • Theory of computation (or Basic models of computation)
  • Undergraduate (or well-mastered high-school) mathematics, esp. discrete math
(or familiarity with similar such stuff).

Course feedback

Seven students gave feedback on the course; thanks for them. The summary of the feedback can be found in "Wossikka", or as PDF here.

Summaries of student feedback of previous years (in Finnish):
2008 2007 2006 2005 2004 2003 2002 2001 2000

Pekka Kilpeläinen
University of Kuopio, Department of Computer Science, P.O.Box 1627, FI-70211 Kuopio, email: FirstName.LastName@uku.fi
For visits: Microteknia, Microkatu 1, D wing, 2nd floor; phone 040 355 3761
Viimeksi muutettu 09.11.09