õppeaine eesmärgid eesti k
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
õppeaine eesmärgid inglise k
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.
õppeaine õpiväljundid eesti k.
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).
õppeaine õpiväljundid ingl k.
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).
õppeaine sisu lühikirjeldus eesti k
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).
õppeaine sisu lühikirjeldus ingl k
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).
õppekirjandus
Steven S. Skiena, Miguel Revilla Programming Challanges
Steven Halim. Competitive Programming 3. 2013
Kursuse veebileht: https://moodle.taltech.ee/course/view.php?id=31425
õppevormid ja mahud
päevaõpe: nädalatunnid
4.0
sessioonõppe töömahud (semestris):