BIZIT 11 - prvi dan

Učenje Pajtona u šestom razredu

U seriji članaka o uvođenju programiranja u osnovne škole, nakon Skreča u petom razredu, dolazimo do učenja klasičnog tekstualnog programskog jezika u šestom razredu. U tome će nam pomoći materijali na portalu Petlja.org zasnovani na programskom jeziku Pajton.

PCPress.rs ImageTokom prethodne decenije nastala su brojna specijalizovana softverska rešenja namenjena prvim koracima u programiranju i prilagođena najmlađim uzrastima. Neka od tih rešenja obuhvataju i specijalizovan hardver u vidu robota i/ili mikrokontrolera, ali bez obzira na to da li su rešenja čisto softverska ili softversko‑hardverska, najčešće se koristi vizuelno programiranje koje je zasnovano na slaganju blokova u grafičkom korisničkom interfejsu. Najveći prodor u popularizaciji blokovskog vizuelnog programiranja napravili su Skreč, o kome smo govorili u prošlom broju i gejmifikovana okruženja na Code.org.

Od blokova do komandi

U obilju zanimljivih rešenja za prve korake u programiranju, glavni izazov postaje naredni korak. Jedna mogućnost je da se nastavi dalje s blokovskim programiranjem, samo što se fokus prenosi na nove tipove problema, složenije tehnike programiranja i eventualno na neka nova okruženja u kojima se i dalje koristi blokovsko programiranje. Pitanja na koje u tom slučaju treba odgovoriti glase: „Dokle treba koristiti blokovsko programiranje i ako u nekom trenutku treba preći na klasičan programski jezik, kada je najbolje?“

PCPress.rs Image
Sli­ka 2. Kom­po­nen­ta A­cti­ve­Co­de u pri­ručniku

Na primer, Code.org je nakon elementarnih interaktivnih kurseva za prve korake u programiranju (poznatih pod imenom Hour of Code kursevi) predvideo kurikulum u kome se koriste App Lab, Game Lab i Web Lab razvojna okruženja (Code.org/student/middle‑high) koja su bazirana na programskom  JavaScript jeziku. Pri tome nije napuštena ni ideja blokovskog programiranje jer se isti JavaScript kod može videti i editovati u formi blokova, čime je napravljen most između blokovskog i tekstualnog programiranja. Na Slici 1 vidimo primer iz kursa za rad s bazama podataka.

Pored toga što je ostala mogućnost blokovskog pogleda na kod, zadržan je i koncept programiranja u specijalno definisanom skupu osnovnih akcija koje su implementirane u posebno dizajniranom gejmifikovanom okruženju, samo što se sada te akcije istovremeno vide kao ponuđeni blokovi i kao već definisane JavaSkript funkcije. Takvo rešenje je nastavak puta kojim je Code.org krenuo: kursevi koje objavljuju takvi su da se sve dešava na njihovom portalu i okviru Web browser‑a, a okruženje u kome se edituje i izvršava programski kod integrisano je sa interaktivnim kursevima i ne odustaje se od stila blokovskog programiranja, po kome je Code.org prepoznatljiv. Uza sve to, uključuje se klasičan tekstualni programski jezik, a Code.org je uspeo da nađe pristup da sve te zahteve pomiri.

Naša početna pozicija nešto je drugačija, tako da ne možemo prosto kopirati pristup sa Code.org, ali je to svakako dobar primer modernog interaktivnog okruženja za učenje programiranja. Naime, predmet Informatika i računarstvo još uvek ima akcenat na desktop okruženju i nije realno da to u ovom trenutku naglo promenimo. Zbog toga je uslov da programski jezik i razvojno okruženje mogu da se instaliraju lokalno na personalnom računaru i da mogu da se koriste i u trenucima kada nema veze sa Internetom. Autori Skreča prepoznali su da takve okolnosti nisu neuobičajene u školama i sve vreme nude i verziju svog programa koja može da se instalira lokalno.

Od Skreča do Pajtona

Kada govorimo o prelasku sa Skreča na klasičan programski jezik, suština je da, ako učenik već treba u nekom trenutku da napravi taj korak, napor neće biti znatno manji ukoliko se duže zadrži na Skreču.

PCPress.rs Image
Sli­ka 1. Kur­se­vi na Co­de.org ko­ris­te blo­kov­ski po­gled na pro­gram­ski kod Ja­vaS­cript

Pri tome treba naći način da prelazak bude što bezbolniji i da učenik ne bude suviše opterećen tehničkim detaljima koje nosi klasičan programski jezik i realno razvojno okruženje. U zavisnosti od toga koliko uspešno možemo spustiti nivo tog dodatnog opterećenja koje nosi klasičan programski jezik, zavisi koliko ćemo uspešno prići široj populaciji mlađeg uzrasta.

Pročitajte i:  AI generiše četvrtinu programskog koda u Google-u

Fondacija Petlja, na portalu Petlja.org, izabrala je za šesti razred programski jezik Python (Pajton) i uspela je da izradi interaktivan priručnik iz koga učenik radi primere u okviru Web browser‑a u kontekstu tekuće lekcije, tako da kroz čitanje, gledanje video‑sadržaja i interaktivan rad postepeno počinje da koristi programski jezik.

Pajton se jednostavno instalira, nije zahtevan prema resursima vašeg računara i odmah u paketu dobijete sve što vam treba, uključujući i jednostavno razvojno okruženje IDLE u kome editujete i izvršavate programski kod. Na taj način, na portalu Petlja.org obezbeđeno je moderno interaktivno okruženje za učenje programiranja, a da se istovremeno svi primeri programskog koda mogu izvršavati u standardnom razvojnom okruženju klasičnog programskog jezika na personalnom računaru.

Bejzik, Logo, Paskal i Pajton

Prethodnih decenija, u raznim periodima, određeni programski jezici izdvajali su se kao dobar preporučeni izbor za učenje programiranja, a možemo reći da su se najviše istakli Bejzik, Logo i Paskal.

Ako volite programski jezik Bejzik zato što ima jednostavnu sintaksu i kao interpretator se jednostavno koristi, iz istih razloga svideće vam se i Pajton. Naravno, na razlike u sintaksi moraćete da se naviknete, ali nakon početnog perioda, osećaćete se jednako udobno ili još udobnije.

PCPress.rs Image
Slika 3. Vizuelizacija izvršavanja programa korak po korak

Logo je osvojio simpatije zbog „kornjačine“ grafike, gde upravljate kretanjem lika koji može da ostavlja trag i na taj način se formira crtež. Za lik koji se crta izvorno se koristila kornjača, po čemu je takav stil grafičkog programiranja i dobio naziv. Ispostavilo se da se kornjačina grafika može dobro primeniti u edukativne svrhe, pošto su osnovne akcije koje zadajemo kornjači jednostavne i razumljive mlađoj deci (skreni levo ili desno, idi napred ili nazad, promeni boju olovke), rezultat crtanja deci stvara zadovoljstvo i motiviše ih, a kroz primere se provlače elementarne tehnike programiranja. Standardna implementacija  Pajtona ima podršku za kornjačinu grafiku, a zahvaljujući jednostavnoj sintaksi, primeri su jednostavni kao u jeziku Logo.

Odlike Pajtona

Pajton je deo talasa skriptnih programskih jezika koji su nastali krajem 80‑ih i početkom 90‑ih godina: Perl je nastao 1987, Tcl 1988, Pajton 1991, a Ruby 1995. godine. Ti jezici stiču popularnost zato što su omogućili da se u malo linija koda isprogramiraju stvari za koje je u drugim programskim jezicima u to vreme trebalo mnogo više truda. Pri tome, tipičan Perl kod izgledao je tako da se Paskal programeru dizala kosa na glavi: svašta je moglo da se nagura u jednu liniju koda, ali je svaka takva linija predstavljala malu zagonetku „šta ovo radi“.

Pajton je u skriptne programske jezike doneo sintaksu koja je orijentisana ka strukturiranom programiranju i omogućava elegantno izražavanje algoritama. U mogućnostima preglednog izražavanja algoritama, Pajton ne zaostaje za Paskalom, a uz neke dodatne mogućnosti, kao što je višestruka dodela, ide i korak dalje. Jedna od stvari koja će vam nedostajati iz Paskala jeste izbor početne granice indeksa niza, ali se moramo pomiriti s tim da je u programskim jezicima generalno preovladao pristup da indeksi nizova počinju od nule.

PCPress.rs Image
Sli­ka 4. Pi­ta­nje za vežbu

Pajton koristi dinamičke tipove podataka. Vrednosti imaju svoj tip, ali promenljiva nema unapred određen tip, već može tokom vremena dobijati vrednosti različitih tipova. To može da smeta onima koji su navikli na programske jezike sa statičkim tipovima, kao što je Paskal. Za kratke i jednostavne programe, kakvi će se raditi u školi, prednosti statičkih tipova ne dolaze toliko do izražaja.

PCPress.rs Image
Sli­ka 5. Iz Zbir­ke krat­kih pi­tanja

S druge strane, statički tipovi zahtevaju uvođenje i razumevanje deklaracije tipova, što nepotrebno opterećuje prve korake u programiranju. Za složenije softverske projekte podeljeni su stavovi stručnjaka po pitanju statičkih i dinamičkih tipova, ali takve projekte radiće uglavnom oni koji se profesionalno opredele za programiranje.

Pročitajte i:  AI generiše četvrtinu programskog koda u Google-u

Dobar izbor (i) za nadarene

Važno je i to što je Pajton među nekoliko najpopularnijih programskih jezika i u mnogim oblastima sve je popularniji. To znači da nećete biti usamljeni kada tražite odgovore na neka pitanja, primere, literaturu, programske biblioteke za željeni domen primene i slično. Nećete biti ostavljeni na cedilu nakon nekoliko godina zato što se alat koji koristite više ne razvija.

Na kraju, važno je da imamo šta da ponudimo i za posebno nadarene i zainteresovane učenike. Pajton je i za njih odličan izbor jer se dosta koristi za programiranje u mlađim uzrastima, tako da je lako naći literaturu i primere za dodatan rad. Pogodan je za rešavanje algoritamskih zadataka kakvi se zadaju na takmičenjima iz programiranja, a od ove školske godine programski  jezikPajton predviđen je i na takmičenjima iz programiranja za osnovce u organizaciji Društva matematičara Srbije.

Nije neophodno da programski jezik koji se uči u osnovnoj školi bude visoko kotiran na tržištu rada (Skreč, na primer, i ne očekujemo da bude), ali činjenica da su Pajton programeri traženi i imaju dobre plate svakako je afirmativna.

Materijali na portalu Petlja.org

Na Web strani Petlja.org/OsnovnaSkola navedeni su sledeći materijali za šesti razred:

  • Programiranje u Pajtonu, priručnik za šesti razred
  • Programiranje u Pajtonu, zbirka algoritamskih zadataka za šesti razred
  • Programiranje u Pajtonu, zbirka kratkih pitanja za šesti razred

Dodatne materijale, rezultat projekta „Programiranje za osnovce“, koji je realizovalo Društvo za informatiku Srbije, možete naći na Web strani Petlja.org/Programiraj, gde posebno treba istaći video‑lekcije koje su rađene u saradnji sa Fondacijom Petlja na bazi priručnika za šesti razred.

Za priručnik su korišćena softverska rešenja otvorenog koda koje Runestone Interactive (RunestoneInteractive.org) koristi u svojim izdanjima, zajedno s brojnim drugim komponentama otvorenog koda. Na prvom mestu treba istaći Skulpt (pogledajte Skulpt.org) implementaciju interpretatora za Pajton u JavaScript‑u. Skulpt se koristi u okviru ActiveCode komponente koja omogućava da se primeri koda edituju i izvršavaju unutar Web strane na kojoj se prikazuje lekcija iz priručnika (Slika 2), tako da je za većinu primera koda u tekstu priručnika korišćen ActiveCode.

Kada u ActiveCode okviru kliknemo na „Korak po korak“, pokreće se Python Tutor (PythonTutor.com) komponenta za vizuelizaciju izvršavanja programa korak po korak (Slika 3). Učenik koji prolazi kroz materijal može na licu mesta da izvrši određeni primer, da nešto promeni u programskom kodu i vidi kako će to uticati na rezultat ili dopuni nepotpun primer ako se to od njega očekuje. Nije potrebno da bilo šta posebno bude instalirano na računaru s kog se koristi priručnik. Naravno, očekuje se da učenik neke primere i zadatke uradi i u IDLE razvojnom okruženju, ali IDLE ne mora da bude dostupan da bi se koristio priručnik. Na času nastavnik može da organizuje rad ili tako što od učenika očekuje da koriste IDLE ili tako što se pretežno oslanja na priručnik, sve u zavisnosti od tehničkih mogućnosti i afiniteta. Umesto IDLE‑ amože da se koristi i neko onlajn okruženje za editovanje i izvršavanje programa kao što je repl.it.

U toku i na kraju većine lekcija u priručniku nalaze se i pitanja za vežbu (slika 4). Svako pitanje za vežbu označeno je zelenom, žutom ili crvenom linijom s leve strane. Zelena boja označava osnovni nivo koji već pokriva zahteve nastavnog programa za nastavnu temu Računarstvo, a ideja je da ostali nivoi budu za one koji žele da nauče više.

Pročitajte i:  AI generiše četvrtinu programskog koda u Google-u

Preporučujemo svakom ko čita ovaj tekst da prođe nekoliko lekcija u priručniku, zadrži se malo na pojedinim primerima i na kraju uradi pitanja za vežbu. Nemojte se ustručavati i ako nikada ništa niste programirali, videćete i vi da prvi koraci u programiranju ne moraju da budu teški!

Zbirka kratkih pitanja

Zbirka kratkih pitanja koristi se za proveru znanja. Učenik može da za vežbu rešava pitanja na portalu Petlja.org (Slika 5), a nastavnik ima dodatnu mogućnost da napravi izbor pitanja za test. Kada nastavnik formira test, određeni delovi pitanja (obično numeričke vrednosti) i odgovarajući odgovori mogu da dobiju nasumične vrednosti, da učenik ne bi napamet učio odgovore na pitanja. Formiran test nastavnik može da odštampa i podeli učenicima. Nije predviđeno da se kontrolni zadaci niti drugi oblici ocenjivanja rade na portalu Petlja.org.

Rešenje svakog zadatka iz „Zbirke algoritamskih zadataka“ je određen program koji čita ulazne podatke precizirane u zadatku i ispisuje izlazne podatke koji treba da ispune uslove date u zadatku. Nakon što reši zadatak, učenik može da pošalje rešenje na automatsku proveru i portal će proveriti rešenje u odnosu na unapred zadat skup testnih primera ulaznih i izlaznih podataka. Ukoliko se za sve testne primere rezultat programa poklopi sa očekivanim rezultatom, smatra se da da je učenik uspešno rešio zadatak.

Takav tip zadataka rešava se i na programerskim takmičenjima, što ne znači da jednostavniji algoritamski zadaci ne mogu da se rade i u redovnoj nastavi. I na matematici i fizici u redovnoj nastavi rade se zadaci istog tipa kao na takmičenjima (npr. rešiti jednačinu), samo što su na takmičenjima zadaci teži.

Svaki zadatak u zbirci ima detaljan opis rešenja i konkretna rešenja u određenim programskim jezicima. Nastavnicima su vidljiva sva rešenja, dok učenik može da traži da vidi rešenje ukoliko je sam uspeo da napravi rešenje za koje prolazi barem jedan test primer.

Zbirka algoritamskih zadataka za šesti razred izvod je iz velike „Zbirke“ koja se može pronaći na Web strani Petlja.org/BubbleBee. Učenici koji dalje žele da se pripremaju za takmičenje mogu da rešavaju zadatke iz „Zbirke“, a zatim i zadatke s prethodnih takmičenja koje takođe mogu potražiti na navedenoj Web strani.

Svi algoritamski zadaci na portalu Petlja.org, bez obzira na to da li su deo zbirke ili su s proteklih takmičenja, mogu da se rešavaju u programskim jezicima Pajton, C/C++, C#, Java, Paskal i još nekim, pri čemu rešenja obično nisu dostupna u svim tim jezicima. Sva rešenja u zbirkama dostupna su u programskim jezicima C++ i C#, za zadatke iz zbirke za šesti razred dodatno i u Pajtonu.

Nije samo za šesti razred

Priručnik za jezik Pajton i ostali ovde opisani materijali mogu uspešno da se koriste i u sedmom i osmom razredu u okviru izbornog modula „Odabrana poglavlja programiranja“ predmeta Informatika i računarstvo, kao i u okviru predmeta Računarstvo i informatika u drugom razredu gimnazije.

Svim učenicima osnovne škole koji žele da se pripremaju za takmičenje, a nemaju prethodnog iskustva s programiranjem, bez obzira na to da li pohađaju šesti razred, mlađi su ili stariji, preporučujemo da prvo prođu priručnik za Pajton, zatim „Zbirku za šesti razred“ i onda dalje da nastave s velikom „Zbirkom“ i zadacima s prethodnih takmičenja.

Materijali za šesti razred dobar su uvod u programiranje za početnike svih uzrasta. Činjenica da su rađeni sa idejom da budu za „šestake“ samo znači da vas u svet programiranja uvode lagano i da su se autori dodatno potrudili da vam programiranje bude zanimljivo.

dr Nebojša Vasiljević je direktor Fondacije Petlja

(Objavljeno u PC#250)

Facebook komentari:
Računari i Galaksija
Tagovi: , , ,