A beadandó feladat célja annak bizonyítása, hogy a hallgató képes önállóan azokat a módszereket é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.
1. A komplett anyagot e-mail-ben kell elküldeni egy file-lá összecsomagolva, „Beadandó” szöveggel a tárgyban. 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), valamint 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 is behatató (ekkor tudunk részletesebb értékelést adni róla).
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 megjegyzésként a megfelelő algoritmikus részletek mellett.) A feladathoz illeszkedő típusok definálása és megvalósítása. A megvalósításnál törekedni kell a típus „ú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 elhelyezni a hozzájuk tartozó kódot.)
Specifikáció(k) –ideértve a definiált típusokét is– pontos részletezése. Nem muszáj matematikai jelöléseket használni, de teljesnek, egyértelműnek és precíznek kell lennie; az új típusok algebrai leírását nem kell mellékelni, de a moduljait igen. A modulokban el lehet tekinteni mindenegyes operáció elő- és utófeltételeinek részletezésétől. Fontos, hogy legyen egy-két példa az operációk specifikálására is!
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ó rövid, de minden megadott „kérdésre” (pl. kód is!) válaszoljon. A felhasználói dokumentáció igényesen (futásokból vett hard-copy-kkal illusztrálva) bemutatja a programhasználat mikéntjét.
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).
Legnagyobb súlyt az algoritmus helyessége mellett az alkalmazott típusok megvalósításának meggondoltsága kapja. Ezt követi a program minősége: a barátságosság (képernyőtörlés, beolvasás és eredménymegjelení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; hibás file-input esetén hiba kijelzése után a program megáll, de a programnak csak egyetlen hiba-megállási pontja lehet).
Szintaktikusan hibás programot érdemben nem értékelünk. Szemantikusan hibás (elszálló), vagy nem a megadott adatszerkezet(ek)re épülő, esetleg lényegesen leegyszerűsített feladatot megoldó 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 fordítási opciók be kell kapcsolni, s így fordítandó le a program!
Programkód futtatással |
Fut, helyes eredményeket produkál (használat kényelmessége, egyértelműsége,...) |
0..30 |
ellenőrizve |
Ha nincs legalább 3
–lényegesen eltérő– adat-file |
-10 |
Pr |
Ha egyáltalán nincs
adat-fájl |
összesen: 0 |
|
Ha nincs a lemezen PAS file, de EXE van, akkor a büntető súly (Ps) |
Ps=0.5 |
|
Ha nem fordítható le és EXE sincs, akkor összpont (utólag pótolnia kell) |
összesen: 0 |
Ps*Pr |
Minimum..Maximum |
0..30 |
Dokumentáció |
Ha nincs, akkor nincs specifikáció, nincs algoritmus és nincs ellenőrizhető kód. Ezért azok pontjai elvesznek. |
Összesen: 0..20 |
D |
Fejlesztői teljessége |
0..8 |
|
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..30 |
Specifikáció |
A feladatnak nem megfelelő specifikáció büntető súlya (Ss) |
Ss=0..1 |
|
Program specifikáció |
0..10 |
S |
Bemeneti, kimeneti file-ok
szerkezetének részletezése |
0..5 |
|
A megadott típusok
operációinál szerepel legalább 2 ef/uf |
0..5 |
|
Formalizáltság (hatékony, leírást rövidítő fogalmak; matematizáltság) |
0..10 |
Ss*S |
Minimum..Maximum |
0..25 |
Algoritmus |
A specifikációtól (a
megadott ábrázolástól) eltérés büntető súlya (As).... |
As=0.5..1 As=0.5,A=0 |
A |
Tételek alkalmazása tükröződik az algoritmuson |
0..10 |
|
Az
eljárásoknak/függvényeknek van elő-, utófeltétele „mutatóban” |
0..5 |
|
Típusok körültekintő
választása, jól definiálása és megvalósítása |
0..10 |
|
Hibákért (pl. nem megengedett szerkezetek...) egyedi levonások |
-10..0 |
Ss*As*A |
Minimum..Maximum |
0..25 |
Kód |
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 |
|
A
típusok megvalósítása (reprezentáció+implementáció) |
0..10 |
|
Lapozott
file-os tájékoztató.............................................................................. Barátságos (beolvasás, visszajelzés, eredménymegjelenítés)..................... |
0..5 |
K |
Biztonságos (beolvasás,
file-megnyitás)........................................................ |
0..5 |
|
Hibákért (GOTO, EXIT...)
egyedi levonás...................................................... |
-5..0 -10 |
Ss*As*Ks*K |
Minimum..Maximum |
0..30 |
Pluszokért: |
(kódfile-ok, ablakos menü, help...) |
0..10 |
Beadandó: |
Összpontszám, Minimum..Maximum: (Ps*Pr+D+Ss*S+Ss*As*A+Ss*As*Ks*K+Pl) |
0..140+10 |
Alsóhatár |
Felsőhatár |
Jegy |
120 |
.. |
5 |
100 |
99 |
4 |
80 |
84 |
3 |
60 |
69 |
2 |
.. |
54 |
1 |
Minden megkezdett hét
késés egy jegy levonásával jár.
Fontos: a beadandókat szóban is meg kell védeni. Ennek
időpontját és helyét egyeztetjük.