taught by Grzegorz Malewicz
How to design an algorithm that solves a computational problem? What techniques can help you discover an efficient solution? The Introduction to Computer Algorithms course will present a range of techniques that algorithm designers can use when trying to develop an efficient algorithm for a computational problem. The techniques will be exemplified on many common computational problems. You will improve your understanding of course material by solving theoretical problems and implementing algorithms on a computer. The course will be fairly rigorous (i.e., theorems will be proven).
|The text in square brackets refers to chapters and sections of the required textbook Cormen,
T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms (2nd
Edition). MIT Press (2001) book web
|Date out||Problem statement||Due date|
Each student was to implement five algorithms, evaluate their running time on inputs of different sizes and characteristics, and interpret the results of evaluation.
Here are results of one evaluation: average running time when sorting files each containing 100,000 numbers, when the number of inversions in a file grows as we proceed from left to right in the figures (files of type S* described here).
Here is a student interpretation of results: interpretation.