Algoritmizálás és programozási nyelv használata
A kötelező programozás utolsó, legnagyobb szakasza: fájlkezelés, összetett típusalgoritmusok (másolás, kiválogatás, szétválogatás, rendezés, halmazműveletek), az objektumorientált szemlélet alapjai, modulok, és egy saját grafikus felületű alkalmazás. A témakörhöz javasolt óraterv, ötletláda és tanári tippek tartoznak.
Fájloktól az objektumokig és a grafikus felületig
A témakör a fájlkezeléstől és az összetett típusalgoritmusoktól indul, az objektumorientált gondolkodáson át eljut egy saját, grafikus felületű alkalmazásig.
Fájlok és típusalgoritmusok
Szövegfájl, karakterkódolás, másolás, kiválogatás, szétválogatás, rendezés, unió, metszet.
Objektumok
Adatszerkezet tervezése, objektum, adattag, tagfüggvény, modulok.
Grafikus alkalmazás
GUI, vezérlők, eseménykezelés, projekt és bemutatás.
Mit tanulnak ebben a témakörben?
A kerettanterv szerint a 11. évfolyamon a diákok már összetett problémákat oldanak meg: fájlból olvasnak, összetett típusalgoritmusokat használnak, és megismerik az objektumorientált szemléletet. Ez a kötelező tananyag lezárása és az érettségi alapja. A C# ehhez különösen jól illik, hiszen objektumorientált, és grafikus felületekre is alkalmas.
Szövegfájlból adatot olvas be, és fájlba ír, figyelve a karakterkódolásra.
Összetett típusalgoritmusokat (másolás, kiválogatás, szétválogatás, rendezés, unió, metszet) alkalmaz.
Saját adatszerkezetet tervez, és objektumokkal, adattagokkal, tagfüggvényekkel valósítja meg.
Modulokra bontja a programot, és helyzeti és kulcsszavas paramétereket használ.
Egyszerű grafikus felhasználói felületet készít vezérlőkkel és eseménykezeléssel.
Önálló projektet tervez, dokumentál és tesztel.
Csoportnapló objektumokkal
A diákok egy iskolai csoportnapló adatait (név, jegyek, hiányzás) saját objektumtípusban tárolják, fájlból olvassák be, és tagfüggvényekkel számolnak átlagot, keresnek és rendeznek.
Az óravázlat fejlesztés alatt áll. Addig az ötletláda Objektumkártyák ötlete jó kiindulópont.
Ha húsz tanórád van a témakörre
Ez a javasolt sorrend a NAT 2020 kerettantervének és a hivatalos mintatantervnek a fejlesztési feladataira épül, saját óravázlatokhoz. Az órák önállóan is használhatók, és az ötletláda ötleteivel helyettesíthetők.
- Ismétlés: vezérlési szerkezetekSzekvencia, elágazás, ciklus, függvények.
- FájlkezelésSzövegfájl olvasása és írása, karakterkódolás (UTF-8).
- Másolás, kiválogatás, szétválogatásÖsszetett típusalgoritmusok.
- Összetett típusalgoritmusok a gyakorlatbanFájlból beolvasott adatokon.
- RendezésA rendezés algoritmusa és a beépített rendezés.
- Unió és metszetHalmazműveletek sorozatokon.
- GyakorlásÉrettségi jellegű fájlkezelési feladat.
- Az eljárásközponttól az objektumokigMiért kell új szemlélet?
- Saját adatszerkezet tervezéseObjektum, adattag, konstruktor.
- Objektumok listábanObjektumok tárolása és bejárása.
- TagfüggvényekViselkedés az objektumokban.
- Csoportnapló-projektObjektumok fájlból, számítások, rendezés.
- Paraméterek és modulokHelyzeti és kulcsszavas paraméterek, modulok.
- GyakorlásÖsszetett feladat objektumokkal.
- Grafikus felület 1.Ablak, címke, gomb, szövegmező.
- Grafikus felület 2.Jelölőnégyzet, választógomb, eseménykezelés.
- Grafikus felület 3.Adatok megjelenítése a felületen.
- Projekt: tervezésSpecifikáció, felülettervezés, feladatfelosztás.
- Projekt: megvalósításKódolás, tesztelés, dokumentálás.
- ProjektbemutatásBemutatás, kódáttekintés, értékelés.
További óravázlatok a témakörhöz
A témakörhöz kapcsolódó, már elkészült óravázlatok. Szabadon beilleszthetők a javasolt sorrendbe, vagy kiválthatnak egy órát.
Így tanítják máshol
Szakmailag elismert külföldi források és módszerek, amelyek jól beépíthetők a saját óravázlatokba. Mindegyiknél jelöltük, mire használható a magyar órán.
Exercism
Nemzetközi közösség
Ingyenes gyakorlófeladatok több mint hatvan nyelven, köztük C#-ban és Pythonban, mentori visszajelzéssel. Kiváló önálló gyakorláshoz.
Megnézem (új lapon nyílik)Microsoft Learn – C#
Microsoft (USA)
A C# nyelv és a grafikus alkalmazásfejlesztés hivatalos, ingyenes tananyaga. Az objektumorientált alapokhoz és a grafikus felülethez közvetlenül használható.
Megnézem (új lapon nyílik)CS50x
Harvard University (USA)
Ingyenes bevezető kurzus, amelynek feladatai és előadásai az emelt szintre és versenyre készülőknek jó kiegészítők.
Megnézem (új lapon nyílik)További ötletek a témakörhöz
Rövid, kipróbálható tevékenységek, amelyekkel egy órát kiválthatsz vagy kiegészíthetsz. Mindegyiknél jelöltük, melyik órához illik a legjobban.
Objektumkártyák
Kártyákon „diák” objektumok (név, osztály, átlag). A diákok kézzel végzik el rajtuk a kiválogatást, a rendezést és a szétválogatást, mielőtt kódolnák.
8–9. óra · gép nélkülValódi nyílt adatok
Nyílt adatforrásból letöltött fájl (például menetrend vagy időjárás-statisztika) beolvasása és elemzése saját programmal.
2–4. óra · fájlkezelésRendezési tánc
Egy ismert, rendezési algoritmusokat tánccal bemutató videósorozat után a diákok maguk is eljátsszák a buborékrendezést sorba állva.
5. óra · rendezésHalmazos barátkereső
Két diák kedvenc zenéi vagy hobbijai: mi a közös (metszet), és mi az összes (unió)? Program két fájlból.
6. óra · halmazműveletekMini alkalmazásbolt
Minden csapat egy kis grafikus alkalmazást készít (átváltó, kvíz, jegyzet), és „alkalmazásboltot” rendeznek, ahol kipróbálják egymásét.
15–20. óra · projektÉrettségi-próba
Egy korábbi érettségi programozási feladat megoldása időre, csapatban, majd a megoldások közös elemzése.
7. és 14. óra · felkészítés
Tantárgyi kapcsolódások
Hamarosan
Így lesz mindenkié az óra
Nyelvválasztás
A C# objektumorientált, és grafikus felülethez is kiváló, így jól illik ehhez az évfolyamhoz. A tankönyv Pythont használ, az érettségin több nyelv közül lehet választani, ezért érdemes a választást a diákok céljaihoz igazítani.
Differenciálás
A középszintű érettségire készülők az alapfeladatokat, az emelt szintre vagy versenyre készülők összetettebb algoritmusokat és saját projekteket kapnak.
Értékelés
A projektnél a specifikáció, a tesztelés és a dokumentáció is értékelhető. A kódáttekintés és a bemutatás a szakmai életre is felkészít.
Kerettantervi kapcsolódás
A témakör a NAT 2020 Digitális kultúra kerettantervének 11. évfolyamos tanulási eredményeire és fejlesztési feladataira épül, nem egy adott tankönyv leckéire. A kerettanterv fő fogalmai:
- szövegfájl, fájlkezelés, karakterkódolás
- összetett típusalgoritmusok: másolás, kiválogatás, szétválogatás, rendezés, unió, metszet
- objektum, adattag, tagfüggvény, modul, paraméterek
- grafikus felhasználói felület, vezérlők, eseménykezelés
Kerettantervi témakör: Algoritmizálás, formális programozási nyelv használata (20 óra a 11. évfolyamon). A kötelező programozási tananyag lezárása, amely a digitális kultúra érettségi programozási feladatainak alapja.
