A rendezési algoritmusok tanításának céljai és módszerei

Hasonló dokumentumok
Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.

Haladó rendezések. PPT 2007/2008 tavasz.

Rendezések. Összehasonlító rendezések

Természetismeret. 1. A természettudományos nevelés folyamatában történő kompetenciafejlesztés lehetőségei az alsó tagozaton.

A gráffogalom fejlődése

Legkönnyebb és legnehezebb Rendezési algoritmusok

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k.

SZERZŐ: Kiss Róbert. Oldal1

Tartalom. Programozási alapismeretek. 11. előadás

Közismereti informatika I. 4. előadás

Algoritmuselmélet 2. előadás

Az informatika kulcsfogalmai

SZERZŐ: Kiss Róbert. Oldal1

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Programozás II. előadás

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Programozási alapismeretek 11. előadás

Algoritmusokfelülnézetből. 1. ELŐADÁS Sapientia-EMTE

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

A foglalkozás céljának eléréséhez a következő tevékenységeket végezzük el:

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Algoritmus vizualizáció a tanítási gyakorlatban. Törley Gábor

15. A VERSENYRENDEZÉS

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Adatszerkezetek 1. előadás

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Feladataink, kötelességeink, önkéntes és szabadidős tevékenységeink elvégzése, a közösségi életformák gyakorlása döntések sorozatából tevődik össze.

4. Előfeltételek (ha vannak) 4.1 Tantervi Nincs 4.2 Kompetenciabeli Feladatok kijelentéseinek megértése

Alapként a Szabálykönyv szolgál és minden szabálypont illusztrált videoklipekkel, összekapcsolva a megfelelő szöveges állományokkal.

IKT-MŰHELY A PROGRAMOZÁS TANÍTÁSA ÉS ONLINE FELADATLAPOK KÉSZÍTÉSE N O V E M B E R 1 9.

Véletlenszám generátorok és tesztelésük. Tossenberger Tamás

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

PROGRAMOZÁSI TÉTELEK

A PhysioBank adatmegjelenítő szoftvereinek hatékonysága

Algoritmikus gondolkodás fejlesztése keresési és rendezési algoritmusokon keresztül

MŰVELTSÉGTERÜLET OKTATÁSA TANTÁRGYI BONTÁS NÉLKÜL AZ ILLYÉS GYULA ÁLTALÁNOS ISKOLA 5. A OSZTÁLYÁBAN

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

Struktúra nélküli adatszerkezetek

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA

A dinamikus geometriai rendszerek használatának egy lehetséges területe

A félév során előkerülő témakörök

Adatszerkezetek 7a. Dr. IványiPéter

A természetismeret munkaközösség munkaterve

5. osztály. 1. Az informatikai eszközök használata:

Programozással ismerkedőknek ajánlom. SZERZŐ: Szilágyi Csilla. Oldal1

Animációkra alapozott fizikatanítás. Paizs Ottó, Duráczky József Pedagógiai Fejlesztő és Módszertani Központ, Kaposvár

Java programozási nyelv

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória

Kezdő programkészítőknek ajánlom. SZERZŐ: Kósa Judit. Oldal1

Velünk játék a tanulás

Szimulációs technikák

Digitális tanulás lehetőségei alsó tagozaton Kukk Ibolya

INFORMATIKA. Kerettantervi. 2. évfolyam Az informatikai eszközök használata. órakeret évfolyam

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Programozástanítási célok teljesítése a Logóval és a Scratch-csel

Programozási segédlet

A FOGLAKOZÁS ADATAI: SZERZŐ. Kiss Róbert. Körhinta A FOGLALKOZÁS CÍME A FOGLALKOZÁS RÖVID

Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Az algoritmusok hatékonyságának kérdése a programozás oktatásban

Felvételi tematika INFORMATIKA

AZ ÚJGENERÁCIÓS TANKÖNYVEK FEJLESZTÉSE

Programozási technológia

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Fejlesztı neve: LANDI ANIKÓ. Tanóra / modul címe: CIKLUSOK ALKALMAZÁSA PROGRAMOZÁSI GYAKORLAT

TANULÁSMÓDSZERTAN 5 6. évfolyam

Informatika tanítási módszerek

Web-programozó Web-programozó

A rész (30 pont) A.1. Vajon mit csinál? (5 pont) A generál(n) algoritmus egy n természetes számot dolgoz fel (0 < n < 100).

INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

Informatika Rendszerek Alapjai

Helyi tanterv Informatika évfolyam 2013.

Programozásban kezdőknek ajánlom. SZERZŐ: Szilágyi Csilla. Oldal1

Az összetett programozási tételek is egy tőről fakadnak

DIÁKOLIMPIAI 2013/2014

A kompetencia alapú matematika oktatás. tanmenete a 9. osztályban. Készítette Maitz Csaba

Rekurzív algoritmusok

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

Kémiatanárok szakmódszertani továbbképzése

Generikus osztályok, gyűjtemények és algoritmusok

Szakértelem a jövő záloga

TANULÁSMÓDSZERTAN 5 6. évfolyam

Fejlesztı neve: GOCSÁL ÁKOS. Tanóra / modul címe: INTERNETES GALÉRIA KÉSZÍTÉSE PROJEKTMÓDSZERREL

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

ALAPADATOK. KÉSZÍTETTE Balogh Gábor. A PROJEKT CÍME Hálózati alapismeretek

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Óravázlat. Tantárgy: Marketing Évfolyam: 11. évfolyam Témakör: Célpiaci marketing Piacszegmentálás Tanár: Szemerédi Orsolya

KÜLÖNÖS KÖZZÉTÉTELI LISTA. A 229/2012. (VIII. 28.) Korm. rendelet a nemzeti köznevelésről szóló törvény végrehajtásáról

Bevezetés a kvantum informatikába és kommunikációba Féléves házi feladat (2013/2014. tavasz)

Kedves Kollégák! Alapelvek

Beszámoló. Informatika szakkör

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Az Excel táblázatkezelő

A KÖZÉPSZINTŰ ÉRETTSÉGI VIZSGA INFORMATIKA TÉMAKÖREI: 1. Információs társadalom

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Információ megjelenítés Alapok

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

A programozás oktatása kicsiknek és nagyoknak

Felvételi tájékoztató

Átírás:

A rendezési algoritmusok tanításának céljai és módszerei Bernát Péter bernatp@inf.elte.hu ELTE INFORMATIKA DOKTORI ISKOLA Absztrakt. Cikkemben a rendezési algoritmusok tanításának lehetséges módszereit és céljait járom körül. Rendszerezem és bemutatom az elsősorban szemléltetésre vagy kísérletezésre épülő módszereket, és azokat az interneten elérhető magyar illetve külföldi oktatási segédanyagokkal, valamint saját ötletekkel illusztrálom. 1. Bevezetés Hallom és elfelejtem, látom és emlékszem rá, csinálom és megértem (kínai közmondás) A rendezési algoritmusok témaköre a programozástanításon belül hálás téma: a rendezés a hétköznapokból is jól ismert, könnyen szemléltethető probléma, amelyre számos hatékony vagy kevésbé hatékony megoldás adható. Az alsó tagozatban az informatikaoktatás a rendezési algoritmusok végrehajtására, a középiskolában azok számítógépes megvalósítására koncentrál. Rövid számbavételük után rendszerezem és bemutatom tanításuk lehetséges módszereit, illetve rámutatok a velük teljesíthető tanítási célokra. Az egyes módszereket az interneten elérhető oktatási segédanyagokkal, illetve saját programokkal illusztrálom. 2. A rendezési algoritmusok Az oktatásban a hangsúlyt a helyben rendező algoritmusokra szokták helyezni: a nem hatékonyak közül az egyszerű cserésre, a minimumkiválasztásosra, a beillesztésesre és a buborékosra, a hatékonyak közül például a quick sortra vagy az összefuttatásos rendezésre. 2.1 Egyszerű cserés rendezés Ha az egyszerű cserés rendezés egyáltalán előfordul a tanításban, elsőként szokták bemutatni. Leginkább a minimumkiválasztásos módszer előzményének tekinthető, amely nemcsak hatékonyabb, de véleményem szerint a hétköznapi gondolkodáshoz is közelebb álló. 2.2 Minimumkiválasztásos rendezés A minimumkiválasztásos rendezési elv természetes ötletre épül. Valószínűleg sokan így rendeznek dolgokat anélkül, hogy ismernék a módszer elnevezését. Általános sorozatok esetén a nem hatékony rendezési algoritmusok közül a leghatékonyabb: nagyságrendileg a többivel azonos mennyiségű összehasonlítást végez, viszont a mozgatások száma kevesebb.

2.3 Beillesztéses rendezés Bernát Péter A beillesztéses módszer a hétköznapokban ugyancsak gyakran előfordul: így szoktuk például elrendezni a kezünkbe vett játékkártyalapokat. Habár a minimumkiválasztásos módszernél általános esetben kevésbé hatékony, előnye, hogy nem kell az összes adatnak rendelkezésre állnia a rendezés megkezdésekor, illetve hogy a majdnem rendezett sorozatok esetén jobban teljesít a minimumkiválasztásosnál. 2.4 Buborékos rendezés Népszerű nem hatékony rendezési algoritmus. Az alapötlete, azaz hogy a sorozat folyamatosan rendeződjön, reményre adhat okot, mégis a minimumkiválasztásos módszernél hatékonytalanabb általános esetben. Ráadásul az alapötlet nem mondható éppen természetesen adódónak, ezért egyesek egyenesen száműznék az oktatásból [1]. Megjegyzendő azonban, hogy a majdnem rendezett sorozatok esetén ez a módszer is hatékonyabb a minimumkiválasztásosnál. 2.5 Quick sort rendezés és összefuttatásos rendezés A quick sort és az összefuttatásos rendezés hatékonyabb az előzőeknél, és egyforma hatékonyságúak. Mindkettő rekurzióra épül, így az oszd meg és uralkodj elvű algoritmusok szép példái. 2.6 Szétosztó rendezés Esetenként speciális feltételekre épülő módszerek is szóba kerülnek a tanítás során, így például a szétosztó rendezés. A rendezendő sorozat elemeinek 1 és N közötti, egymástól különböző kulcsértékekkel kell rendelkezniük. Nem kell összehasonlításokat végezni, viszont szükség van egy az eredetivel megegyező méretű új adatszerkezetre (tömbre, listára). 3. A rendezési algoritmusok végrehajtásának tanítása Az alsó tagozatos diákok nemcsak használni kezdik a számítógépet, de a működésükkel kapcsolatos alapismeretekre is szert tesznek. Számítógéphasználat nélkül, játékos formában ismerkedhetnek meg például a bináris számokkal, a kép és a szöveg egyszerű kódolási lehetőségeivel, valamint kereső- és rendezőalgoritmusokkal [1]. 3.1. Szemléltetés és kísérletezés tárgyakkal Esetükben a rendezési probléma felvetésére, és néhány algoritmus megtanítására a tárgyakkal kísérletezés a legalkalmasabb. A tárgyak sorba rendezése valamilyen szempont szerint a hétköznapi valósághoz közelálló, és a cselekvésen keresztüli tanulás különösen ebben az életkorban nagyon hatékony. Olyan tárgyakat érdemes választani, amelyek valamilyen nem látható tulajdonságuk, célszerűen a tömegük alapján egyértelműen sorrendbe állíthatók. Mivel két elem összehasonlítása csak mérleggel lesz lehetséges, a rendezés érzékelhetően elempárok összehasonlításán fog alapulni. Tárgyaknak megfelelők a különböző mennyiségű pénzérmével feltöltött egyforma kapszulák, kétkarú mérlegek pedig az iskola kémiaszertárából kölcsönözhetők. 2

A rendezési algoritmusok tanításának céljai és módszerei 1. ábra: Súlyok rendezése a minimumkiválasztásos módszerrel [2] Egy lehetséges terv a következő [2]: a diákok négyfős csoportonként 8 tárgyat és egy kétkarú mérleget kapjanak. Rávezetésként határozzák meg 2 súly közül a nehezebbet, majd az összes közül a legnehezebbet. Ezután rendezzenek súlyuk szerint 3 elemet, majd pedig (tetszőleges módszerrel) az összeset. A rávezető feladatok után megtanítható egy nem hatékony és egy hatékony rendezési algoritmus. Választhatjuk például a minimumkiválasztásost (1. ábra) és a quick sortot (2. ábra). A tanulók megszámolhatják a szükséges összehasonlításokat (mérésszám) az első, illetve a második esetben, és megállapíthatják, hogy különböző hatékonyságú rendezési módszerek léteznek. Érdeklődő osztályokban további algoritmusok is bemutathatók, így például a beillesztéses vagy az összefuttatásos rendezés. 3.2. Tanítási célok teljesítése 2. ábra: Súlyok rendezése a quick sort algoritmussal [2] A foglalkozás során a diákok észrevétlenül kerülnek közelebb fontos fogalmakhoz: algoritmus, rendezés (adott objektumokat megfelelő tulajdonság kiválasztása után sorrendbe állíthatunk), hatékonyság (különböző lépésszámú megoldásokat lehet találni ugyanarra a problémára), rekurzió ( oszd meg és uralkodj! ). A próbálkozások, illetve a bemutatott algoritmusok megértése, végrehajtása és összehasonlítása fejlesztik a gondolkodást. Mivel pedig a feladatokat csoportosan kell végrehajtani, a tanulók szociális készségei is finomodnak. 4. A rendezési algoritmusok számítógépes megvalósításának tanítása A rendezési probléma a sorozathoz sorozatot rendelő feladattípusba tartozik, és általában a programozási tételekhez kapcsolódóan jelenik meg az oktatásban. A tanulóknak többféle rendezési algoritmust kell megérteniük, leírónyelvvel leírniuk, kódolniuk, hatékonysági szempontból megvizsgálniuk, és természetesen felhasználniuk különböző feladatok megoldásában. Ezekben a lépésekben is különböző személtető-kísérletező módszerek segíthetnek. 3

4.1. Szemléltetés képpel Bernát Péter Az érintett korosztályban elegendő képpel vagy animációval szemléltetni, bár elképzelhető, hogy egyes tanulókon a tárgyakhoz visszatérés segíthet. A képes szemléltetések a rendezési módszerek megértésében nyújthatnak segítséget. Ezek jellemzően a rendezőalgoritmusok külső ciklusainak lépéseivel ábrázolják az adatsorozatot. A nagy mozgások bemutatásával rávilágítanak az algoritmusok stratégiájára, rejtve maradnak viszont az elemi lépések (3. ábra). 3. ábra: A minimumkiválasztásos rendezés szemléltetése képpel [3] Ilyen képek program segítségével is generálhatók, így véletlenszerű, vagy speciális sorozatok mozgása is megfigyelhető a rendezési algoritmusok közben. Érdemes az elemekhez különböző színeket hozzárendelni a kiíráskor (például maradékszámítással), hogy a helyváltoztatások és helyben maradások látványosak legyenek (4. ábra). 4. ábra: A beillesztéses rendezés szemléltetése programmal (saját program) 4.2. Szemléltetés animációval Az animációk a rendezési algoritmusok megértésétől a leíráson és a kódoláson át a hatékonyságvizsgálatig mindegyik lépésben használhatók. Ezek általában az algoritmusok belső ciklusainak lépéseivel ábrázolják a sorozatot. Bemutatják tehát az algoritmusok teljes működését, viszont nehezebben vehető bennük észre a módszerek lényege. 4

A rendezési algoritmusok tanításának céljai és módszerei Az algoritmus megértésében segít, ha a lejátszás sebessége változtatható (esetleg visszafordítható) [4], mert így könnyebb a szemléltetést követni, illetve tanárként magyarázatokat hozzáfűzni. Ha a sebesség nem is változtatható, szüneteltetni minden animációt lehet. 5. ábra: A javított buborékos rendezés szemléltetése animációval [5] Az algoritmusok leírását és kódolását megkönnyítik a ciklusok mutatóinak helyét jelölő animációk [4][5][6][7] (5. ábra). Egyes bemutatókhoz kódot is mellékelnek, amelyen kiemelik az aktuálisan végrehajtott utasítást. Ezt jómagam nem tartom szerencsésnek, hiszen az önálló kódolás egyben a megértés próbája is. 6. ábra: A beillesztéses rendezés szemléltetése speciális sorozatokkal [8] Végül, a hatékonyságvizsgálatot a speciális sorozatokat is rendező animációk támogathatják, amelyek láthatóvá teszik a sorozat típusától függő viselkedés- és hatékonyságbeli különbségeket adott rendezési algoritmusnál (6. ábra). Az animációk továbbá számolhatják és megjeleníthetik a rendezés során végzett összehasonlítások, illetve mozgatások számát [5]. Különleges esetnek tekinthető, amikor egy program nem mutat animációt, de az említett értékeket meghatározza különböző sorozatok, illetve rendezési algoritmusok esetén (7. ábra). 5

Bernát Péter 7. ábra: Különböző algoritmusok hatékonysága különböző sorozatok esetén (saját program) 4.3. Kísérletezés szimulációs programmal A szimulációs programok az algoritmusok biztos megértésében segíthetnek. Habár a tárgyakkal kísérletezéshez képest kevesebb mozgás- és érzékszervvel vannak kapcsolatban, különböző szolgáltatásokat nyújthatnak (8. ábra). 8. ábra: Rendezés szimulációval (saját program) [9] A szolgáltatások közül a legfontosabb, hogy ellenőrizhetik az aktuálisan végrehajtott lépés helyességét a kiválasztott rendezési algoritmustól függően, sőt, folyamatos instruálással akár meg is taníthatják az algoritmust (9. ábra). 6

A rendezési algoritmusok tanításának céljai és módszerei 4.4. Tanítási célok teljesítése 9. ábra: Rendezés szimulációban, ellenőrzési lehetőséggel [6] A rendezési algoritmusok számítógépes megvalósítása valamilyen adatszerkezet (tömb, lista) célszerű használatát, egymásba ágyazott ciklusok szervezését, illetve a konkrét algoritmustól függően rekurzív eljárás készítését igényelheti. Számításokat lehet végezni a futási idővel és a tárhellyel kapcsolatban. A szóban forgó algoritmusok a programozási tételek közül a legösszetettebbek. Leírásuk és kódolásuk a gondolkodást próbára tévő feladat, amelynek megoldását a bemutatott módszerekkel képességektől és előismeretektől függően lehet kisebb vagy nagyobb mértékben támogatni. Nem utolsó sorban a rendezési algoritmusok felhasználhatók különböző matematikai, természettudományos, nyelvi és egyéb feladatok megoldásában, vagyis a témakör megtanításával a programozás eszközként felhasználását is támogathatjuk a többi műveltségi területen. Irodalom 1. Owen Astrachan: Bubble Sort: An Archaeological Algorithmic Analysis http://www.cs.duke.edu/~ola/papers/bubble.pdf (hozzáférés dátuma: 2013.11.03.) 2. T. Bell, I. H. Witten, M. Fellows: Computer Science Unplugged, An enrichment and extension programme for primary-aged children http://csunplugged.org/sites/default/files/activity_pdfs_full/unpluggedteachersmar2010-usletter.pdf (hozzáférés dátuma: 2013.11.03.) 3. Sorting Algorithms Section 3, C.Eng 213 Data Structures http://cow.ceng.metu.edu.tr/courses/download_coursefile.php?id=5451 (hozzáférés dátuma: 2013.11.03.) 4. Sort Animation http://www.cs.oswego.edu/~mohammad/classes/csc241/samples/sort/sort2-e.html (hozzáférés dátuma: 2013.11.03.) 5. Informatikai oktatóprogramok, Oktatóprogramok készítése flash-ben http://tenger.web.elte.hu/flash/index.htm (hozzáférés dátuma: 2013.11.03.) 6. Algo-rythmics http://algo-rythmics.ms.sapientia.ro (hozzáférés dátuma: 2013.11.03.) 7

Bernát Péter 7. Programozni egyszerű! Programozás alapjai kezdőknek, Top School http://www.topschool.hu/programozni-egyszeru.php (hozzáférés dátuma: 2013.11.03.) 8. Sorting Algorithm Animations http://www.sorting-algorithms.com/ (hozzáférés dátuma: 2013.11.03.) 9. Bernát P.: Cserés rendezések http://scratch.mit.edu/projects/87514/ (hozzáférés dátuma: 2013.11.03.) 8