250 likes | 360 Views
Programkészítés és gondolkodás. Szlávi Péter ELTE IK szlavip@elte.hu. Tartalom. A programkészítés eszköztára Nyelvi absztrakció Dekompozíció Információ-konverzió Összefoglalás helyett. 1. A programkészítés eszköztára.
E N D
Programkészítés és gondolkodás Szlávi PéterELTE IKszlavip@elte.hu
Tartalom • A programkészítés eszköztára • Nyelvi absztrakció • Dekompozíció • Információ-konverzió • Összefoglalás helyett Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
1. A programkészítés eszköztára A programozás:a feladat egyre fino-mabbmodelljeinek sorozata, amiben ad-dig kell eljutni, aholmár a választott prog-ramozási nyelv szó-kincsejelenti a modell alapját. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
M1 M2 M0 M3 M3 M3 M4 1. A programkészítés eszköztára S2=Alg. S1=Spec. S3=Fin. Jelölések: Si : az átírás i. „sémája” – Specifikálás, Al-goritmizálás, Fi-nomítás, Kódolás Mi : a megoldás i. „modellje” – Feladat, Specifi-káció, Algorit-mus, Kód S4=Kód. S3 S3 Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
1. A programkészítés eszköztára A programozó gondolkodási műveletei: • nyelvi absztrakció • analógiás gondolkodás • algoritmikus absztrakció • dekompozíció, szuperpozíció • információ-konverzió • intuíció • variáció A programozó gondolkodási műveletei: • nyelvi absztrakció • analógiás gondolkodás • algoritmikus absztrakció • dekompozíció, szuperpozíció • információ-konverzió • intuíció • variáció Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
2. Nyelvi absztrakció Specifikálás – mint nyelvi absztrakció. (A korábbi dián S1.) A lényeg kiszűrése – mik a • kiinduló adatok, • meghatározandók, • összefüggések a kiinduló adatok között, • összefüggések a kiinduló ás eredményadatok között. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
2. Nyelvi absztrakció • A következő absztrakciós lépés:a konkrét adatok adathalmazokká lényegítése. • Nyelvi absztrakció:néhány alaphalmazra visszavezetés néhány halmazkonstrukció felhasználásával. • Alaphalmazok: Z (Egészek) R (Valósak) K (Karakterek) S (Szövegek)… • Halmazkonstrukciók: (Egyesítés) (Direktszorzás) * (Iterálás) = (Definiálás) Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
2. Nyelvi absztrakció • Chomsky é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.” • E nyelv „szintaktikájának” ismerete csupán any-nyira feltétele a nyelv ismeretének, amennyire egy természetes nyelv esetében az írás (a nyelvtan) ismerete (v.ö. specifikációs analfabetizmus). Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
2. Nyelvi absztrakció Tervezés – mint nyelvi absztrakció. (A korábbi dián S2.) • A tervezés egy leírónyelven történik, pl.: • blokkdiagram • struktogram • pszeudókód • stb. A lényegük: alkalmasak a jellegzetes és elegendő struk-túrák lejegyzésére, és kellően rugalmasak, de egy-értelműek. } „rajzos” nyelv „szöveges” nyelv Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
2. 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ásokA nyelv struktúrai = előre definiáltak + finomítások • Programozási tételek szintje A nyelv szavai = utasítás-szint + tételekA nyelv struktúrai = (tétel-finomítások+) utasítás-szint • Modularizálás szintjeA nyelv szavai = programozási tételek szintjeA nyelv struktúrai = programozási tételek szintje + modulok Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
2. Nyelvi absztrakció • Ad hoc (nem rögzített szintaxisú) grafikus nyelvi praktikák is, amelyeket a pillanat problémája ihlet. Pl. a beillesztéses rendezés egy lényegi lépéséhez: Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
2. Nyelvi absztrakció • Érdemes itt Pólya Györgyöt 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.” Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
2. Nyelvi absztrakció Kódolás – mint nyelvi absztrakció. (A korábbi dián S4.) Abszurd állítás: itt már kevés nyelvi absztrakció szükséges. (Feltétel: helyes programozási stílus mellett, azaz, ha az algoritmus kész.) Ok: elegendők jól kidolgozott kódolási szabályok, amelyek mellett „kvázi” mechanikus az átírás. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
3. Dekompozíció Dekomponálás: a komplex probléma elemibb problémák együttesére bontása. Szuperponálás: a komplex probléma elemi feladatokból való felépítése. Emberi korlát: a rövid távú memóriában egy idő-ben tartható sémák maximális száma kb. 72. (Mérő) A korlát következménye: a felülről lefelé tervezés elve Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
3. Dekompozíció Dekomponálás alkalmazása: • a feladatot egyre finomodó műveletkészlet se-gítségével fogalmazzuk újra, amíg elemi utasítá-sokig el nem jutunk. • Minden szint a feladatot teljesen megoldja, de a szint egy-egy finomítása csak kb. 5-9 még ele-mibb finomításra, vagy már definiált műveletre bomlik. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
3. Dekompozíció A probléma-alproblémák viszonyai(alg.-összetételi módok): • szekvencia – több alprobléma adott sorrendben kerül egymással mellérendelő viszonyba, amelyek mindegyike végrehajtandó; • elágazás – több, önálló feltételtől függő alprobléma, amelyek közül az igaz-feltételű hajtandó végre, az elágazás egé-széhez képest az említett alproblémák alárendelt vi-szonyban állnak; • ciklus – egy „feltételtől függő számszor” hajtódjék végre a ciklus törzsét alkotó alprobléma, a ciklus egészéhez ké-pest az alprobléma alárendelt viszonyban áll. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
3. Dekompozíció Az alá-/mellérendelés kapcsolata a • programtechnológiával (a leírási móddal) –(helyes programírási stílus esetén) a viszony tükröződik magán az algoritmikus (és adat-) szerkezet leírásán • pszichológiával (a megértés hatékonyságával)–a mellérendelés „additíve” (lineárisan), az alárendelés „multiplikatíve” (hatványozottan) növeli az algoritmus bonyolultságát (a megértés hatékonyságát). Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
3. Dekompozíció A ’struktúra szerinti feldolgozás’ elve: • meghatározzuk a feladathoz tartozó bemeneti és kime-neti szuperstruktúrát, • egyiket kiválasztjuk „vezérlő” adatszerkezetnek, • megfeleltetjük az elv felkínálta adatszerkezetek egyiké-vel, és • kiválasztjuk az elv szerint hozzátartozó algoritmus-szerkezetet. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
3. Dekompozíció Az alproblémák és specifikációik viszonya a „felülről lefelé tervezés” elv alkalmazása közben: Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
4. Információ-konverzió Kiinduló pont: ismerjük föl, melyek azok a korábbi modellbeli fogalmak, objektumok, amelyek mechani-kusan konvertálhatók a készülő új modellbe. Információ-továbbvitel „csatornái”: • Specifikáció adatleírás, • Specifikáció algoritmus – programozási tételek,programtranszformációk • Adatleírás a kód adatdeklarációja – kódtransz-formáció, • Algoritmus kódtörzs – kódtranszformáció, • Specifikáció + adatleírás kódtörzs – kódtransz-formáció. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
4. Információ-konverzió Specifikációadatleírás – megfeleltetési példák Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
4. Információ-konverzió Információ-konverziók: Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
5. Összefoglalás helyett A „kimaradt” gondolkodási eszközök rövid jellem-zése: • Szuperpozíció – moduláris programozás; alapelemekből, bonyolultabb manipulációs „esz-közöket” (pl. típusokat, típuskonstrukciós eszkö-zöket) • Algoritmikus absztrakció – a feladat részfela-datokra bontása során keletkező eljárások, függ-vények Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
5. Összefoglalás helyett • Analógiás gondolkodás – ismert feladatok között a megoldandóhoz hasonló keresése; kapcsolat-feltérképezés; aktualizálás • Variálás – út a legéletrevalóbb megoldás megta-lálásához • Intuíció legfőbb sajátossága a megfoghatatlan-sága, a „józanészből” való levezethetetlensége; jellemzője az eredetiség, váratlanság. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás
Köszönöm szíves figyelmüket! Az anyag letölthető: http://digo.inf.elte.hu/~szlavi/Public/ProgramkeszitesGondolkodas.pdf http://digo.inf.elte.hu/~szlavi/Public/ ProgramkeszitesGondolkodas.ppt Egy teljesebb változat: http://digo.inf.elte.hu/~szlavi/InfoOkt/ProgramDidaktika.ppt Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás