Hyödyllisyys
Työmäärä
Sisältö
Algorithm design paradigms: divide-and-conquer, greedy algorithms, dynamic programming. Principles of analysis of algorithms: correctness, potential functions, duality, randomization
Osaamistavoitteet
In this course, we study the principles of efficient algorithm design and you will learn how to systematically approach new algorithmic problems. You will be able to formally argue why your algorithm works correctly and identify the challenges you need to overcome to solve a given problem. You will also learn to analyse the efficiency of algorithms and algorithmic approaches prior to their implementation.
Esitiedot
First year engineering mathematics, together with an introduction to probability theory (e.g. MS-A05XX), and programming skills (e.g. CS-A111X). Familiarity with basic data structures (e.g. CS-A114X) is an asset.
Työmäärä
Lectures. Exercise sessions. Independent work. Graded homework.
Arviointimenetelmät
Exercise sessions and graded homework.
Arvostelut (1)
Risto
21 päivää sitten
Principles of algorithmic techniquesilla on paljon yhteistä TRAG:in kanssa. Kurssit eroavat siinä, että tällä kurssilla ei varsinaisesti ohjelmoida mitään. Sen sijaan algoritmeja analysoidaan ja suunnitellan pseudokoodin tasolla. Kurssilla ei ollut tenttiä, vaan arvostelu perustui täysin harjoitustehtävien tekoon. Kurssilla käytettiin flipped-tyyppistä opetusta, eli varsinaisia luentoja ei ollut. Luentotallenteet olivat keskinkertaisia, mutta luentomoniste erinomainen. Viikottaiset tehtävät olivat kohtuullisen helppoja, mutta vaativat selvästi ajattelua. Joka toinen viikko kurssilla oli pakollinen laskari, jossa ei saanut käyttää mitään apuvälineitä ja tehtävät arvosteltiin, laskaritehtävät kuitenkin kerrottiin etukäteen ja niihin oli melko helppo opetella vastaukset.