domov Zavod za računalniško izobraževanje Ljubljana
Cesta Andreja Bitenca 68, 1000 Ljubljana

telefon: (01) 064 180 553
Elektronski naslov: info.zri@zri.si

Kazalo:
Gibanje ustvarjalnosti...
Kotiček učencev...
ZRI - Računalniški pouk mladine ...
ZRI - Izobraževanje odraslih
ZRI - Novice...
ZRI - Izobraževanje odraslih
ZRI - O Zavodu...
Reference...
ZRI - Poletne šole
Poletne šole v preteklih letih
Rezulatati 1. izmene poletne šole 2020
Rezulatati 2. izmene poletne šole 2020
ZRI - Zavod za računalniško izobraževanje Ljubljana
ZRI - Zavod za računalniško izobraževanje Ljubljana
ZRI - Zavod za računalniško izobraževanje Ljubljana

POLETNA RAZISKOVALNA ŠOLA PROGRAMIRANJA 2021 - prva izmena

Poletne šole programiranja izvajamo neprekinjeno od leta 1991 in to je že 31 leto, ko smo izvedli vsaj eno izmeno poletne šole. Poletno šolo smo izvedli v treh skupinah. Vsaka skupina je imela svoj projekt.

Zaradi ukrepov povezanih s širjenjem virusa Covid 19 smo želeli maksimalno zmanjšati stike in namesto zaključne prireditve s predstavitvijo rezultatov in na tej strani objavljamo kratko poročilo o izvedenih projektih.

Projekti za osebno delo

Projekti so bili napravljeni s programskim orodjem Lazarus.

Urejevalnik za programiranje s programskim jezikom pascal

Na letošnji poletni šoli sva naredila Editor za Pascalu Lazarusu. Veliko sva se naučila o programskem jeziku Lazarus. V Editorju lahko pišeš, odpiraš in zaganjaš programe. Lahko pa tudi pišeš tekstovne datoteka.

Pripravila: Bor in Tomaž

Priprava na mednarodna tekmovanja

V avgustu bomo tekmovali na zelo zahtevnem mednarodnem tekmovanju, zato smo imeli udeleženci skupinske priprave.

Prva skupina

Peter: Na poletni šoli 2021 sem se pripravljal na mednarodno tekmovanje iz programiranja in sem se zato učil osnove jezika C++. Naučil sem se: string objekte, objekt vector, stack in queue, set, priority queue ter segment tree in fenwick tree.

Enej: To poletno šolo sem se naučil bolje uporabljati programski jezik C++. Naučil sem se uporabljati sete, funckije, vectorje, queue, stacke in priority queue. Naredil sem tudi veliko vaj na to temo.

Pripravila: Peter in Enej

Druga skupina

int main() { 
	printf("Navdušeno lahko rečemo da smo se uspešno naučili 
		programirati v programskem jeziku C++ v 5ih dneh. 
		V tem času smo predelali kar osupljivih 22x4 listkov. 
		Napisali smo več kot 45 programov. 
		Glede na to da smo se prvič videli v živo, smo se fantastično dobro razumeli.\n");
	getchar(); getchar(); 
	return 0; 
} 

Pripravili: Hana, Andraž, Lucijan in Nejc

Strojno učenje

Na poletni šoli smo se ukvarjali s strojnim učenjem. Gre za področje matematike in informatike v povezavi z umetno inteligenco.

Prva skupina

Najprej smo točke v koordinatnem sistemu razporejali v skupine s pomočjo metode k-voditeljev. Ta metoda deluje tako, da naključno generiramo toliko središč, kolikor hočemo skupin, nato pa tvorimo te skupine tako, da vsako točko povežemo z najbližjim središčem. Eno skupino predstavljajo središče in vse točke povezane na to središče. Ko ustvarimo skupine, vsako središče postavimo na sredino skupine, katerega dobimo s povprečnim položajem vseh točk, ki pripadajo tej skupini. Nato ponovno tvorimo skupine, ker so se središča premaknila in je mogoče, da se je točkam spremenilo najbližje središče. Zatem ponovno premaknemo središča na sredino skupin, to ponavljamo, dokler se nič več ne spreminja.

Grafični prikaz skupin točk in njihovih centroidov v koordinatnem sistemu.
Vizualizacija razvrščanja v skupine s spreminjajočim številom voditeljev, vsak poligon oz. črta je konveksna ovojnica, ki ovije vsako skupino.
Grafični prikaz skupin točk in njihovih centroidov v 3-dimenzionalnem koordinatnem sistemu.
Grafični prikaz spremembe razvrščanja v skupine (clustering), ko spremenimo funkcijo za izračun razdalje.

Kakovost razvrstitve v skupine smo ocenili s ceno. Cena je seštevek razdalj med točkami in njihovimi središči. Manjša kot je cena bolje so razvrščene točke.

Graf predstavlja ceno v odvisnosti od števila iteracij (x - število iteracij, y - cena).
Graf prikazuje ceno v odvisnosti od števila iteracij in števila točk (x - iteracije, y število točk, z- cena).

Pogledali smo si tudi hierahične metode razvrščanja v skupine. Pri teh metodah najprej poiščemo dve točki, ki sta si najbližji in ti dve točki s pomočjo aritmetične sredine koordinat obeh točk združimo v en center, ki je točno na sredini med obema točkama. Ta korak ponavljamo toliko časa, dokler ne dobimo želeno število skupin.

Prednost hierahičnih metod razvrščanja v skupine je deterministična narava algoritma, ker ne uporablja naključnosti, težko je slabo izbrati skupine, hkrati pa nam nudi več informacij. Metoda k-voditeljev se je v naših poskusih izkazala za hitrejšo, preprostejšo in lažjo za implementacijo, kar so tudi njene glavne prednosti.

Pripravili: Tilen, Jakob, Tim, Oskar, Martin, Nik

Druga skupina

Ta projekt je nadaljevanje mojega učenja strojnega učenja na poletnih šolah do sedaj. Zadnje leto sem se učil linearno regresijo, letos pa sem se lotil nevronskih mrež. Naučil sem se o njihovem delovanju (gradient descent), kako se jih sprogramira s pomočjo mxnet in kako se odpravlja napake (underfitting, overfitting), ki se lahko pojavijo. Svoje znanje sem preizkusil z učenjem nevronske mreže s podatki o kakovosti vode.

Pripravili: Emilija, Gertruda, Leticija, Pepe in Janez


Valid HTML 4.01! Stanje usklajeno: 3. 07. 2020