|
 |
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
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.
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
- Introduction
- Analysis methods
- Algorighm desing patterns I
- Brute force
- Divide-and-conquer
- Decrease-and-conquer
- Transform and Conquer
- Heaps and Heapsort
- Space-Time Tradeoffs
- Greedy Method
- Dynamic Programming
- Limitations of Computing
- Random Access Machine
- Turing Machine
- Comparison of TM and RAM models
- NP-completeness
- Solving hard problems
Exercise assignments will be posted here, normally about a week before the exercise session.
- harjoitus (11.9.)
(English version)
- harjoitus (18.9.)
(English version)
- harjoitus (25.9.)
(English version)
- harjoitus (1.10.)
(English version)
- harjoitus (16.10.)
(English version)
- harjoitus (20.10.)
(English version)
- harjoitus (23.10.)
(English version)
- harjoitus (30.10.)
(English version)
- 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
|
 |