Informatika szak

A „Rekurziós” Beadandó Feladat
Értékelési Szempontjai

1. A beadandó feladat Céljai

A beadandó feladat célja annak bizonyítása, hogy a hallgató képes önállóan azokat a mód­szereket és formalizmust alkalmazni, amelyeket a típusok definiálására és megvalósítására el kellett sajátítania, és azokat a számítógépi eszközöket a feladat megoldása során hatékonyan fölhasználnia, amelyekkel megfelelő minőségű munkát képes leadni.

2. Beadandó

1.  A komplett anyagot e-mail-ben kell elküldeni egy file-lá összecsomagolva. Az file természetesen a következő pontban részletezett struktúrában tartalmazza az anyagot, amelynek neve: feladatsorszám + szerző neve (Pl. 01EinsteinA.zip).

2.  A beadandó részei: a dokumentáció(ka)t tartalmazó file, a Pascal forráskódot tartalmazó file-ok (a beépített saját unit-, include-oké is), vala­mint a lefordított program (exe-file), továbbá a fordításhoz és futtatáshoz esetleg szükséges további file-ok (pl. tesztadat-file-ok). A beadandót alkotó file-szerkezet:

<\       -- a gyökérben a futtatási környezet (EXE + adatfile-ok)
 
0\FORRAS\       -- PAS programállomány + UNIT/INCLUDE forrásállományok
 
0\DOKU\       -- DOC-állományok

3.  A feladat sorszáma, szövege és a név a dokumentáció nyitó lapján jól látható helyen szerepeljen! (L. a mintadokumentációt doc-ban, pdf-ben!)

4.  Célszerű, bár nem kötelező a megoldást floppy-n is beadni.

      Biztonság kedvéért a floppy címkéjén legyen a szerző neve és a feladat sorszáma, s az értékelés lezárulásáig egy másolatot mindenki őrizzen meg.

5.  A dokumentáció kinyomtatott formában. Ez indokolt esetben elmaradhat. (ekkor azonban nem tudunk részletesebb értékelést adni róla).

3. Szempontok

3.1. Módszerek

A 'Felülről-lefelé programkifejtés' elvének, valamint a programozási tételek fölhasználá­sának tükröződnie kell az algoritmuson. (Az alkalmazott tételek nevei szerepeljenek meg­jegyzésként a megfelelő algoritmikus részletek mellett.) E beadandók legfontosabb jellemzője, hogy az algoritmusok rekurzívak. Azaz tilos ismétlődést ciklusok bár­melyikével szervezni! Az egyes felhasznált saját típusok megvalósításnál törekedni kell an­nak „újrafelhasználhatóságára”, azaz a megvalósító kódot különálló file-ban kell elhelyezni. (Egyszerűen szólva: ahány új típust kell definiálni a programhoz, annyi file-ban kell elhe­lyezni a hozzájuk tartozó kódot.) Célszerű a klaviatúrát és a file-t speciális típusként felfogni, s ekként a hozzájuk tartozó operációkat rekurzívan megvalósítani.

3.2. Formalizmusok

Specifikáció rekurzív. Az esetleg bevezetett új típusok algebrai leírását nem kell mellékelni, de a moduljait igen. A modulokban el lehet tekinteni az egyes operációk elő- és utófel­tételeinek részletezésétől.

Az algoritmust (és a típust definiáló modulokat) az órákon is használt pszeudó kód segí­tségével kell leírni. A kód Turbo Pascal 5.5, vagy 7.0 változatában készüljön.

A fejlesztői dokumentáció minden megadott „kérdésre” (pl. kód is!) válaszoljon. A felhasz­nálói dokumentáció igényesen (futásokból vett hard-copy-kkal illusztrálva) bemutatja a programhasználat mikéntjét.

3.3. Eszközök

Turbo Pascal fejlesztőrendszere a program gépreviteléhez (egy fordítási egységből álló program szerkesztése, fordítása és futtatás, elemi hibakeresési szolgáltatások készsége).

Valamilyen igényes számítógépes szövegszerkesztő a dokumentáció elkészítéséhez. (Tükrö­ződjön a dokumentáción: szövegszerkesztési rutin; minimális ergonómiai igényesség: címek, fejezetcímek, bekezdések, igazítások alkalmazása).

4. súlyok

Legnagyobb súlyt az algoritmus helyessége mellett az algoritmusok rekurziív volta kapja. Ezt követi a program minősége: a barátságosság (képernyőtörlés, beolvasás és eredmény­megjelenítés egyértelmű jelzése, gusztusos volta) és a biztonságosság (a program által a bemenő paraméterekkel szemben támasztott elvárásoknak ellenőrzése).

Szintaktikusan hibás programot érdemben nem értékelünk. Szemantikusan hibás (elszálló),  nem a megadott adatszerkezet(ek)re épülő, vagy lényegesen leegyszerűsített feladatot meg­oldó program töredékértékben számítható csak be. (Utóbbi két esetben teljes pontértékkel csak a dokumentáció számítható, minden más csak bizonyos százalékban.) A kipróbálás előtt a Turbo Pascal OPTION-COMPILE menübeli Range checking .. Overflow checking for­dítási opciók be kell kap­csolni, s így fordítandó le a program!

5. Pontozás

Programkód

csak futtatással
ellenőrizve

Fut, helyes eredményeket produkál (használat kényelmessége, egyér­telműsége,...)

Ha nem helyes eredményeket is produkál, akkor erre a részpontszám

Ha nincs a lemezen PAS file, de EXE van, akkor a büntető súly (Ps)

Ha nem fordítható le  és EXE sincs, akkor összpont

0..20

 

0..10

Ps=0.5

összesen: 0

Ps*Pr

Minimum..Maximum

0..20

Dokumentáció

Ha nincs, akkor nincs specifikáció, nincs algoritmus és nincs ellen­őrizhető kód. Ezért azok pontjai elvesznek.

Összesen: 0..20

 

Fejlesztői teljessége

0..8

D

Felhasználói teljessége

0..7

 

Igényesség (a teljes dokumentációé; pl. ábrák vannak-e…)

0..5

D

Minimum..Maximum

0..20

Specifikáció

A feladatnak nem megfelelő specifikáció büntető súlya (Ss)

Ss=0..1

 

Rekurzív program-specifikáció

0..10

P

Bemeneti, kimeneti file-ok szerkezetének részletezése

0..2

 

Formalizáltság (hatékony, leírást rövidítő fogalmak; matematizáltság)

0..8

Ss*P

Minimum..Maximum

0..20

Algoritmus

A specifikációtól eltérés büntető súlya (As)

As=0.5..1

 

Algoritmus nincs, a büntető súly (As, és A=0)

As=0.5,A=0

 

Ha nem felülről-lefelé tervez (típusok, eljárások...), akkor A=0

A=0

 

Tételek alkalmazása tükröződik az algoritmuson

0..5

A

A ciklusok rekurzívan megoldottak.

0..10

 

Típusok körültekintő választása, jól definiálása és megvalósítás

0..5

 

Hibákért (pl. nem megengedett szerkezetek...) egyedi levonások

-10..0

Ss*As*A

Minimum..Maximum

0..20

Kód
(doku. alapján)

Az algoritmustól eltérés büntető súlya (Ks)

Ha nem ellenőrizhető a kód, akkor e rész összpontja

Ks=0..1
0

 

Barátságos (beolvasás, visszajelzés, eredménymegjelenítés)

0..5

 

Biztonságos (beolvasás, file-megnyitás)

0..5

K

Hibákért (GOTO, indokolhatatlan HALT, ill. EXIT...) egyedi levonás
Ha egyetlen file-ba „gyömöszölte”…

-10..0

-5

Ss*As*Ks*K

Minimum..Maximum

0..10

Pluszokért:
Pl

(kódfile-ok, ablakos menü, help...)

0..10

Beadandó:

Összpontszám, Minimum..Maximum:

(Ps*Pr+D+Ss*P+Ss*As*A+Ss*As*Ks*K+Pl)

0..90+10

6. Értékelés

Alsóhatár

Felsőhatár

Jegy

75

..

5

65

74

4

55

64

3

45

54

2

..

39

1

A határidő be nem tartása esetén az aláírásért pótlólag kell elkészíteni a beadandót feladatot. Ez esetben a jegy elérheti kivételes esetben a 2-t is.

Fontos: a beadandókat szóban is meg kell védeni. Ennek időpontját és helyét egyeztet­jük.