200 likes | 687 Views
Algoritmusok tanítása. Göncziné Kapros Katalin PhD. Hallgató (DE IK) Eszterházy Károly Főiskola, Eger kaprosk @ ektf.hu. Tartalmi áttekintés. Algoritmus leíró módszerek Vizsgált területek: Általános iskola Középiskola Felsőoktatás Vizsgálat célja:
E N D
Algoritmusok tanítása Göncziné Kapros Katalin PhD. Hallgató (DE IK) Eszterházy Károly Főiskola, Eger kaprosk@ektf.hu
Tartalmi áttekintés • Algoritmus leíró módszerek • Vizsgált területek: • Általános iskola • Középiskola • Felsőoktatás • Vizsgálat célja: • Melyik algoritmus leíró eszközöket részesítik előnyben? • Milyen alapalgoritmusokat alkalmaznak? • Melyek azok az alapnyelvek amelyek alapjául szolgálnak a későbbi ismereteknek?
Algoritmus leíró módszerek • szöveges: a legkevésbé pontos, és a legterjengősebb, de mindenki számára érthető (Természetes nyelvű leírás) • metanyelv: olyan nyelvek, amelyekben csak a vezérlésiszerkezetek vannak definiálva, az elemi tevékenységeket és feltételeket megállapodás szerint alkalmazzuk.(Pszeudo-kód) • grafikus metanyelv: vizuális megjelenítés, könnyen megtanulható nyelv (Folyamatábra, Struktogram, Jackson módszer) • programnyelv: a programok is tekinthetők egy algoritmus leírásának (pl. PASCAL)
Billentyűzetről kérjünk be egy egész számot (N), és adjuk össze 1-től N-ig a számokat! Pszeudo-kód • Kérj be egy N egész számot. • Egytől indulva add össze a számokat N-ig. • Írasd ki a kapott értéket. BE: N [N>0 egész] S=0 Ciklus i=1-től N-ig S=S+i Ciklus vége Ki: S Természetes nyelvű leírás Folymatábra1 Programnyelv Struktogram1 Program Osszeg; UsesCrt; Var i,S : integer; Begin S=0; Writeln(’S=’,S); IfS>0 then begin Fori:=1 toN doS=S+i; end; Writeln(S); End. 1. Simon Gyula: Számítástechnika középiskolásoknak. Debrecen, Pedellus Bt, 1995., 35.o, 37.o
Jackson módszer Szekvencia (Pl.) P Fogalmazás P1 Bevezetés P2 Tárgyalás P3 Befejezés Iteráció (Pl.) P Számok P1 Szám feldolgozása Szelekció (Pl.) P Papírlap P1 Sima P2 Vonalas P3 Egyéb P P P P1 P1 P2 P2 P1 P3 P3 A probléma, illetve a megoldás szerkezetének ábrázolására alkalmas.Alapfilozófia: Egy probléma logikai szerkezete egyértelműen előállítható az általa kezelt vagy előállított adatok szerkezete alapján.Egysége a struktúra, amely megadja, hogy egy magasabb szintű dolog hogyan bomlik tovább komponensekre
Adjunk össze egy számsorozatot, melynek a végét egy negatív szám jelzi! 1. az összeg kezdeti beállítása 2. szám beolvasása 3. szám hozzáadása az összeghez 4. negatív szám feldolgozása, összeg kiíratása 1 4 Számok feldolgozása 2 Törzs feldolgozása Negatív szám feldolgozása 3 Szám feldolgozása
Általános iskolai Algoritmusok oktatása • 5-6. osztály: • Algoritmusok megalapozása • LOGO nyelv használata; • „Robot” tanítása (8.dia); • Cselekvésre késztető jelek bevezetése (9. dia) • Konkrét kezdeti lépések • Algoritmus leíró módszerek: • Szöveges: természetes nyelvű leírással (hétköznapi életből vett példák) • Metanyelven: pszeudo-kód alkalmazása (életszerű példák, vagy meserészlet) • Grafikus metanyelven: folyamatábra, struktogram (10. dia) • Alapalgoritmusokról még nem beszélhetünk, Alapnyelv: LOGO
Robot tanítása Feladat: Ház ablakainak tanítása rajzolása 2 2Mészáros Tamásné: Informatika számítástechnika I., Budapest, Poli-Kvitt Kiadó 1992., 52.o
Cselekvésre késztető jelek 3 3.Kőrösiné Mikis Márta, Mészáros Tamásné: Adatok és algoritmusok I., Budapest, Nemzeti Tankönyvkiadó, 2000., 4-5.o
Pszeudo-kóddal Piroska és a farkas meserészlet algoritmizálása … részlet … Befeküdt a farkas a nagymama ágyába és amikor Piroska megérkezett, a farkas hamm – bekapta … 4.Mészáros Tamásné: Informatika számítástechnika I., Budapest, Poli-Kvitt Kiadó 1992. 54.o
Általános iskolai Algoritmusok • 7-8. osztály: • Algoritmus leíró módszerek: • Metanyelven: pszeudo-kód alkalmazása • Grafikus metanyelven: folyamatábra, struktogram • Alapalgoritmusok • Összegzés, szorzás • Megszámlálás • Eldöntés • Kiválasztás • Maximum, minimum kiválasztás • Kiválogatás • Csere (12. dia) • Rendezés: minimum-, és maximum kiválasztásos (egyszerűsített) • Metszetképzés • Játékok algoritmusa (számlétra; számkitaláló; kő, papír, olló) • Alapnyelv: LOGO, Quick BASIC
Maximum kiválasztás Feladat: Válasszuk ki 10 szám közül a legnagyobbat!5 Csere, rendezés Feladat: Rendezd nagyság szerint sorba az osztály tanulóit! 5 5.Kőrösiné Mikis Márta, Mészáros Tamásné: Adatok és algoritmusok I., Budapest, Nemzeti Tankönyvkiadó, 2000. 37.o
Középiskolai Algoritmusok • 9-10. osztály: • Algoritmus leíró módszerek: • Metanyelven: pszeudo-kód alkalmazása • Grafikus metanyelven: folyamatábra, struktogram • Programnyelv: PASCAL • Alapalgoritmusok • Összegzés, szorzás • Megszámlálás • Eldöntés • Kiválogatás • Maximum, minimum kiválasztás • Csere • Tömb kezelő algoritmusok (tömbfeltöltés) • Metszetképzés • Rendezés: minimum-, és maximum kiválasztásos (hatékony) (14. dia) • Egyszerű kereső • Emelt szintű algoritmusok: • Rendezés: , buborékos, beszúrásos, • Keresés:, lineáris, bináris • Összefuttatás • Backtrack • Alapnyelv: Turbo Pascal és Visual Basic
Maximumkiválasztásos rendezés tömbbel 6 Buborékos rendezés 6. Horváth Tibor, Kiss Marietta: Számítástechnika iskolásoknak II. Budapest, Nemzeti Tankönyvkiadó, 1996. 72-73.o
Algoritmusok a Felsőoktatásban • Algoritmus leíró módszerek • Szöveges: természetes nyelvű leírással (hétköznapi életből vett példák) • Metanyelven: pszeudo-kódalkalmazása • Grafikus metanyelven: Jackson módszer, folyamatábra, struktogram • Programnyelv: PASCAL • Alapalgoritmusok • Összegzés, szorzás • Megszámlálás • Eldöntés • Kiválasztás • Kiválogatás • Maximum, minimum kiválasztás • Csere • Tömb kezelő algoritmusok (feltöltés, bejárás) • Metszetképzés
Algoritmusok a Felsőoktatásban • Alapalgoritmusok • Rendezés: minimum-, és maximum kiválasztásos, buborékos, beszúró, gyorsrendezés, Shell beszúró rendezés(17. dia) • Keresés: lineáris, bináris • Összefuttatás • Backtrack • Fibonacci-sorozat(17. dia) • Az euklideszi-algoritmus • Prímszámkereső algoritmusok • Haladó szintű algoritmusok • Keresés: rendezett sorozaton, strázsás • Javított buborékrendezés I II…, stb. • Alapnyelv: Turbo Pascal, Turbo Basic, Quick Basic, Visual Basic, JavaScript, C#, C++
EljárásShellBeszúróRend(A: TömbTípus) Változó I,J,D,E: egész; Változó X: ElemTípus D:=N Ismétel D:=D/3+1 Ciklus E:=(1..D) ismétel J:=E+D Amíg J<=N ismétel I:=J-D; X:=A[J] Amíg (I>=1) és (X<A[I]) ismétel A[I+D]:=A[I] I:=I-D Avége A[I+D]:=X J:=J+D Avége Cvége Ivége D=1 esetén Evége Fibonacci-sorozat 8 Változó: J, F0, F1, ÚjF, N: Egész; Algoritmus Be: N F0:=0; F1:=1 Ha N=0, akkorKi: F0 HaN=1, akkorKi: F1 Különben Ismételd J:=2-től N-ig ÚjF:=F0+F1 F0:=F1; F1:=ÚjF Ismétlésvége Ki: ÚjF Elágazás vége Algoritmus vége Shell beszúró rendezés7 7.Járdán Tamás, Pomaházi Sándor: Adatszerkezetek és algoritmusok. Eger, EKTF Líceum Kiadó, 1998. 103.o 8.Csőke Lajos, Garamhegyi Gábor: A számítógép-programozás logikai alapjai. Budapest, Nemzeti Tankönyvkiadó Rt., 1997.
Köszönöm megtisztelő figyelmüket! „Ha sok cseresznyepaprikát madzagra fűzünk, abból lesz a paprikakoszorú. Ha viszont nem fűzzük felőket, nem lesz belőlük koszorú. Pedig a paprika ugyanannyi, éppoly piros, éppoly erős. De mégse koszorú. Csak a madzag tenné? Nem a madzag teszi. Az a madzag, mint tudjuk, mellékes, harmadrangúvalami. Hát akkor mi? Aki ezen elgondolkozik, s ügyel rá, hogy gondolatai ne kalandozzanak össze-vissza, hanem helyes irányban haladjanak nagy igazságoknak jöhet a nyomára.” Örkény István: Az élet értelme – egyperces novellák