Informatika szak

Az „Adatszerkezetes” 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ódsze­reket és formalizmust alkalmazni, amelyeket a típusok definiálására és megvalósítására el kel­lett sajátítania, és azokat a számítógépi eszközöket a feladat megoldása során hatékonyan föl­haszná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, „Bea­dandószöveggel a tárgyban. Az file természetesen a következő pontban részlete­zett 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 tar­talmazó file-ok (a beépített saját unit-, include-oké is), valamint a lefordított prog­ram (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ó he­lyen 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 ér­té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 megjegy­zé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.)

3.2. Formalizmusok

Specifikáció(k) –ideértve a definiált típusokét is– pontos részletezése. Nem muszáj matema­tikai 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.

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 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; hi­bás file-input esetén hiba kijelzése után a program megáll, de a programnak csak egyetlen hi­ba-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!

5. Pontozás

Programkód

futtatással

Fut, helyes eredményeket produkál (használat kényelmessége, egyér­telmű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)....
Ha nem típusok bevezetésével oldja meg a problémát, hanem pl. a kód közvetlen beillesztésével (nincsenek MODULok) akkor..............................
Algoritmus nincs, a büntető súly (As=0.5, és A=0)........................................
Ha nem felülről-lefelé tervez, akkor..................................................................

As=0.5..1

As=0.5

As=0.5,A=0
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
(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
K=0

 

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

K

Biztonságos (beolvasás, file-megnyitás)........................................................
File-os hibafigyelés és –jelzés..........................................................................

0..5
0..5

 

Hibákért (GOTO, EXIT...) egyedi levonás......................................................
Több hiba-leállási pont.....................................................................................
Ha egyetlen file-ba „gyömöszölte”…..............................................................

-5..0
-2

-10

Ss*As*Ks*K

Minimum..Maximum

0..30

Pluszokért:
Pl

(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

6. Értékelés

 

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 egyeztet­jük.