PROJEKTTERV SABLON ALAPADATOK A PROJEKT CÍME PYTHONBUBO ÖSSZEFOGLALÁS Logikai játékprogram fejlesztése Python programozási nyelv környezetben. Ez a projekt a Záhonyi Árpád Vezér Általános Iskola és Alapfokú Művészeti Iskola informatika oktatásának egy alternatív megoldását dokumentálja. Intézményünkben az Imagine Logo programozási környezetet használjuk az algoritmizálás elmélyítésére. Ezen kívül azonban megvalósítható egy Python környezetben történő fejlesztést a tehetségesebb, a programozás iránt komolyabban érdeklődő tanulók számára. A 21-es játék programozása ugyan kevésbé látványos, de matematikai képességeket, logikus gondolkodást fejleszt. Márió szerű ügyességi játék a kreativitást fejleszti. TANTÁRGYAK KÖRE Informatika ÉVFOLYAMOK 7. évfolyam IDŐTARTAM 5 óra
A PROJEKT PEDAGÓGIAI ALAPJAI TARTALMI KÖVETELMÉNYEK A problémamegoldás informatikai eszközökkel és módszerekkel témakörben a tanulók az életkoruknak megfelelő szinten tovább mélyítik az algoritmus leíró eszközökkel kapcsolatos ismereteiket, egyszerű algoritmusokat értelmeznek és fogalmaznak meg. A tanulók a problémákhoz algoritmusokat készítenek, az algoritmusokat programozási nyelven kódolják, a kódolás során megismerik a program működését, alkalmazzák a megismert utasításokat. Az alulról felfelé építkezés és a lépésenkénti finomítás elve alapján a tanulók több oldalról megközelíthetik a problémát, feltárják a probléma szerkezetét, értelmezik az adatok közötti összefüggéseket, a strukturált megoldás érdekében eljárásokat készítenek. Az egyenletekkel leírható folyamatok tanulmányozása nem feltétlenül igényel informatikai segítséget, viszont a véletlen jelenségek tanulmányozása elképzelhetetlen a számítógép véletlenszám-generátora nélkül. A véletlenen alapuló jelenségek tanulmányozása akár a saját készítésű, akár a mások által készített programok tanulmányozásakor tanulságos. Egyszerű programozási nyelv, fejlesztői környezet ismerete. Adatbevitel, a végeredmény megjelenítése, grafikai alapismeretek Összetett algoritmusok készítése, és ezek programban való megvalósítása. A fejlesztői környezet program állapotjellemzőinek kezelése Algoritmus leírás eszközeinek ismerete. Egyszerű folyamatábra értelmezése, készítése. Az algoritmuskészítés legfontosabb lépéseinek alkalmazása. Legalább egy programozási nyelv ismerete, alapszintű alkalmazása. Problémák, illetve választott saját feladatok megoldása önállóan, vagy irányított csoportmunkában TANULÁSI CÉLOK Ismeretek alkalmazása bővítése: Tervezés, algoritmizálás. Matematikai ismeretek adaptálása az algoritmusba. Meglévő kódok elemzése. Analizálás, tesztelés a program futtatása. Képességek: Kreativitás, esztétikai érzék fejlesztése. Csoportszellem, együttműködő képesség fejlesztése. Szintetizáló képesség. Fejlesztő hatású kritikai szemlélet alakítása.
ÉRTÉKELÉSI TERV AZ ÉRTÉKELÉS IDŐRENDJE A PROJEKTMUNKA MEGKEZDÉSE ELŐTT A korábban feladott algoritmus ellenőrzése. tanulók véletlenszerűen kiválasztva egy másik társuk kódját futtatja, teszteli. A kialakított véleményt tanári irányítással megbeszélik. ÉRTÉKELÉSI ÖSSZEFOGLALÓ MIALATT A TANULÓK A PROJEKTEN DOLGOZNAK ÉS FELADATOKAT HAJTANAK VÉGRE Folyamatos tanári ellenőrzés, értékelés, Segítő ötletek megosztása. A PROJEKTMUNKA BEFEJEZTÉVEL A kész programok visszatöltése a WORDPRESS alapú webhelyre. Egymás produktumának letöltése, tesztelése, véleményalkotás. Tanári ellenőrzés a társértékelések figyelembevételével. - Ön-és társértékelés - tesztelés - tanári dicséret - egymás hibáiból is tanulnak - ötletek továbbfejlesztése
A PROJEKT MENETE A 21-es játék programozása ugyan kevésbé látványos, de matematikai képességeket, logikus gondolkodást fejleszt, az ügyességi játék, ügyességi játékokhoz ad alapot A projekt során a tanulók előre megírt eljárásokat, alprogramokat használva egyszerű játékprogramokat írnak, melynek futtatásával lenyűgözhetik társaikat, szüleiket. A paraméterek megváltoztatásával fejlesztik algoritmizálási képességüket. Nevelési-oktatási stratégia Időkeret A foglalkozás menete Módszerek Tanulói munkaformák Eszközök Megjegyzések 1 2 Adminisztrációs feladatok. Gépindítás, Felszerelések bejelentkezés. ellenőrzése. A felelős jelentése. 3 8 Szorgalmi feladatok ellenőrzése. Az Megbeszélés Digitális tábla Az otthonról oszthatósággal kapcsolatos program Tanári bemutató feltöltött megbeszélése. Reagálás a feltöltött kódokat anyagokra. ellenőrizzük. 9 30 A tanultak rendszerezése. Kiegészítés Tanári Csoportmunka Digitális tábla bemutatón keresztül. A 21-es játék matematikai ismertetése. Logikai próba. Az magyarázat Megbeszélés http://www.altiskzahony.sulinet.hu/python/jatekprogramlogikai/
alap program működésének tanulmányozása, elemzése. A folyamatábra elemei és a hozzá tartozó kódrészletek kiértékelése. A kód futtatása, tesztelése. A kód hátrányos tulajdonságainak megbeszélése. 31 42 A párok megkapják a feladatot a kód Tanári Páros munka Digitális tábla Az elkészült fejlesztésére. Az alap stratégia tartásával megtervezik a folyamatot. Elkészítik a magyarázat Megbeszélés http://www.altiskzahony.sulinet.hu/python/jatekprogramlogikai/ programokat feltöltik a logikai játékprogramot a kiadott Közös munka a WordPress kritériumok alapján. Az elkészült program táblánál környezetbe. futtatása, tesztelése, elemzése. Hiányosságok feltárása, javítása. 43 45 A feltöltött kódokat a párok letöltik, Megbeszélés futtatják és értékelik. Közös értékelés. Tanári magyarázat A foglalkozáson felhasznált 21-es játék lényege: Két tanuló játszhatja, vagy gép és játékos. Felváltva mondunk egész számokat 0-tól indulva, de mindig csak 1, 2 vagy 3 adható hozzá az elő játékos által mondott számhoz. Tehát a kezdő mondhat 1, 2 vagy hármat. Ha pl. 2-t mond, akkor a következő csak 3-at, 4-t vagy 5-öt mondhat, és így tovább. Az a játékos nyer, aki először kimondja a 21-et.
Természetesen a kódolásnak addig semmi értelme, amíg rá nem jönnek a nyerő stratégiára. Aki 17-et mond, az nyer, mert a másik csak 18-at, 19- et vagy 20-at mondhat. A 17 tehát nyerő szám. Innen csak egy lépés, hogy észrevegyük, a 13, a 9 az 5 és az 1 is ilyen nyerő számok. Az nyerhet, aki kezd és ezeket a számokat mondja. Így már nem érdekes a játék, de mivel elég nehéz rájönni a nyerő stratégiára és így a gép is jót szórakozik velünk, már elég érdekfeszítő. Alig várják, hogy egy játékot nem ismerő barát mérgelődjön a programjuk felett Az alapkód a következő képen néz ki: #21-es játék print ( Szia! ) print ( ) print ( Hogy hívnak? Kérlek gépeld be a neved, majd nyomj ENTER-t ) nev = input ( neved: ) print ( Üdvözöllek kedves,nev) print ( ) print ( Ez a program a 21-es játék! ) print ( Az nyer, aki először éri el a 21-et. ) print ( A szabály, hogy mindig 1-et, 2-őt vagy 3-at kötelező hozzáadni ); print ( az előző játékos által írt számhoz. ) print( ) print ( Kezdődjön a játék! ) print( ) e = 1 print ( Én kezdek! ) print(e) a = input ( Gépeld be a számod, amit hozzáadok az enyémhez és nyomj Entert: )
a = int(a) print ( A te számod így:,a+e) print ( Most én jövök ) print ( 5 ) a = input ( Gépeld be a számod, amit hozzáadok az enyémhez és nyomj Entert: ) a = int(a) print ( A te számod így:,a+5) print ( Most én jövök ) print ( 9 ) a = input ( Gépeld be a számod, amit hozzáadok az enyémhez és nyomj Entert: ) a = int(a) print ( A te számod így:,a+9) print ( Most én jövök ) print ( 13 ) a = input ( Gépeld be a számod, amit hozzáadok az enyémhez és nyomj Entert: ) a = int(a) print ( A te számod így:,a+13) print ( Most én jövök ) print ( 17 ) a = input ( Gépeld be a számod, amit hozzáadok az enyémhez és nyomj Entert: ) a = int(a) print ( A te számod így:,a+17) print ( Most én jövök ) print ( 21 )
print ( ) print ( A játékot én nyertem ) print ( Viszlát ) Láthatjuk, hogy ez a program bizony verhetetlen. Az igazi feladat azonban csak ezután jön számukra. A játékot és a kódot alapul használva fejleszteniük kell úgy, hogy 30-as legyen a játék vége és ne 1-től 3-ig, hanem 1-től 4-ig lehessen hozzáadni az előzőhöz. A közös fejlesztés után egyénre szabottan kap mindenki egy tetszőleges feladatot a témában. Az egyénre szabott programban pl. 50-es játékot adtam (1-4-ig) történő léptetéssel. A megoldás a http://www.altisk-zahony.sulinet.hu/python/jatekprogramlogikai/ lapon látható. Az alábbi kép ebből mutat egy részletet ill. egy a 30-as kimentből:
A többi megoldás szintén ugyanezen az oldalon található. A következő foglalkozáson a kreativitást kerül előtérbe. Alapként elérhetővé tettem egy egyszerű játékprogram kódját, ami egy Márió szerű ügyességi játékokhoz ad alapot. Ezt követően egyénre szabottan azt kértem, hogy az eddigi tudásukra támaszkodva, próbáljanak változtatni a
játékon, egyéni ötleteik alapján. Leginkább a színek paramétereit, ill. a gyorsaságot találták meg, de ezen kívül is sok meglepő dolgot alkottak. Ezek a http://www.altisk-zahony.sulinet.hu/python/grafika-vegre-jatek/ oldalon követhetők Nevelési-oktatási stratégia Időkeret A foglalkozás menete Tanulói Módszerek Eszközök munkaformák 1 2 Adminisztrációs feladatok. Gépindítás, bejelentkezés. 3 8 Szorgalmi feladatok ellenőrzése. Az összehasonlítással kapcsolatos program megbeszélése. Reagálás a feltöltött anyagokra. 9 30 A tanultak rendszerezése. A játékprogram kódjainak közös megbeszélése, futtatása. A folyamatábra elemei és a hozzá tartozó kódrészletek kiértékelése. A kód futtatása, tesztelése. A kód hátrányos tulajdonságainak megbeszélése. Felszerelések ellenőrzése. A felelős jelentése. Megbeszélés Digitális tábla Tanári bemutató Tanári Csoportmunka magyarázat Megbeszélés Digitális tábla 31 36 A párok megkapják a feladatot a kód Tanári Páros munka Digitális tábla Megjegyzések Az otthonról feltöltött kódokat ellenőrizzük. Az elkészült http://www.altiskzahony.sulinet.hu/python/jatekprogramlogikai/ http://www.altisk-
fejlesztésére. Az alap stratégia tartásával magyarázat zahony.sulinet.hu/python/jatekprogramlogikai/ programokat megtervezik a folyamatot. Elkészítik az Megbeszélés feltöltik a ügyességi játékprogramot a kiadott Közös munka a WordPress kritériumok alapján. Az elkészült program táblánál környezetbe. futtatása, tesztelése, elemzése. Hiányosságok feltárása, javítása. 37 45 Egyéni munkában változtatnak a kódokon és feltöltik azokat. Közös értékelés. Megbeszélés Tanári magyarázat
A PROJEKT RÉSZLETEI SZÜKSÉGES KÉSZSÉGEK Egy általános iskolás tanulótól, még nem várható el, hogy pontosan képes legyen egy probléma megoldását soronként kódolni. Az viszont igen, hogy előre megírt eljárásokat, alprogramokat használva megoldásokat keressen egy probléma helyzetre. Ezen gondolatoktól vezérelve alakítottam ki néhány kezelhető adathalmazt az interneten, ahol működőképes kódokat gyűjtöttem össze, melyek alapul szolgálnak a tanulók számára fejlesztő hatású, magasabb nehézségi fokú problémák megoldására. A Python programozással főleg az utóbbi weblapon foglalkozom. Az Imagine Logo tanórai anyagokat valamint a scratch, java, javascript, html alapokat is hasonló módszerrel tanítom, mint azt az itt leírtakban közlöm. A webhely kialakítását wordpress tartalomkezelővel
végeztem, hogy a tanulók interaktív módon, együttműködve fel is tudják tölteni a kódjaikat és azt közösen tudjuk analizálni, ill. ötvözni közös projektekhez. Például az alábbi képen egy osztályátlag számító alapprogram lázható, amit feladatokkal zárok le. A kódot letöltik, megnyitják a NetBeans környezetbe, majd fejlesztik úgy, hogy a feladat elvégzésének eleget tegyenek.
A Python rövid, tömör blokkokat használ, a behúzással való tagolásban mindenképpen különbözik a többi nyelvtől. A PROJEKTHEZ SZÜKSÉGES ANYAGOK ÉS ESZKÖZÖK TECHNOLÓGIA HARDVER számítógép, digitális tábla
INTERNETES FORRÁSOK, ALKALMAZÁSOK Imagine Logo Python 3.3.3.msi, Pygame 1.9.2a0 http://www.altisk-zahony.sulinet.hu/python/jatekprogramlogikai/ SMART Notebook 10, Wordpress stb (http://altiskzahony.honlapepito.hu/?modul=oldal&tartalom=1132707) (http://www.altisk-zahony.sulinet.hu/python/)