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

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

0.2.   A tárgy általános és 1. félévben érvényes követelményei, fontos dátumai

Lásd http://izzo.inf.elte.hu/szlavi honlapon az „Napi információk” között: „1. félév…” link­nél!

Az „Elemi programozás” tárgyról.

0.3. Egyéb használati tanácsok – „térkép” az anyagbeszerzéshez

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

0.3.   A tárgy felépítése, az egyes félévek tartalmi vörös fonala

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.

1.      A programírás folyamata

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ázol­ja, é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 hely­foglalá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 ja­vaslat

Dokumentálás

Hogyan telepíthető, használ­ható, hangolható?

Dokumentáció

1. ábra. A Programkészítés folyamata

2. A specifikációról dióhéjban

2.1.   Célja

A feladat tudnivalóinak precíz megfogalmazása, amely alapja lehet az algoritmizálásnak.

2.2.   Szerkezete

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?

2.3.   Formalizmusról elöljáróban

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 sorozat­fogalmát helyezi középpontba, miközben –természetesen– a halmazelméletből átvesz annyit, amennyi kényelmessé teszi a leírást.

2.4. specifikáció és programmodell

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 halma­záról a kimenetei adatok halmazra képez úgy, hogy éppen az utófeltételnek megfelelő beme­neti é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.

3. Az algoritmus leírónyelv

3.1. Az algoritmizálás célja – algoritmikus nyelv és programozási nyelv kapcsolata

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!

 

3.2. Algoritmikus szerkezetek

adatleíró és végrehajtórész

 

4. A programramozási nyelv

4.1. A választott nyelv besorolása

Neumanni nyelvcsalád Þ Pascal Þ (Turbo) Pascal (5.5/7.0)

4.2. Nyelvismeret vagy kódolási szabályzat ismeret?

 

 


Tartalom

Progrmozásmódszertan 1. előadás’2004 (vázlat) 1

0. Az előadó és a tárgy bemutat(koz)ása. 1

0.1.      Az előadó és elérési lehetőségei 1

0.2.      A tárgy általános és 1. félévben érvényes követelményei, fontos dátumai 1

0.3. Egyéb használati tanácsok – „térkép” az anyagbeszerzéshez. 1

0.3.      A tárgy felépítése, az egyes félévek tartalmi vörös fonala. 1

1.     A programírás folyamata. 2

2. A specifikációról dióhéjban. 2

2.1.      Célja. 2

2.2.      Szerkezete. 2

2.3.      Formalizmusról elöljáróban. 3

2.4. specifikáció és programmodell 3

3. Az algoritmus leírónyelv. 5

3.1. Az algoritmizálás célja – algoritmikus nyelv és programozási nyelv kapcsolata. 5

3.2. Algoritmikus szerkezetek. 5

4. A programramozási nyelv. 5

4.1. A választott nyelv besorolása. 5

4.2. Nyelvismeret vagy kódolási szabályzat ismeret?. 5

Tartalom.. 6