General information

Module title Efficient Algorithms
Language English
Module lecturer dr Rafał Witkowski
Lecturer's email rmiw@amu.edu.pl
Lecturer position adiunkt
Faculty Faculty of Mathematics and Computer Science
Semester 2021/2022 (summer)
Duration 60
ECTS 6
USOS code 06-DEALLI0-E

Timetable

Module aim (aims)

1. The aim of the course is to familiarize students with effective algorithms for solving complex programming problems and to learn how to implement them (regardless of programming language), as well as to prepare to participate in team programming competitions

Pre-requisites in terms of knowledge, skills and social competences (where relevant)

Basic course in programming (any language), algorithms and data structure, object-oriented programming.

Syllabus

Week 1: A repetition of the basics of algorithm construction and the use of data structures.



Week 2: Tricki problem solving. Programming contests rules.



Week 3: Non-standarded algorithms.



Week 4: Dynamic and greedy algorrithms.



Week 5: Advanced recuring algorithms.



Week 6: Graph algorithms.



Week 7: Geometric algorithms.



Week 8: Numeric algorithms.



Week 9: Big numbers – big input algorithms.



Week 10: Optimization methods for algorithms and source codes



Week 11: Problem solving strategy for real-life algorithmic problems.



Week 12: Solving tasks on online checkers.



Week 13: Participation in internal sparing in team programming.



Week 14: Participation in a real time team programming contest.



Week 15: Solving tasks on online checkers.

Reading list

FN. Wirth, Wprowadzenie do programowania systematycznego. Wydawnictwa Naukowo-Techniczne. Warszawa 1978.

T.H. Cormen, Wprowadzenie do algorytmów, Wydawnictwa Naukowo-Techniczne, Warszawa 2005 (lub wcześniejsze wydanie WNT, Warszawa 1999)

Sztuka programowania (The Art of Computer Programming) - Donalda Knuth

"Niebieskie książeczki" - materiały corocznie wydawane przez Komitet Organizacyjny Olimpiady Informatycznej

P. Stańczyk, Algorytmika praktyczna. Nie tylko dla mistrzów. PWN, Warszawa 2009

S. S. Skiena, M. A. Revilla, Wyzwania programistyczne, WSiP, Warszawa 2004.

A.V. Aho, J.E. Hopcroft, J.D. Ullman, Projektowanie i analiza algorytmów komputerowych, PWN, Warszawa 1983.