Programkszts s gondolkods Szlvi Pter ELTE IK szlavipelte

  • Slides: 25
Download presentation
Programkészítés és gondolkodás Szlávi Péter ELTE IK szlavip@elte. hu

Programkészítés és gondolkodás Szlávi Péter ELTE IK szlavip@elte. hu

Tartalom 1. 2. 3. 4. 5. A programkészítés eszköztára Nyelvi absztrakció Dekompozíció Információ-konverzió Összefoglalás

Tartalom 1. 2. 3. 4. 5. A programkészítés eszköztára Nyelvi absztrakció Dekompozíció Információ-konverzió Összefoglalás helyett 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 2

1. A programkészítés eszköztára A programozás: a feladat egyre finomabb modelljeinek sorozata, amiben addig

1. A programkészítés eszköztára A programozás: a feladat egyre finomabb modelljeinek sorozata, amiben addig kell eljutni, ahol már a választott programozási nyelv szókincse jelenti a modell alapját. 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 3

1. A programkészítés eszköztára S 1=Spec. S 2 =Alg. M 1 M 2 S

1. A programkészítés eszköztára S 1=Spec. S 2 =Alg. M 1 M 2 S 3=Fin. M 0 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ó, Algoritmus, Kód 2008. augusztus 27. M 4 S 4=Kód. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás M 3 M 3 SS 3 3 Jelölések: 5

1. A programkészítés eszköztára A programozó gondolkodási műveletei: • nyelvi absztrakció • analógiá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ó 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 6

2. Nyelvi absztrakció Specifikálás – mint nyelvi absztrakció. (A korábbi dián S 1. )

2. Nyelvi absztrakció Specifikálás – mint nyelvi absztrakció. (A korábbi dián S 1. ) 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. 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 7

2. Nyelvi absztrakció • A következő absztrakciós lépés: a konkrét adatok adathalmazokká lényegítése. •

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) … 2008. augusztus 27. • 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 8

2. Nyelvi absztrakció • Chomsky értelemben már a specifikáció is nyelv. Ui. : „…

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 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 9

2. Nyelvi absztrakció Tervezés – mint nyelvi absztrakció. (A korábbi dián S. ) •

2. Nyelvi absztrakció Tervezés – mint nyelvi absztrakció. (A korábbi dián S. ) • A tervezés egy leírónyelven történik, pl. : 2 – blokkdiagram – struktogram – pszeudókód – stb. } „rajzos” nyelv „szöveges” nyelv A lényegük: alkalmasak a jellegzetes és elegendő struk-túrák lejegyzésére, és kellően rugalmasak, de egy-értelműek. 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 10

2. Nyelvi absztrakció A tervezés során alkalmazott nyelvi absztrakciós szintek: • Utasítás-szint (+Finomítás-szint [l.

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ások A nyelv struktúrai = előre definiáltak + finomítások • Programozási tételek szintje A nyelv szavai = utasítás-szint + tételek A nyelv struktúrai = (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 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 11

2. Nyelvi absztrakció • Ad hoc (nem rögzített szintaxisú) grafikus nyelvi praktikák is, amelyeket

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: 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 12

2. Nyelvi absztrakció • Érdemes itt Pólya Györgyöt idézni: „Az ilyen típusú feladat beható

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 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 Informatika a felsőoktatásban'2008. augusztus 27. Szlávi: Programkészítés és gondolkodás 14

2. Nyelvi absztrakció Kódolás – mint nyelvi absztrakció. (A korábbi dián S. ) Abszurd

2. Nyelvi absztrakció Kódolás – mint nyelvi absztrakció. (A korábbi dián S. ) Abszurd állítás: itt már kevés nyelvi absztrakció szükséges. (Feltétel: helyes programozási stílus mellett, 4 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. 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 15

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

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. 7 2. (Mérő) A korlát következménye: a felülről lefelé tervezés elve 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 16

3. Dekompozíció Dekomponálás alkalmazása: 1. a feladatot egyre finomodó műveletkészlet segítségével fogalmazzuk újra, amíg

3. Dekompozíció Dekomponálás alkalmazása: 1. a feladatot egyre finomodó műveletkészlet segítségével fogalmazzuk újra, amíg elemi utasítá-sokig el nem jutunk. 2. 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. 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 17

3. Dekompozíció A probléma-alproblémák viszonyai (alg. összetételi módok): • szekvencia – több alprobléma adott

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 Informatika a felsőoktatásban'2008. viszonyban augusztus 27. áll. Szlávi: Programkészítés és gondolkodás 18

3. Dekompozíció Az alá-/mellérendelés kapcsolata a • programtechnológiával (a leírási móddal) – (helyes programírási

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). 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 19

3. Dekompozíció A ’struktúra szerinti feldolgozás’ elve: 1. meghatározzuk a feladathoz tartozó bemeneti és

3. Dekompozíció A ’struktúra szerinti feldolgozás’ elve: 1. meghatározzuk a feladathoz tartozó bemeneti és kime-neti szuperstruktúrát, 2. egyiket kiválasztjuk „vezérlő” adatszerkezetnek, 3. megfeleltetjük az elv felkínálta adatszerkezetek egyiké-vel, és 4. kiválasztjuk az elv szerint hozzátartozó algoritmusszerkezetet. 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 20

3. Dekompozíció Az alproblémák és specifikációik viszonya a „felülről lefelé tervezés” elv alkalmazása közben:

3. Dekompozíció Az alproblémák és specifikációik viszonya a „felülről lefelé tervezés” elv alkalmazása közben: 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 21

4. Információ-konverzió Kiinduló pont: ismerjük föl, melyek azok a korábbi modellbeli fogalmak, objektumok, amelyek

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”: 1. Specifikáció adatleírás, 2. Specifikáció algoritmus – programozási tételek, programtranszformációk 3. Adatleírás a kód adatdeklarációja – kódtranszformáció, 4. Algoritmus kódtörzs – kódtranszformáció, Informatika a felsőoktatásban'2008 5. Specifikáció +Szlávi: adatleírás kódtörzs – kódtransz- 22 2008. augusztus 27. Programkészítés és gondolkodás

4. Információ-konverzió Specifikáció adatleírás – megfeleltetési példák 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi:

4. Információ-konverzió Specifikáció adatleírás – megfeleltetési példák 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 23

4. Információ-konverziók: 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 24

4. Információ-konverziók: 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 24

5. Összefoglalás helyett A „kimaradt” gondolkodási eszközök rövid jellem-zése: • Szuperpozíció – moduláris programozá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észfeladatokra bontása során keletkező eljárások, függ -vények 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 25

5. Összefoglalás helyett • Analógiás gondolkodás – ismert feladatok között a megoldandóhoz hasonló keresése;

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 megfoghatatlansága, a „józanészből” való levezethetetlensége; jellemzője az eredetiség, váratlanság. 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 26

Köszönöm szíves figyelmüket! Az anyag letölthető: http: //digo. inf. elte. hu/~szlavi/Public/ Programkeszites. Gondolkodas. pdf

Köszönöm szíves figyelmüket! Az anyag letölthető: http: //digo. inf. elte. hu/~szlavi/Public/ Programkeszites. Gondolkodas. pdf http: //digo. inf. elte. hu/~szlavi/Public/ Programkeszites. Gondolkodas. ppt Egy teljesebb változat: http: //digo. inf. elte. hu/~szlavi/Info. Okt/ Program. Didaktika. ppt 2008. augusztus 27. Informatika a felsőoktatásban'2008 Szlávi: Programkészítés és gondolkodás 27