Iskolával kapcsolatos ügyeid intézésében fordulj bizalommal segítőkész képzési munkatársainkhoz!

+36 1 883-3655
info@szamalk-szalezi.hu

Kövess bennünket

Keress bennünket a közösségi médiában is!

1119 Budapest, Mérnök u. 39.
+36 1 883-3655
info@szamalk-szalezi.hu




Algoritmikus gondolkodás fejlesztése a szoftverfejlsztő osztályban

FőoldalMódszertani szobaAlgoritmikus gondolkodás fejlesztése a szoftverfejlsztő osztályban

Algoritmikus gondolkodás fejlesztése a szoftverfejlsztő osztályban

Az órát vezető tanár: Cséfalvay Katalin

Az óra célja: A visszalépéses keresés algoritmusának megtanítása, az algoritmikus gondolkodás fejlesztése, önálló problémamegoldás, kommunikációs készség és prezentációs készség fejlesztése.

Az osztály létszáma: 30 fő

A szoftverfejelesztő osztály a nálunk töltött egy év alatt megismerkedik az alap programozási algoritmusokkal, melyek általában olyan rövid, pár soros  algoritmusok, melyek a megfelelő feladatokra viszonylag könnyen ráhúzhatóak, alkalmazhatóak. A visszalépéses keresés algoritmusa azonban nem ilyen. Ez inkább egy programozási eljárás, és az elvet kell megérteni és a konkrét feladat kapcsán azt alkalmazni. Sok éves tapasztalatom szerint ez nagyon nehezen megy a diákjainknak, még soha nem éreztem azt az óráim után, hogy sikerült volna átadnom a szükséges kompetenciákat. Legjobb esetben is csak “lefordították” a kódot, de azt egy másik feladatra már nem tudták alkalmazni. Ezért elhatároztam,hogy idén egész más módszereket fogok alkalmazni és rászánok erre a feladatra akár 4 alkalmat is. Szerettem volna, ha a diákjaim önállóan fedezik fel ezt az algoritmust, és ráéreznek arra, hogy hogyan kell egy új feladat kapcsán gondolkozni, és milyen utat kell bejárni, hogy rátaláljanak a megoldásra.

Az első alkalom (2 tanóra)

Ennek az órának a célja az volt, hogy megismerkedjünk az kiinduló feladattal. Hagyományosan ez a 8 királynő probléma. Azaz: hogy tudsz elhelyezni 8 királynőt egy sakktáblán, hogy ne üssék egymást.

Először a problémát szerettem volna szemléltetni. Excel táblázatban hamar megrajzoltunk egy sakktáblát, és megkértem diákjaimat, hogy próbáljanak meg elhelyezni a vezéreket. Erre 5-10 percet szántam. Sokszor hitték azt, hogy sikerült megfelelően elhelyezni a bábukat, de végül mindig kiderült, hogy elnéztek valamit.

Az idő elteltével elég bánatosak voltak, de akkor megkérdeztem őket, hogy gondolkoztak?

hamarosan kiderült, hogy volt szisztéma a próbálkozásaikban, szisztémákat kerestek, és amikor nem sikerült letenni egy bábut, hamar rájöttek, hogy a legutolsó bábut jelképező jelet kell egy új, jobb helyre letenni, és újra próbálkozni. Ki is emeltem számukra, hogy pontosan ezt vártam ettől a  feladattól, és megdicsértem őket a módszeres próbálkozásért. Néha nem a megoldás a győzelem, hanem a megoldáshoz vezető logika felismerése.

Ezután egy előre elkészített programommal végignéztük a módszeres próbálkozás lépéseit, majd a program hamarosan meg is oldotta a feladatot. Ez kellőképpen motiválta őket és kíváncsiak lettek a megoldásra.

A program működését lépésről lépésre frontálisan, közös megbeszéléssel próbáltuk megérteni. A prezentációban szereplő algoritmust lépésről lépésre követtük végig a táblára rajzolt sakktáblán.

Az óra végén 6-féle feladat közül lehetett választani, amit majd a projekt során a csapatoknak önállóan kell megoldani az előzőekben vázolt elveknek megfelelően. Megalakultak a közösen együtt dolgozó csapatok (3-4 fő), és kiválasztották a feladatot. (egér a labirintusban, békák, lóugrás, sodoku, tili-toli) Először papíron próbálták megoldani a feladatot. A célom az volt, hogy meggyőződjek arról, hogy pontosan értik a feladatot, beindítsam a gondolataikat a témában. Házi feladat volt a megoldáson gondolkodni.

Második alkalom (2 tanóra)

Ezen az órán annyit szerettem volna, ha észreveszik a hasonlóságot a 8 királynő problémával, és meglátják azt, hogy hol hasonlít egymáshoz a két feladat logikája. Ezért elkészítettem velük közösen egy táblázatot Wordben, ami a 8 királynő feladat megoldásához illeszkedik. A csapatokat arra kértem, hogy a saját feladatuknak megfelelően készítsenek hasonló táblázatot. Az óra közben figyeltem a csoportok munkáját, ahol szükség volt rá, kérdésekkel segítettem a munkát. Az ór végére össze is állt a feladat logikája, mindegyik csapat végére ért a saját feladatának.

Ez volt a minta táblázat. A csapatoknak ilyet kellett kitölteni a saját feladatuknak megfelelően.

Az így kapott táblázat tartalmazott előzetes elképzeléseket a leendő program működéséről, de még sok helyen voltak benne pontatlanságok. Ezekre rávezető kérdésekkel próbáltam felhívni a figyelmet, de nem mindenhol sikerült elérni, hogy rájöjjenek a hibára. Egyelőre nem is ez volt a cél, hanem csak annyi, hogy legyen egy előzetes elképezelésük, ami alapján majd el tudják kezdeni finomítani az algoritmust.

A csapatok szépen dolgoztak, sokat ötleteltek, inspirálták egymást.

Jó lett volna közösen is átbeszélni az egyes csapatok munkáját, de erre nem maradt idő.

Harmadik alkalom (2 tanóra)

Az óra elején megmutattam,hogy a 8 királynő feladat kapcsán az előző órán készült dokumentumból hogy lesz algoritmus. Arra kértem a csapatokat, ők is készítsék el az algoritmusukat. Ez már sokkal nehezebb feladat volt. Kijöttek az előző órai pontatlanságok és sokszor most kellett módosítani az elképzeléseket. A legnehezebb feladat számomra az volt, hogy továbbra is megköveteljem tőlük, hogy papíron dolgozzanak, hiszen még nem voltak elég pontosak az elképzeléseik, de a diákok legszívesebben azonnal a gépen írták volna meg a kódot. Hamar szembesültek, hogy nem úgy fut a program, ahogy kellene, így könnyebb volt visszatéríteni őket a papír mellé.

A csoportok fele az óra végére olyan algoritmust készített, ami nagy valószínűséggel működni is fog. Nekiálltak a programozásnak. Házi feladatnak maradt a program befejezése, és a következő órai bemutatóra való felkészülés.

Egy diák munka. az algoritmus és a megvalósítás egy részlete:

 

Negyedik alkalom (2 óra)

Ezt a 2 órát a csapatok programjainak bemutatására szántam. A célja hármas volt: egyrészt megmutathatták alkotásukat, másrészt beszélniük kellett a társaik előtt szakmai témáról, mindeközben elmagyarázni a saját programjuk működését. Harmadrészt értékelniük kellett egymás és saját munkáját. Ehhez értékelő lapot is kaptak.

Azt tapasztaltam, hogy a csoportok egy része nem jutott el oda, hogy be tudta volna fejezni a programot, úgy, hogy hiba nélkül lefusson.

A csoportok fele korrekt megoldással állta elő, az órai munkák és saját gondolataik alapján dolgoztak.

Voltak olyan csoportok, ahol nem tudták a saját algoritmusaikat működő képes állapotba hozni, ezért az interneten kerestek segítséget, végül egy kész algoritmust adaptáltak, annak a működését azonban megértették, és el is tudták magyarázni.

Volt olyan csapat is, aki nem tudta elmagyarázni a netről másolt program működését.

Továbbá voltak olyan csapatok is, akik a projekt végére felbomlottak és önállóan készítették el a programot. Többen is beszámoltak arról, hogy a közös ötleteléskor jó volt együtt dolgozni, de a program írásakor jobb lett volna, ha önállóan dolgoznak.

Diákmunkák: Sudoku – Hüse István

Lólépésben:

Összegzés

Az osztály sokkal nagyobb hányada érezte magáénak a projekt végére az algoritmust, mint a tavalyi osztályomban. A munka során a többség végig lelkesen dolgozott. Egymás értékelése során nagyon reálisan és korrektül működtek közre, elmondták a véleményüket de nem cikizték egymást, ha valami nem sikerült.

Elfogadtam az általuk ajánlott jegyeket. 3-ra értékelték, ha egy csapat nem tudta megvalósítani saját ötletét, de a neten talált program működését el tudta magyarázni. Ha nem tudták elmagyarázni, akkor az eddigi órai munkák alapján 2-est javasoltak. Amennyiben sikerült megvalósítani a saját algoritmust, de az hibásan működött, 4-est ért.

Amivel nem, vagy csak érintőlegesen foglalkoztunk: tesztelési esetek, dokumentáció.

írta: Cséfalvay Katalin