1 / 25

Programkészítés és gondolkodás

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.

nerice
Download Presentation

Programkészítés és gondolkodás

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programkészítés és gondolkodás Szlávi PéterELTE IKszlavip@elte.hu

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

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

  23. 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

  24. 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

  25. 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

More Related