course aims in Estonian
Arendada loogilist, analüütilist ja algoritmilist mõtlemist ning süsteemset lähenemist probleemide ja ülesannete lahendamisel.
Anda praktiline kogemus algoritmiliste ülesannete kiireks, õigeks ja efektiivseks lahendamiseks piiratud aja sees
course aims in English
To develop logical, analytical, and algorithmic thinking and systematic approach to problem and task solving.
To give practical experience for fast, correct and effective solving of algorithmic tasks within given time limits.
learning outcomes in the course in Est.
Aine läbimisel tudeng:
- oskab rakendada vähemalt ühte aines kasutatavat programmeerimiskeelt (C, C++, Java, Python) etteantud ülesannete lahendamiseks;
- oskab analüüsida ja õigesti algoritmiliselt lahendada algoritmilisi probleeme;
- oskab kasutada algoritmiliste probleemide lahendamiseks õigeid andmestruktuure;
- oskab programmikoodi siluda:
- oskab lahendada etteantud ülesandeid meeskonnatööna (oskab seletada oma lahendust ja aru saada teiste lahendusest).
learning outcomes in the course in Eng.
After having passed the course the student:
- knows how to use one of the programming languages used in the course (C, C++, Java, Python) for solving given tasks;
- has experience to analyse and solve correctly the given algorithmic problems;
- knows how to use relevant data structures for solving given algorithmic tasks;
- knows how to debug the code;
- knows how to solve given tasks in teams (is able to explain the solution and understand the solution being explained).
brief description of the course in Estonian
Tegemist on praktilise programmeerimise ainega:
- erinevate andmestruktuuride tutvustus (näiteks graafid, ahelad, puud, kuhjad jne);
- erinevate algoritmide tutvustus (näiteks permutatsioonid, ahne algoritm, rekursioon, dünaamiline planeerimine jne);
- igas tunnis ja üle nädala antakse 2-5 ülesannet valikuliselt lahendada;
- iganädalane ülesannete lahendamine ja analüüsimine;
- ülesannete lahendamine meeskonnatööna;
- ülesannete lahendusi kontrollitakse automaatse testimootoriga (UVa Online Judge).
brief description of the course in English
This is a practical programming course:
- introduction is made to different data structures (e.g. graphs, lists, trees, heaps, etc.);
- introduction is made to different algorithms (e.g. permutations, greedy algorithm, recursion, dynamic programming, etc.);
- every lesson and for a biweekly homework a selection of 2-5 tasks is given for solving;
- every week tasks are solved and analysed;
- tasks are solved in teams;
- solutions are verified with the automatic testing engine (UVa Online Judge).
type of assessment in Estonian
-
type of assessment in English
-
independent study in Estonian
-
independent study in English
-
study literature
Steven S. Skiena, Miguel Revilla Programming Challanges
Steven Halim. Competitive Programming 3. 2013
Kursuse veebileht: https://moodle.taltech.ee/course/view.php?id=31425
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):