
Zoran Hercigonja
Sažetak
Učenje programiranja je samo po sebi izuzetno zahtjevno jer zahtijeva određenu razinu apstraktnog razmišljanja, zahtijeva razne vještine, od kojih je jedna i projektiranje to jest osmišljavanje modela algoritma koji će poslužiti kao podloga za pisanje programskog koda. Na temelju tog modela, moguće je napisati program u bilo kojem programskom jeziku. Glavne teškoće u učenju programiranja za početnike predstavlja upravo zaobilaženje samostalnog i zasebnog osmišljavanja modela algoritma po kojem će se program pisati. Rješenjem u obliku interaktivne aplikacije za izradu dijagrama tijeka, pokazati ćemo prednosti i koristi učenja programiranja putem projektiranja dijagrama toka.
Ključne riječi: dijagram tijeka, programiranje, algoritam, Flowgorithm
Uvod
U školama je dosta ustaljena praksa da se uči sintaksa i semantika određenog programskog jezika, prije nego što učenik savlada algoritamski način razmišljanja i raščlanjivanja problema. Dakle model algoritma koji bi vodio pisanje programskog koda se najčešće zaobilazi, iako je njegova uloga za programera početnika od iznimne važnosti. Ono što se događa jest da učenici uče kodiranje u samo jednom programskom jeziku; kroz učenje njegove sintakse i semantike, oni nauče razmišljati samo u jednom od programskih jezika. Nedostatak izrade modela algoritma, predstavlja nedostatak u algoritamskom pristupanju problemu. Dakle učenik nauči samo formu pisanja u nekom od programskih jezika i on je sposoban riješiti problem programski u okruženju u kojem je savladao sintaksu i semantiku. Takav pristup programiranju je vrlo ograničavajući. On ne uči učenika algoritamski razmišljati i kreirati jedan specifičan oblik razmišljanja, već ga uči samo koristiti određeni kodni sustav za rješavanje problema. Dakle učenici bi obavezno prije samog programiranja i kodiranja u nekom od programskih jezika, trebali projektirati modela algoritma za rješavanje konkretnog problema. Takav model algoritma nazivamo dijagramom tijeka. Dijagram tijeka je simboličko prikazivanje algoritma pomoću osnovnih simbola dijagrama tijeka. Simboli dijagrama tijeka su standardizirani i u principu je moguće na osnovi algoritma predstavljenog simbola dijagrama tijeka napisati program u bilo kojem programskom jeziku.[1] Bez izrade dijagrama tijeka, faza programiranja je striktno vezana uz savladavanje simboličkog alfabeta i sintakse pojedinog programskog jezika. Za programera početnika, izrada dijagrama toka je važan korak kojeg nikako ne bi trebalo zanemarivati. [1]. Striktnim vezanjem za savladavanje simboličkog alfabeta i sintakse pojedinog programskog jezika, učenikovo znanje svodimo na razinu reprodukcije. Osmišljavanjem i projektiranjem dijagrama tijeka, učenika se potiče na kreativno razmišljanje koje nije ograničeno programskim jezikom. Dakle dijagram tijeka je pomoćno sredstvo koje je neovisno o programskom jeziku i računalu, a vizualizira zadatak pa on postaje pregledniji. Dijagram tijeka sastoji se od niza jednostavnih geometrijskih likova spojenih usmjerenim crtama. Usmjerene crte pokazuju tijek rješavanja zadatka. [2]. Cilj učenja programiranja ne smije se ograničiti samo na razini znanja reprodukcije, već na višim razinama poput kreativnog iznalaženja rješenja. Cilj je prije svega naučiti algoritamski razmišljati, a tek onda takav način razmišljanja prilagoditi simboličkom alfabetu i sintaksi pojedinog programskog jezika.
Slika 1. Dijagram tijeka [2]
Dijagram tijeka kao standardni niz simbola za projektiranje algoritma treba prethoditi pisanju programskog koda u procesu učenja programiranja zbog kreiranja algoritamskog razmišljanja.
Iako na internetu postoji velik broj online aplikacija koje nude mogućnosti izrade dijagrama tijeka poput aplikacije Gliffy, ni jedna od njih ne nudi mogućnost paralelnog generiranja programskog koda na temelju osmišljavanja i projektiranja dijagrama tijeka. Aplikacija Flowgorithm je privremeno rješenje takvog problema, a ujedno i jedino.
Interaktivni dijagram tijeka Flowgorithm
Ionako vrlo zahtjevno pisanje programskog koda koje se najčešće svodi na reprodukcijsku razinu znanja, biva još zahtjevnije i otežano ukoliko ne postoji moć algoritamskog razmišljanja. Koristeći se samo postavkama reproduktivnog znanja, moguće je riješiti samo poznate programske probleme. No ukoliko se pojavi programski problem koji svojim sadržajem ne odgovara ni jednom dosad korištenom pristupu, onda on postaje nerješiv. Cilj programiranja je naučiti učenike algoritamski razmišljati i rješavati programske probleme. Programiranje samom sebi nije svrha. Programiranje u određenom programskom jeziku je samo sredstvo pomoću kojeg se može na određenoj platformi poput računala napraviti rješenje nekog programskog problema. Rješenje svakog problema, treba prvo dobro osmisliti dijagramom tijeka, a tek onda krenuti na realizaciju koristeći odabrani programski jezik.
Flowgorithm
Flowgorithm je besplatan program koji pomaže stvoriti programa pomoću jednostavnog dijagrama toka. Sastoji se od standardiziranih osnovnih simbola za početak i kraj, grananje, ulaz, izlaz i blok naredbi. Moguće ga je preuzeti na stranici http://flowgorithm.org/download/index.htm [3]. Veličina preuzetog zip. dokumenta je 1.378 KB. Postupak instalacije je jednak postupku instalacije većine aplikacija na računalo. Aplikacija Flowgorithm namijenjena je za više platformi. Osim za Windows operativni sustav, kompatibilna je i s Linux i Macintosh operativnim sustavom.

Slika 2. Radno sučelje aplikacije Flowgorithm
Sučelje ove aplikacije, vrlo je intuitivno i jednostavno za korištenje. Sastoji se od editora u kojem se kreira dijagram tijeka i jedne alatne trake s nekoliko ponuđenih opcija.

Slika 3. Alatna traka aplikacije Flowgorithm
Osim standardnih i više-manje poznatih opcija za spremanje ili otvaranje gotovog rješenja u sučelje aplikacije Flowgorithm, alatna traka sadržava slj
edeće: opciju za pokretanje i pauziranje i zaustavljanje simulacije dijagrama tijeka, određivanje brzine odvijanja simulacije u rasponu od Fast-Medium-Slow, optički Zoom, određivanje izgleda dizajna simboličkih oblika dijagrama tijeka pod nazivom Chart Style, te opciju pretvaranja dijagrama tijeka u programski kod četrnaest (14) programskih jezika pod nazivom Source Code Viewer.
Slika 4. Opcija uređivanja dizajna simbola dijagrama tijeka
Jedna od velikih prednosti Flowgorithm aplikacije jest i m
ogućnost automatskog pretvaranja dijagrama tijeka u programski kod nekog od odabranih programskih jezika. Radi se o sljedećim programskim jezicima: C#, C++, Delphi/Pascal, Java, JavaScript, Lua, Perl, Python, QBasic, Ruby, Swift 2, Visual Basic .NET
Slika 5. Lista ponuđenih programskih jezika
Dakle, kada korisnik u početnom editoru kreira dijagram tijeka nekog programskog rješenja problema, može automatski napraviti konverziju tog dijagrama tijeka u odgovarajući programski jezik. Pretvorba dijagrama tijeka u odabrani programski jezik, podrazumijeva pretvorbu u duhu sintakse i simboličkog alfabeta specifičnog za taj programski jezik. Flowgorithm sučelje je izuzetno zanimljivo po tome što može simulirati rad kreiranog dijagrama tijeka. To znači da je moguće prije pisanja programskog koda na licu mjesta, moguće provjeriti postavljenu logiku rješavanja nekog problema. Dakle ukoliko je dijagram tijeka osmišljen da od korisnika traži unos nek
e vrijednosti, pokretanjem simulacije, otvoriti će se zasebni prozor koji će tražiti od korisnika unos određene vrijednosti. Flowgorithm dijagram je vrlo interaktivan. Dakle korisnik svaki puta prije pisanja programskog koda može provjeriti ispravnost logike.
Slika 6. Konzola nakon pokretanja simulacije
Nakon što je kreiran dijagram tijeka, moguće je pokrenuti simulaciju. U primjeru Slika 6. kreiran je jednostavan dijagram koji ispisuje tekst „Hello“. Prilikom pokretanja simulacije, otvara se dodatni dijaloški okvir u čijem se tijelu ispisuje tekst poruke „Hello“ zadan u dijagramu tijeka. Svaki dijagram, moguće je eksportirati u formatu slike (PNG, JPG) na željeno mjesto.
Rezultati testiranja
Za potrebe testiranja, osmišljen je programski zadatak na temelju kojeg je izrađen dijagram tijeka. Nastavnici su testirali mogućnosti zadanog alata te utvrdili njegove prednosti i nedostatke.
Zadatak:
Izraditi program koji će korisnika tražiti unos vrijednosti brojčanog tipa. Ako brojčana vrijednost bude veća od deset (10) onda ispisati poruku „Unesena vrijednost je veća od 10“, a u slučaju da vrijednost bude manja od deset (10) onda je potrebno ispisati poruku „Unesena vrijednost je manja od 10“.
Dakle programski zadatak zahtijeva unos vrijednosti preko korištenja varijable tipa integer, if uvjetovanja (odluke true i false) te ispis s dvije različite poruke.

Slika 7. Odabir gotovih simbola
Sučelje Flowgorithm-a automatski kreira granične oznake za početak i kraj programa. Lijevim klikom na vezu između početnog i završnog graničnog događaja, otvara se izbornik s kategorijama simboličnih oblika. Tu se ponajprije odabiru željeni simbolični oblici. Za potrebe rješavanja zadatka, bit će odabrani sljedeći simbolični oblici: Declare, Input, If i dva simbola Output. Nakon što su svi oblici odabrani, potr
ebno je deklarirati varijablu. To se čini na način da se na simbolični oblik Declare dva puta klikne. Tada se otvara dijaloški okvir koji nudi mjesto za inicijalizaciju varijable i određivanje njezinog tipa. Odabran je Integer kao tip podataka.
Slika 8. Inicijalizacija varijable
Imenovanje preostalih simbola, određuje se na jednak način
dvostrukim klikom miša na željeni oblik. Dakle, nakon dvostrukog klika mišem, otvara se dijaloški okvir u koji se upisuje željeni naziv ili uvjet ili kod oblika Output željena poruka koja će se ispisivati na ekranu.
Slika 9. Dijagram tijeka realiziranog zadatka
Nakon pokrenute simulacije, otvara se konzola u koju se unose vrijednosti, a koja ujedno služi i kao editor za ispisi. U testnom zadatku je traženo da se unese željena vrijednost te da se nakon toga ispiše odgovarajuća poruka ovisno o uvjetu u If u
vjetovanju. Dakle unesena vrijednost je manja od 10. Poruka koja se ispisala u konzoli glasi: „Unesena vrijednost je manja od 10“. To znači da je dijagram toka ispravno kreiran.
Slika 10. Pretvorba dijagrama toka u programski jezik Python
Nakon simulacije, pokrenut je Source Code Viewer koji je dijagram toga automatski generirao i pretvorio u programski kod odabranog programskog jezika. Odabrani programski jezik za pretvaranje dijagrama tijeka u programski kod je bio Python.
Prednosti i nedostaci
Simulator se pokazao kao simulator intuitivnog i jednostavnog sučelja za korištenje s mnoštvo mogućnosti poput generiranja programskog koda u 14 različitih programskih jezika na temelju kreiranog i osmišljenog dijagrama tijeka. S druge strane velika prednost je i interaktivnost sučelje to jest mogućnost pokretanja simulacije u kojoj je moguće provjeriti teorijske postavke dijagrama tijeka, prije nego ih se pretvori u programski kod nekog od programskih jezika. Iako ovo interaktivno sučelje izgleda vrlo obećavajuće, mora se istaknuti i pokoji nedostatak. Jedan od glavnih i očitih nedostataka je nemogućnost obrnute pretvorbe programskog koda u dijagram tijeka. Sučelje nema mogućnost da na temelju programskog koda kreira dijagram tijeka koji bi poslužio za provjeru logike kroz pokrenutu simulaciju. Osim toga interaktivna aplikacija Flowgorithm na žalost ne pokriva sve situacije koje nastupaju u današnjim tehnikama programiranja. Tako da neke više razine programiranja ne bi mogle biti podvrgnute simuliranju situacije pomoću dijagrama toka.
Zaključak
Iako se kod učenja programiranja vrlo često zaobilaze dijagrami tijeka s pojačanim fokusom na vrlo često mehaničkom pisanju programskog koda u nekom od programskih jezika, zaboravlja se na važnost umnog i kreativnog posla svakog programera. Smisao programiranja nije samo pisati programski kod nego osmisliti rješenja koja će biti realizirana putem programskog koda. U programiranju ne postoji recept kojim bi se riješio svaki problem. Kreiranje dijagrama toka podrazumijeva učenje algoritamskog razmišljanja; to je umni i kreativni posao koji ovisi o poznavanju postavljenog problema. Ukoliko problem nije moguće riješiti pomoću kreiranog dijagrama tijeka, onda ga nije moguće ni riješiti programiranjem. Flowgorithm svojim interaktivnim simulacijama, nudi upravo mogućnost učenja razmišljanja u svijetu programiranja i stvaranja algoritama za rješavanja nekog problema. Interaktivnim dijagramom tijeka, uči se prije svega logika obrade ulaznih informacija s ciljem da se dobije izlazni rezultat. Ako želimo od učenika stvoriti kreativne pojedince koji znaju razmišljati u duhu algoritamskog pristupa problemu, onda nikako ne smijemo dopustiti da se učenje programiranja svede na učenje simboličkog alfabeta, semantike i sintakse nekog programskog jezika. Flowgorithm je za sad jedino interaktivno rješenje koje svojim mogućnostima može ukazati na važnost uporabe dijagrama tijeka prilikom učenja programiranja.
Literatura
- Pavković, N., Marjanović, D. Bojčetić, N. Programiranje i algoritmi, Zagreb 2005.
- Osnove programiranja u c++ jeziku [pristupano 07.01.2017.] Dostupno na <https://sites.google.com/site/sandasutalo/oosnove-programiranja/pomocni-postupci-pri-programiranju/dijagram-tijeka>
- Službena stranica aplikacije Flowgorithm [pristupano 07.01.2017.] Dostupno na <http://flowgorithm.org/index.htm>
Lajkaj ovo:
Lajk Učitavanje...