Faculty of Information Technology and Communication Sciences
Language of instruction
Data Processing and Information Technology
Mode of study
Data Structures and Algorithms 2, 5 cr
Language of instruction: English
A student who has completed the course with a least the grade "good" is expected to
be able to analyse formally the asymptotic complexity of basic (including recursive) algorithms
be able to apply and analyse common algorithm design methods in solving various problems
be able implement intermediate-level algorithms efficiently in C, C++, Java or Python.
The course introduces typical algorithmic problem solving methods (greedy algorithms, divide & conquer, dynamic programming, flow graphs) and string algorithms. The course emphasizes algorithm implementation (= programming) over theory.
The course contains two mandatory elements: 1) Completing a sufficient amount of automatically graded weekly programming tasks and theory questions. 2) Passing a final electronic exam, which contains both programming tasks and theory questions (similar to exercises).
The course in addition offers weekly lectures / Q&A sessions that are recorded and made available for later viewing. Participation to these is not mandatory but may be encouraged by awarding extra points that count towards the course grade.
The course requires reasonable programming skills. You are allowed to use any of the following programming languages during the course: C, C++, Java or Python.
Data Structures, TIETA6, 10 cr
Data Structures and Algorithms 1, COMP.CS.300, 5 cr
Mathematics for Algorithms 1, MAT-02651, 5 cr
Basic concepts of Mathematics, MTTMY1, 5 cr
The course offers lecture slides. You may in addition read e.g. the following books:
Jon Kleinberg and Éva Tardos: Algorithm Design
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein: Introduction to Algorithms
Lecture recordings and written material will be provided in WETO.
General scale, 0-5
Contact information Email: open.studies.tau [at] tuni.fi Phone: 0294 520 200