Név: Szlávi Péter
Szoba: Déli épület, 2-407
Telefon: 209 0555 / 8468
Villanyposta: szlavi@ludens.elte.hu
Honlap: http://izzo.inf.elte.hu/szlavi
Lásd http://izzo.inf.elte.hu/szlavi honlapon az „Napi információk” között: „1. félév…” linknél!
Az „Elemi programozás” tárgyról.
PDF, DOC, EXE-fájlok letöltése
Kellékek a dokumentációkészítéshez (http://izzo.inf.elte.hu/szlavi/PrM1felev/DoksiKellekek).
Tematikus blokkok:
· A programkészítés elvi alapjai
· A programkészítés gyakorlata
· Specifikálás
· Programozási tételek
· Típusok
· Speciális algoritmusok
A vörös fonal félévenként:
1. Programozási tételek
2. Típusfogalom. Alapvető sorozatfélék.
3. További sorozatfélék: speciális file-ok. Adatfeldolgotás. Rekurzió mint típuskonstrukciós eszköz, rekurzió és iteráció.
4. Gráfok. Dinamikus programozás. Mohó algoritmusok. Hatékonyság. Párhuzamosság.
Programkészítési folyamat lépése |
Mire keresi a választ |
Mi a végterméke? |
|
Feladatmegfogalmazás |
Miből? Mit? Mi a kapcsolat? |
Specifikáció |
|
Tervezés |
Hogyan ábrázoljam? Hogyan végezzem el? |
Adatleírás + algoritmus |
|
Kódolás |
A számítógép hogyan ábrázolja, és hogyan végezze
el? |
Kód |
|
Tesztelés |
Helyes-e? |
Tesztesetek |
|
Hibakeresés |
Hol a hiba? |
Hibahely-lista |
|
Hibajavítás |
Mi a hiba oka, hogyan küszöbölhető ki? |
Hiba-ok és javítási javaslat |
|
Hatékonysági tesztelés |
Hogyan függ a paraméterektől az időbeli működése és
a helyfoglalása? Kielégítő-e? |
Hatékonysági tesztesetek |
|
Rossz hatékonyságú pontok keresése |
Mely kódrész felelős a nem várt idő- /
helyfelhasználásért? |
Problematikus helyek listája |
|
Hatékonyságnövelés |
Hogyan gyorsítható, hogyan tehető kisebb
helyigényűvé? |
Probléma-ok és módosítási javaslat |
|
Dokumentálás |
Hogyan telepíthető, használható, hangolható? |
Dokumentáció |
|
A feladat tudnivalóinak precíz megfogalmazása, amely alapja
lehet az algoritmizálásnak.
Mit kell a feladat informális szövegéből kihámozni?
Milyen adatok állnak rendelkezésre – bemenet?
Milyen adatokat kell előállítani – kimenet?
Mik a speciális elvárások a bemenet adataival szemben (ha van ilyen) – előfeltétel?
Mit tekintünk helyes eredménynek, azaz milyen kapcsolatban
állnak a kimeneti adatok a bemenetivel – utófeltétel?
A leírásnak egyértelműnek
és –célszerűség okán– rövidnek kell
lennie, így logikus valamely „kipróbált” formális
nyelvet, rendszert alkalmazni. Ez szokás alapján egy matematikai alapú. (Van olyan, amely tisztán halmazelméleti
szókincsű, s van –a miénk ilyen–, amely a sorozatfogalmát
helyezi középpontba, miközben –természetesen– a halmazelméletből átvesz annyit, amennyi kényelmessé teszi a
leírást.
Feladat – informális leírás.
Feladatspecifikáció – a feladat precíz –ámde nem egyértelműséget megengedő– formális leírás.
Programspecifikáció – a feladatspecifikáció egyértelműsítésével (az utófeltétel szigorításával) és a bemenet gyengítésével kapott specifikáció.
Állapottér – a bemeneti és kimeneti adatok absztrakt halmazának direktszorzata.
|
2. ábra. Az állapottér. |
Program – olyan leírás, amely meghatározza a számítás menetét. A program egyes lépései során az állapottér egyes pontjait érinti a számítás.
3. ábra. A program „működés” közben – a program
állapotsorozata (trajektóriája). |
|
4. ábra. A programfüggvény, mint elemi függvények
konvolúciója. |
Programfüggvény – a program absztrakciója, egy függvény, amely a bemeneti adatok halmazáról a kimenetei adatok halmazra képez úgy, hogy éppen az utófeltételnek megfelelő bemeneti és kimeneti értékpárokat rendeli össze. (Más értelmezés szerint: a programfüggvény az állapottér önmagába képző függvény, amely az előfeltételnek eleget tévő pontok alteréből képez az utófeltételnek megfelelő pontok alterébe.)
|
5. ábra. A programfüggvény. |
A jó algoritmikus nyelv: tömör, egyértelmű (világos, kifejező); jó kiindulópont a kódoláshoz, de nem azonos a kóddal semmilyen értelemben!
adatleíró és végrehajtórész
Neumanni nyelvcsalád Þ Pascal Þ (Turbo) Pascal (5.5/7.0)
Progrmozásmódszertan
1. előadás’2004 (vázlat)
0. Az
előadó és a tárgy bemutat(koz)ása
0.1. Az előadó és elérési lehetőségei
0.2. A tárgy általános és 1. félévben
érvényes követelményei, fontos dátumai
0.3.
Egyéb használati tanácsok – „térkép” az anyagbeszerzéshez
0.3. A tárgy felépítése, az egyes
félévek tartalmi vörös fonala
2. A
specifikációról dióhéjban
2.3. Formalizmusról elöljáróban
2.4.
specifikáció és programmodell
3.1.
Az algoritmizálás célja – algoritmikus nyelv és programozási nyelv kapcsolata
4.1.
A választott nyelv besorolása
4.2.
Nyelvismeret vagy kódolási szabályzat ismeret?