Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

A programkészítés didaktikája Szlávi Péter 2004-2013.

Hasonló előadás


Az előadások a következő témára: "A programkészítés didaktikája Szlávi Péter 2004-2013."— Előadás másolata:

1 A programkészítés didaktikája Szlávi Péter

2 A programkészítés didaktikája 2/50 Tartalom 1.Elöljáróban – célokElöljáróban – célok 2.Három alapelv – a programkészítés folyamata ürügyénHárom alapelv – a programkészítés folyamata ürügyén 3.A programozás gondolkozási eszköztáraA programozás gondolkozási eszköztára 4.A gondolkozási eszközök használat közbenA gondolkozási eszközök használat közben i.AbsztrakcióAbsztrakció ii.Lexikalitás kontra kreativitásLexikalitás kontra kreativitás iii.Programozás – modellezésProgramozás – modellezés

3 A programfejlesztés didaktikája 3/50 1. Elöljáróban – célok Mi az, hogy didaktika? Elsősorban a közoktatásbeli programkészítés-ről lesz szó. Neumann-i ( algoritmikus, procedurális ) nyelvekhez kapcsolódó didaktika (elmélet ← módszertan). ( Bár csak ) egy-modulos programtermék, a programozás lényegi részeit érinti ( nem térek ki az adatabsztrakcióra ). Értelmező szótár: „didaktika – oktatástan; a neveléstudomány- nak az oktatás elméletével és módszertanával foglalkozó ága”.

4 A programfejlesztés didaktikája 4/50 2. Három alapelv – a programkészítés folyamata ürügyén Pólyai megközelítés: kérdés-középpontú. Didaktika: Pólyai elv: „jól kérdez  jól analizál  jól »problémameg- old«”jól kérdez

5 A programfejlesztés didaktikája 5/50 2. Három alapelv – a programkészítés folyamata ürügyén Megjegyzés a „jól kérdez”-hez: idézet egy hallgatói levélből ( ): „Az Algoritmizálás, adatmodellezés Tételek 1 előadásával kapcsolatban lenne kérdésem. Az összegzés tétel mátrixra vonatkozó algoritmusánál a 8. dián N,M, és X változókként vannak feltüntetve, ám az ezt követő dián, az eljárásnál már konstansként szerepelnek. Melyik az igazi? Vagy ez nem elírás, és azért jelölődnek így, mert a beolvasás után már nem változnak? Illetve, ha a beolvasásnál vesznek fel értéket, miért konstansként adjuk meg őket? (gondolom, több bemenet esetén okozhat ez galibát)”

6 A programfejlesztés didaktikája 6/50 2. Három alapelv – a programkészítés folyamata ürügyén Megjegyzések a folyamathoz: iteratív átfedők a lépések Megjegyzések a didaktikához: a lépések „vegytiszta” tárgyalása „Madártávlatból közelí- tés” alapelve – célja a tudatosítás „Keretbe foglalás” alapelv: bevezetés + összefoglalás

7 A programfejlesztés didaktikája 7/50 2. Három alapelv – a programkészítés folyamata ürügyén Amire koncentrálunk a továbbiakban…

8 A programfejlesztés didaktikája 8/50 3. A programozás gondolkozási eszköztára A programozás során a feladat egyre finomabb mo- delljeinek sorozatát hozzuk létre, amiben addig kell eljutni, ahol már a választott programozási nyelv szókincse jelenti a modell alapját.mo- delljeinek sorozat Gondolkozási műveletek: –Nyelvi absztrakció –Analogikus gondolkozás –Algoritmikus absztrakció –Információ-konverzió –Dekompozíció, szuperpozíció –Intuíció –Variáció Modellezés = „modellek gyártása”: konkrét (feladat)  absztrakt (feladat/megoldás)  konkrét (megoldás)

9 A programfejlesztés didaktikája 9/50 3. A programozás gondolkozási eszköztára A programozás: a feladat egyre fino- mabb modelljeinek át- írási sémákon alapu- ló sorozata, amiben addig kell eljutni, ahol már a választott prog- ramozási nyelv szókin- cse (utasításkészlete) jelenti a modell alap- ját.

10 A programfejlesztés didaktikája 10/50 S1S1 S2S2 S3S3 S4S4 S3S3 M0M0 M1M1 M2M2 M3M3 M3M3 M3M3 M4M4 Jelölések: S i : az átírás i. „sémája” M i : a megoldás i. „modellje” 3. A programozás gondolkozási eszköztára

11 A programfejlesztés didaktikája 11/50 S 1 = S p e c. S 2 = A l g. S 3 = F i n. S 4 =Kód. S3S3 M0M0 M1M1 M2M2 M3M3 M3M3 S3S3 M3M3 M4M4 Jelölések: S i : az átírás i. „sémája” – Specifikálás, Al- goritmizálás, Fi- nomítás, Kódolás M i : a megoldás i. „modellje” – Feladat, Specifi- káció, Algorit- mus (legfelsőbb, összes szinten), Kód 3. A programozás gondolkozási eszköztára

12 A programfejlesztés didaktikája 12/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció Kiinduló pontok: 1.„bármely nyelv absztrakció” 2.a programozás = modell-sorozat (a feladattól a kódig) 3.modell  specifikus nyelv Ezt a nyelvet „beszélni” kell, nem feltétlenül „írni”. Azaz a formalizáltság kezdetben nem lényeges; csak a használat tudatossága. Modell-nyelvek szinterei: Feladatmegfogalmazás Tervezés Kódolás Mennyire kell „bírni” az egyes nyelveket? Nyelv? Nyelv=szókincs (=absztrakció)+nyelvtan(=ab- sztrakció) sajátos szókinccsel, nyelvtannal

13 A programfejlesztés didaktikája 13/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció Specifikálás – mint „nyelvi absztrahálás”. (A korábbi dián S 1 séma-követés.) A lényeg kiszűrése – mik a kiinduló adatok, a meghatározandók (eredményadatok), az összefüggések a kiinduló adatok között – szerkezeti és tartalmi viszonyaik a kiinduló és az eredményadatok egymáshoz való viszonya – tartalmi kapcsolataik? Gondolati szerkezet: „embrionális” nyelvtan (alanyokkal=be/ki, állítmányokkal)  nyelvtan Pólyától vett idézet: (Kovács Emőd közvetítésével) Pólyától vett idézet: graf/gond.pdf (Kovács Emőd közvetítésével) graf/gond.pdf

14 A programfejlesztés didaktikája 14/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció A következő absztrakciós lépés: a konkrét adatok adathalmazokká lényegítése. Nyelvi absztrakció (s keret) – támpontok : néhány alaphalmazra visszavezetés, néhány halmazkonstrukció felhasználásával. Alaphalmazok: Z (Egészek) R (Valósak) S (Szövegek) … Halmazkonstrukciók:  (Direktszorzás) * (Iterálás) = (Definiálás) … Szókincs Szókincs-bővitési szabályok (  nyelvtan)

15 A programfejlesztés didaktikája 15/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció Chomsky [Ch/15] értelemben már a specifikáció is nyelv. Ui.: „… nyelvnek tekintem a mondatok valamely (véges vagy végtelen) halmazát; minden egyes mondat véges hosszúságú, és elemek véges halmazából épül fel. … valamely formalizált matematikai rend- szer „mondatai” is nyelvnek tekinthetők. ”Ch E nyelv „szintaktikájának” ismerete csupán annyira feltétele a nyelv ismeretének, amennyire egy termé- szetes nyelv esetében az írás (a „formális” nyelvtan) ismerete (v.ö. specifikációs analfabetizmus). … a középiskolás progra- mozó is legyen képes vála- szolni a kérdésekre: mi a be- menet?, mi a kimenet? …

16 A programfejlesztés didaktikája 16/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció Tervezés – mint „nyelvi absztrahálás”. (A korábbi dián S 2.) A tervezés valamely „szabványos” leírónyelven tör- ténik, pl.: –blokkdiagram –struktogram –pszeudókód –stb. A lényegük: alkalmasak a jellegzetes és elegendő (tevé- kenység-) struktúrák lejegyzésére, és kellően rugalma- sak, de egyértelműek. „rajzos” nyelv „szöveges” nyelv }

17 A programfejlesztés didaktikája 17/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció A tervezés során alkalmazott nyelvi absztrakciós szintek: Utasítás-szint + Finomítás-szint [l. Dekompozíciónál!] A nyelv szavai = utasítások + finomítások A nyelv struktúrai = előre definiáltak + finomításdefiníciók Programozási tételek szintje A nyelv szavai = utasítás-szint A nyelv struktúrái = tétel-finomítások + utasítás-szint Modularizálás szintje A nyelv szavai = programozási tételek szintje A nyelv struktúrai = programozási tételek szintje + modulok

18 A programfejlesztés didaktikája 18/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció Ad hoc ( nem rögzített szintaxisú ) grafikus nyelvi prak- tikák is ( „margószéli firkák” ), amelyeket a pillanat prob- lémája ihlet. Pl. a beillesztéses rendezés egy lényegi lépéséhez:

19 A programfejlesztés didaktikája 19/50 … …… 1.j. i.i.+1 t t j-1  t i+1, t j >t i+1 növekvően rendezett Ugyanez lépésenként: ……… 1.j. i.i.+1 t növekvően rendezett t j-1  t i+1, t j >t i+1 3. A programozás gondolkozási eszköztára – nyelvi absztrakció

20 A programfejlesztés didaktikája 20/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció Érdemes itt Pólya Györgyöt [PGyG/71] idézni: „Az ilyen típusú feladat beható elemzését azzal kezdjük, hogy felrajzolunk egy olyan ábrát, amely tartalmazza az ismeretlent és az adatokat, mégpedig olyan elrendezésben, ahogy azt a feladat kikötése előírja. Ahhoz, hogy a feladatot világosan megértsük, minden adatot, a kikötés minden egyes részét külön-külön szem- ügyre kell vennünk; akkor azután egyetlen képbe egyesítjük az összes részleteket, a kikötést mint egészet vizsgáljuk meg, és meg- próbáljuk együtt látni a feladat által előírt különféle összefüggése- ket. Mindezeket a részleteket papirosra felrajzolt ábra nélkül aligha tudnánk kézben tartani, szétválasztani és ismét összerak- ni.”PGyG

21 A programfejlesztés didaktikája 21/50 3. A programozás gondolkozási eszköztára – nyelvi absztrakció Kódolás – mint „nyelvi absztrahálás”. (A korábbi dián S 4.) Abszurd állítás: itt már kevés nyelvi absztrakcióra van szükség. (Feltétel: a helyes programozási stílus, azaz, ha az algoritmus kész.) Ok: elegendőek jól kidolgozott kódolási szabályok, amelyek mellett „kvázi” mechanikus az átírás. Itt válik fontossá a választott programozási nyelv „tipikussága” = közelisége az algoritmikus nyelvhez

22 A programfejlesztés didaktikája 22/50 3. A programozás gondolkozási eszköztára – analógia Az analógiás feladatmegoldás sémája: 1.rokon feladat keresés + 2.kapcsolódás felderítés + 3.rokon feladat megoldásának (=rokon megoldás) felidézése + 4.rokon megoldás aktualizálása. Rokon feladat: azonos a problémafelvetés ( absztrahálás útján ilyenek gyűjthetők, csoportosíthatók ) Rokon megoldás: szerkezetileg azonos algoritmus ( algoritmikus nyelvi elemek és struktúrák; l. nyelvi absztr. )nyelvi absztr.

23 A programfejlesztés didaktikája 23/50 3. A programozás gondolkozási eszköztára – analógia Módszertani kérdés: az analóg feladat-, megoldásbázis –saját tapasztalatokon alapuljon-e, vagy –irányított (preparált) legyen? irányított kevesebb időigény (lexikális) saját tapasztalatokon alapuló mélyebb rögzülés (kreativitást fejlesztő) Az idő szűke  kreativitás fejlődése. Mérlegelés:

24 A programfejlesztés didaktikája 24/50 3. A programozás gondolkozási eszköztára – algoritmikus absztrakció Algoritmikus absztrakció – gondolati (nem nyelvi!) absztrahálódás folyamata: –konkrét feladatokhoz konkrét programmegoldások  –absztrakt utasítás-/adatfajták (szekv.,elág.,cik./típus)  –ezek „rekonkretizálódása”  –„konkretizálódott” utasítás-/adatfajtákkal absztrakt program- sablonok/típuskonstrukciók (programozási tételek/modulok)  –ezek „rekonkretizálódása”  –„konkretizálódott” tételek absztrahálódása adatszinten (tömb  sorozat/halmaz), ill. leképezéssé lényegülése, ill. … … –alkalmazás: tételkombinálás=függvénykombinálás  …

25 A programfejlesztés didaktikája 25/50 3. A programozás gondolkozási eszköztára – algoritmikus absztrakció Elemi algoritmikus absztrakcióhoz: felülről lefelé tervezéslépésenkénti finomítás –„felülről lefelé tervezés” + „lépésenkénti finomítás” elve  finomítás –finomítás = algoritmikus nyelv bővítése (gondolati síkon) –a finomítás és a kezdő programozó („kódrövidítő” szerep, csak később ébred rá: paraméterezhetőség  „absztrakciós eszköz”) eladatáltalánosításMég egy absztrakció: a „feladatáltalánosítás” elve ( „belső”, látens paraméterek definiálá- sa: konstansok, típusok; „fordítási paraméterek” )  absztrahálás

26 A programfejlesztés didaktikája 26/50 3. A programozás gondolkozási eszköztára – algoritmikus absztrakció programozási tételMagasabb szintű absztrakcióhoz – rokonfeladatok absztrakciója: a programozási tételek (absztrakt feladat + absztrakt algoritmus + bizonyítás; l. példa) példa „Nyelvi” vetületek a gondolatisághoz: –A tételek fejsorának problémamegoldást segítő szerepe: „illesztési mintaként” szolgál. (Ez már több, mint csak „beszélt” nyelvismeret.) –„ N  N, X  H * ” vagy „ N  N, X  H N ”? –Sorozat-nyelv vagy halmaz-nyelv? Praktikusan: ezek memóriakímélők Az utóbbi kettő a specifikáció és a tervezés kapcsolatát feszegetik.

27 A programfejlesztés didaktikája 27/50 3. A programozás gondolkozási eszköztára – algoritmikus absztrakció A programozási tétel része Példa Absztrakt feladat – specifikáció: Eldöntés(H *, F (H, L )): L Bemenet: N  N, X  H *, T:H  L Kimenet: VAN  L Előfeltétel: N=Hossz(X) Utófeltétel: VAN   i  [1..N] : T(x i ) Absztrakt megoldás: Konstans MaxN:Egész(???) Típus THk=Tömb(1..MaxN:TH) TTul=Függvény(H):Logikai Eljárás Eldöntés(Konstans N:Egész, X:THk, T:TTul, Változó VAN:Logikai): Változó i:Egész i:=1 Ciklus amíg i  N és nem T(X(i)) i:+1 Ciklus vége Van:=i  N Eljárás vége. Bizonyítás: Ezt most hosszadalmassága miatt elhagyom. Megtalálható többek közt: az [SzPPrSp] irodalomban a oldalon.SzPPrSp

28 A programfejlesztés didaktikája 28/50 3. A programozás gondolkozási eszköztára – dekompozíció, szuperpozíció A dekomponálás: a komplex probléma elemibb problémák együttesére bontása. A szuperponálás: a komplex probléma elemi feladatokból való felépítése. Dekomponálás = „felülről lefelé” tervezés; szuperponálás = „alulról felfelé” tervezés. programfejlesztés eszközfejlesztés A „felülről lefelé” tervezés = „oszd meg és uralkodj” elv. Pszichológusok szerint: 5-7 sémát tud az ember „egyszerre” kezelni. ( Itt a „séma” = „programegység”. )

29 A programfejlesztés didaktikája 29/50 3. A programozás gondolkozási eszköztára – dekompozíció, szuperpozíció A program „finomítási fá”-jához: –Kb. Log 7 (db u ) lépésben (szinttel) „finomul”, ahol a db u az elemi utasítások száma (a legalsóbb szinten). –A programstruktúra kiválasztásához kapaszkodót a „struktúra szerinti feldolgozás” elv nyújt. –Kapcsolat a bonyo- lultsággal. ( Mélységi, absztrakciós bonyolult- ság. )

30 A programfejlesztés didaktikája 30/50 3. A programozás gondolkozási eszköztára – információ-konverzió Cél: minél több információt kinyerni az előző programkészítési lépésben kapottból. Kapcsolatok: Csak „beszélt” esetben a feladatszöveg (  kérdőszók) Specifikáció  adatleírás (l. példa)példa Specifikáció  algoritmus – programozási tételek Adatleírás  a kódbeli adatdeklaráció – kódtranszformáció Algoritmus  kódtörzs – program-, kódtranszformáció Specifikáció  kódtörzs – kódtranszformáció

31 A programfejlesztés didaktikája 31/50 3. A programozás gondolkozási eszköztára – információ-konverzió Specifikációbeli példaAdatleírásbeli példapárja N  N, VAN  L Változó N:Egész; L:Logikai Mag  R * Konstans MaxN:Egész(???) Típus TMag=Tömb(1..MaxN:Valós) Változó Mag:TMag NyilvTart  (Név  Nem  SzülIdő) *, Név= S, Nem= (Ffi,Nő), SzülIdő = Év  Hó  Nap, Év,Hó,Nap = N Konstans MaxN:Egész(???) TípusTNév=Szöveg, TNem=(Ffi,Nő) TÉv=Egész, THó=Egész, TNap=Egész TSzülIdő=Rekord( Év:TÉv,Hó:THó,Nap:TNap) TNyilvTart=Rekord( Név:TNév, Nem:TNem, SzülIdő:TSzülIdő) TNyilvTartK=Tömb(1..MaxN: TNyilvTart) Változó NyilvTart:TNyilvTartK

32 A programfejlesztés didaktikája 32/50 3. A programozás gondolkozási eszköztára – információ-konverzió

33 ? ? ? ? ? ? ? ? ? ? ? ? Típus Algebrai Típus Export Típus Modul AdatAdat Feladat Spec. adat- szerkezeti döntés Adatok=Állapottér Tevékenységek= Állapottér- transzformáció Típus/Adat- környezet Interface Algoritmus kódolás Ellenőrizendő vagy generálandó Szabályozott kapcsolat Jelölések: Az árnyék 1-nél nagyobb multiplicitásra utal. adat- szerkezeti döntés 3. A programozás gondolkozási eszköztára – információ-konverzió

34 A programfejlesztés didaktikája 34/50 3. A programozás gondolkozási eszköztára – intuíció Az intuíció lényege: nem tudatosak intenzí- ven „…intuícióról akkor beszélhetünk, ha a gondolkodó úgy jut valamely igazsághoz, hogy a hozzávezető lépések számára nem tudatosak. … Intuíció csak annál léphet fel, aki a problémával intenzí- ven foglalkozik, és ezért rendelkezik mindazokkal az isme- retekkel, amelyek a probléma megoldásához szükségesek.” Lénárd Ferenc szerint [L/85] Lagrange: „… ilyen … csak azzal történik, aki ezt megérdemli…” [PGyI/71]

35 A programfejlesztés didaktikája 35/50 3. A programozás gondolkozási eszköztára – intuíció 1. példa: Egy mágnesszalag legfeljebb egymillió húszbites egész számot tartalmaz véletlenszerű sorrendben. Keresnünk kell egy olyan húszbites egész számot, ami nem szerepel a szalagon… Probléma: kicsi a memória – „minden 20 biteshez 1 bit” … 1. megoldás: Kiválasztás(i: ,  Eldöntés(File(j),j=i))  borzasztó sok „fájlból olvasás” (≤2 20 *10 6 ≈10 12 elemolvasás) 2 20 =

36 A programfejlesztés didaktikája 36/50 3. A programozás gondolkozási eszköztára – intuíció 2. megoldás: „halovány ötlet” a logaritmikus keresés  probléma: nem rendezett és nem közvetlen elérésű 3. megoldás: „halovány ötlet” a logaritmikus „hozzáállás”  e:=0; u:= Ciklus amíg e

37 A programfejlesztés didaktikája 37/50 3. A programozás gondolkozási eszköztára – intuíció 2. példa: … memóriabeli (nagy) szótárban való hatékony keresés … 1. megoldás: lineáris, esetleg logaritmikus keresés 2. megoldás: ötlet: ahogy az ember keres a szótárban  interpolációs keresés. A keresés hatékonysága: sikeres esetben:log 2 (log 2 (N)) sikertelen esetben:log 2 (N)

38 A programfejlesztés didaktikája 38/50 3. A programozás gondolkozási eszköztára – intuíció 3. példa: … rendezés tömbben, minél hatékonyabban … 1. megoldás: egy „hagyományos” rendezés  O(N 2 ) az elvi O(Nlog 2 N) helyett 2. megoldás (Floyd): ötlet: a menetközben megszerzett információk hatékonyabb újra-felhasználása + egy „részben rendezett” elemekből álló bináris fa  heap + heapsort

39 A programfejlesztés didaktikája 39/50 3. A programozás gondolkozási eszköztára – intuíció Összefoglalva a fentieket: a felfedező szinte mindig azzal jut el meglepő gon- dolatig, hogy látszólag össze nem illő dolgokat képes „gátlástalanul” összekapcsolni. 1.Egy „definíció” szerint alkalmazhatatlan algoritmust erőltet sikerrel, vagy 2.egy hétköznap beváló hozzáállást valósít meg számí- tástechnikai problémakörnyezetben, vagy 3.egy, a feladathoz egyáltalán „nem illő (=meglepő) kép” köré építi föl algoritmikus gondolatait.

40 A programfejlesztés didaktikája 40/50 3. A programozás gondolkozási eszköztára – variáció A variálás: a program valamely „kellékének” több- féleképpen való megfogalmazása és beépítése a ké- szülő programba.variálás Mit variálunk? ( „Kellék – célterek” ) –Adatok – típusok ( pl. k db tömb, v. k-mezős rekordok tömbje… ) –Programozási tétel-kombinációk – algoritmusok Mi célból variálunk? –problémamegoldás ( „vissza az ősökhöz” elv ) –hatékonyságnövelés kedvéért...

41 A programfejlesztés didaktikája 41/50 3. A programozás gondolkozási eszköztára – variáció Lénárd Ferenc írja [L/62] :L „A különböző problémák, feladatok megoldása során a variálások lehetővé teszik, hogy pontosabban ismerjük meg ezeket a problémákat, feladatokat. E nélkül nem ta- láljuk meg a megoldáshoz vezető úton a lehetőségeket, amelyekkel élve eredményhez is jutunk.” Biológiai párhuzam: –A gondolatvariálás célja: a gondolat újabb, „életreva- lóbb” változatának létrehozása, amely a gondolatszelek- ció során megméretik a többi, ugyanazt célzó gondolattal, azaz az erősebb, a problémához jobban illő kiszorítja a satnyábbakat. –A gondolatvariáció és a gondolatszelekció két, ily módon egymást támogató tényezője a gondolatevolúciónak.

42 A programfejlesztés didaktikája 42/50 4. A gondolkozási eszközök használat közben – absztrakció Az absztrakcióhoz A keresés általánosítása: Új fogalomMagyarázat L  H * lehetségesek sorozata az eredeti X egy alkalmasan választott rész-sorozata (L  X) ║.║: H *  N hossz sorozat hossza (elemszáma)  : H *  H * sorozatszűkítés  L  H * :  (L)=L ’ L  L ’  ║L║>║L ’ ║  : H *  N elemindex- kiválasztás  L  H * :  (L)  [1..║X║] L:=X Ciklus amíg ║L║>0 és nem T(X(ε(L))) L:=  (L) Ciklus vége Van:=║L║>0 Ha Van akkor Sorsz:= ε (L)

43 A programfejlesztés didaktikája 43/50 4. A gondolkozási eszközök használat közben – absztrakció Az általánosított keresésből származtathatók: –Lineáris keresés –Lineáris keresés rendezettben –Logaritmikus keresés –Backtrack-alapú keresés –Listával ábrázolt sorozatban keresések Az általánosítás továbbhasznosításai –A többi tétel absztrahálása … –… és ezek specializálásai Általánosítás egyik haszna: a memóriakímélés!

44 A programfejlesztés didaktikája 44/50 Lexikalitás kontra kreativitás A programozás során alkalmazott lexikális ismeret: kis szókincsű, de nagy variabilitású nyelvek, programozási tételek, programtranszformációk, kódolási szabályok. Kérdés: Nem súlyosbítjuk a programozás ezen elkép- zelés szerinti erőltetésével a tanulók képességfejlő- dés terén tapasztalt, és –többek közt– a PISA-je- lentés által feltárt negatív helyzetet? Csupa lexi- kális ismeret, hol a kreativitás?

45 A programfejlesztés didaktikája 45/50 Lexikalitás kontra kreativitás William James pszichológus-filozófus [KGy/62]: „…az egész nevelés szempontjából döntő jelentőségű, hogy ideg- rendszerünket szövetségesünkké tegyük, és ne ellenségünkké. El kell érnünk, hogy gyümölcsözően befektethessük és töké- letesíthessük megszerzett tudásunkat, hogy azután kényelme- sen élhessünk e tőke kamataiból. Éppen ezért minél előbb automatikussá és megszokottá kell tennünk annyi hasznos cselekvést, amennyit csak lehet. Minél több hétköznapi ten- nivalónkat bonyolítjuk le automatikusan, megerőltetés nélkül, annál több magasabb szellemi képességet lehet a csak ezek segítségével elvégezhető tevékenységek számára felszabadítani. ”

46 A programfejlesztés didaktikája 46/50 Lexikalitás kontra kreativitás A programozáshoz kapcsolódó fogalmak bemago- lása olyan instrumentumokat ad a tanulók ke- zébe, amelyek segítségével kreativitásukat nem apró-cseprő megfogalmazási vagy algoritmikus részletkérdésekre kell elfecsérelniük, hanem az igazi problémák megoldására összpontosíthat- nak. Vagyis ezen alapokra támaszkodva a kreati- vitás magasabb fokon, a problémamegoldás fel- sőbb színterén tud kibontakozni.

47 A programfejlesztés didaktikája 47/50 Lexikalitás kontra kreativitás beállítódás Világos veszélyt jelent a beállítódás: a „sablonok megcsontosodása”. Lábos Elemér figyelmeztetése [Lá/61]: „A beállítódás azért különösen érdekes belső mechanizmus, mert két, a gondolkodási folyamatban szerepet játszó dologra utal. A gondolkodás során ismételt feladatokra kész prog- ramok kerülnek aktív állapotba, és gyorsítják a megoldást, de ugyanakkor más programok előhívását gátolják.”

48 A programfejlesztés didaktikája 48/50 Programozás – modellezés Programozás előnyei: 1.Szisztematikus gondolkodásra késztet. 2.Kialakítja, megerősíti az absztraháló képességet. 3.Egy univerzális modellező eszközhöz juttat. 1.Szisztematikus gondolkodás: Szigorú és tudatos, analitikus (elemző) és szintetikus (összeállító) gondolkodás.

49 A programfejlesztés didaktikája 49/50 Programozás – modellezés 3. Univerzális modellező eszköz: Témája tetszőleges tantárgyból vehető. Modellbonyolódás csak „lineárisan” növekszik az idealizáció fokának csökkentésével. 2. Absztraháló képesség: Modell lényeges és lényegtelen vonásainak meg- különböztetése. Formalizált gondolkodás.

50 A programfejlesztés didaktikája 50/50 Irodalom [Be]Bentley,J.: „A programozás gyöngyszemei”, Műszaki Könyvkiadó, 1988 [Ch]Chomsky,N.: „Mondattani szerkezetek – Nyelv és elme”, Osiris Kiadó, 1999 [CLR]Cormen,T.–Leiserson,Ch.–Rivest,R.: „Algoritmusok”, Műszaki Könyvkiadó, 1997 [DDH]Dahl,O.–Dijkstra,E.–Hoare,C.: „Strukturált programozás”, Műszaki Könyvkiadó, 1978 [F] Fóthi Á.: „Bevezetés a programozáshoz”, Tankönyvkiadó, 1983 [Kn]Knuth,D.: „A számítógép-programozás művészete 1.,3.”, Műszaki Könyvkiadó,

51 A programfejlesztés didaktikája 51/50 Irodalom [L]Lénárd F.:A gondolkodás hétköznapjai”, Akadémiai Kiadó,1982 [ML]Mérő L.: „A mesterséges intelligencia és a kognitív pszichológia kapcsolata”, Tankönyvkiadó, 1989 [PGyG]Pólya Gy.: „A gondolkodás iskolája”, Gondolat, 1977 [PGyI]Pólya Gy.: „Indukció és analógia”, Gondolat, 1988 [KGy]Kepes Gy.: „A látás nyelve”, Gondolat, 1979 [Lá]Lábos E.: „Természetes és mesterséges értelem”, Lábos Elemér, 1979 A teljesebb anyag: Szlávi: „A programkészítés didaktikai kérdései”, Doktoridisszertaciok.aspx Doktoridisszertaciok.aspx


Letölteni ppt "A programkészítés didaktikája Szlávi Péter 2004-2013."

Hasonló előadás


Google Hirdetések