Ez volt a tizenharmadik hét (labor és előadás) posztja. A laborokra az utolsó három hétre már nem írtam ki kötelező törzsanyagot, mert a főtéma a laborgyakorlat védése volt! A poszt funkciója immár a szóbeli és írásbeli vizsgák szervezése. Megtalálod itt a részletezett tételeket, de akár az írásbeli tesztet is letöltheted.
A hivatalos (azaz az előadásnak megfelelő) témához kapcsolódik a cím, amelynek kontextusában az ember BPMN-ben, Isten pedig BPEL-ben dolgozik.
Láthatóan legalább száz mérnök informatikus hallgató volt kíváncsi a közvetítésekre, hiszen legalább 10 monitor csatlakozott és gondolom mind egy kávéházból vagy sörözőből, ahol legalább 10 hallgató volt jelen az adott helyen, ahol a kivetítőre kötve a gépüket az egész szórakozóhelyet szakmaibb hangulatúvá tették :)
15 pont annak, aki saját foci csapatához UML osztálydiagramokat készít (lehet reengineering :)
A szorgalmi időszak számokban
A nálam lévő 5 labor 99 hallgatójából 19-en nem kaptak aláírást a félévi munkájukra. A kurzust felvett 145 hallgatóból 65 hallgató kapcsolódott be a feladatok beküldésébe, közülük 14 hallgató lépte át a 100 pontos határt (11 vesz részt a "100-as" vadászok ligájában).
Szóbeli vizsga
A hagyományoknak megfelelően itt a tételsort értelmezzük, finomítjuk. Néhány általános megjegyzés a szóbeli vizsgára:
- az előadások végén kötelezőnek jelzett olvasmányok, ahogy a név is mutatja: kötelezőek
- papíron nem programozunk általában és a vizsgán sem
- a vizsgán való sikeres szereplés szükséges feltétele a tételek "jól kell tudni" részének tudása
Az írásbeli és szóbeli vizsgán is bármi (jegyzet, könyv, gép) használható, sőt: erősen javallott! S egyben ezért felesleges magolni vagy puskát írni! Ez nem történelem vizsga, ennek megfelelően tipikusan mindig valamilyen forráskódra támaszkodást várok és nem szavalatot vagy mit gondolt Arany Madáchról típusú gondolatmenetet... kóbor memóriafoszlányt vagy hexameterben a Huszt-ot :)
A tételsor alapját szokásosan az előadások kezdő "Minimális gyakorlati cél" és "Minimális elméleti cél" fóliái alapján állítjuk össze.
1. tétel
1. ea.-ból:
Jól kell tudni: egy saját Java platformos (Java SE vagy Java ME vagy Java EE vagy leJOS vagy Android Java) fejlesztést, tapasztalatokat, "mit, miért, hogyan szerveztem, csináltam" stb. bemutatni (Java SE esetén egy "Helló, Világ!" gyors prototípus, vagy egy-két osztályból álló példa nem elfogadható saját fejlesztésnek. A saját Atan alapú RCSS robotfoci csapat viszont nyilván igen. Egyéb platformokon a "Helló, Világ!" jellegű példa is elfogadható).
help: gyakorlatilag sajár robotfoci csapattal mindenkinek rendelkeznie kell, így ez a beugró nem lehet probléma, egyéb Java SE példára is számtalan volt a kurzusban, az alternatív tabella számolásától a FerSML platformig. Java ME esetén könnyű választás a NehogyMar7-es példa, hiszen ehhez külön könyv is van. Java EE kapcsán pedig remek, de nem könnyű választás a DocBook-os, XSLT-s Portlet.
Java nyelv kapcsán: karakterkészlet, elemi típusok, vezérlési szerkezetek, deklarációk, tömbök, kifejezések, paraméterátadás, osztályok, példány és osztály szintű attribútumok és metódusok, hozzáférési kategóriák, konstruktor, öröklődés.
2. tétel
2. ea.-ból
Jól kell tudni: polimorfizmusra példákat hozni a gyakorlati jegyzet GoldenTeam FC csapatából
help: a csapatban mély leszármazási fa van: a JátékosAdaptert kiterjeszti a Játékos, azt például a Támadó, azt pedig a Hidegkúti osztály, érdemes megnézni, hogy melyiknek a játékbanVezérlés() fgv.-e, postInfo() fgv.-e fut le. Ezzel megintcsak nem lehet gond, ha a hallgató megpróbált a félév során módosítani az ágensek viselkedésén.
Java nyelv kapcsán: interfészek (különös tekintettel az atan.model.ActionsPlayer és a atan.model.ControllerPlayer interfészekre), csomagok.
Az első tétel saját fejlesztéséhez a hallgató be tudja mutatni UML osztálydiagramjait! (De ha az első tételben nem robotfocit választott a hallgató, itt természetesen a robotfocis elfogadott, de tavalyi C++ példára készített osztálydiagramok nem)
3. tétel
3. ea.-ból
Jól kell tudni: az első tétel saját fejlesztéséhez OO metrikát kiszámolni (a robotfocis Maven projektek számolják, laboron konkrétan a ciklomatikus komplexitást néztük pl.)
help: az igényesek itt az mvn site (vagy sonar:sonar :) után böngészik a legenerált riportokat és ráböknek egyre, például a 2. ea. 125-től mutatott Sonar és Xradar Maven bővítmények használatával; mondjuk a Fedezet esetén a NOC-ra (leszármazottak száma) DIT-re (leszármazási fa mélysége) RFC-re (kiket hívogat)
De már a ciklomatikus komplexitás megmutatásával is tökéletesen megelékszek, a szokásos kérdés megválaszolásával: melyik a projekt legbonyolultabb függvénye.)
Java nyelv kapcsán: kivételkezelés
4. tétel
3. ea.-ból
Jól kell tudni: saját kivételosztály készítése (pl. a Jávát tanítokét dolgoztuk fel.)
help: itt elég a Jávát tanítok példáját feléleszteni vagy ismertetni.
Java nyelv kapcsán: párhuzamosság (különös tekintettel a SwingWorker osztály használatára).
5. tétel
4. ea.-ból
Jól kell tudni: XML dokumentum jól formázottsága, érvényessége (példának használhatod akár a saját csapatod pom.xml-jét, de számos XML dokumentummal találkoztunk a félévben az AIML-től a PBEL-ig)
help: itt elég validálni egy XML állományt, aki nagyon igényes, az egy Relax NG-s szurkolói avatárt validál a jing-el, aki minimalista, az egyik focicsapat pom.xml-jén nyom egy jobb gombot a NetBeans-ben és a Validate-el validál.
Java nyelv kapcsán: leJOS viselkedés API-jának (subsumption architecture) részleges ismerete
6. tétel
4. ea.-ból
Jól kell tudni: Apache Maven koncepció, használata a gyakorlati jegyzet robotfocis csapatai projektjeinél
help: gyakorlatilag mindenki védte a csapatát, ami tipikusan Maven projekt, így nem okozhat gondot beszámolni arról, hogyan használtad/használod.
Java nyelv kapcsán: JAXP, SAX, DOM API-k részleges (saját példán alapuló) ismerete
7. tétel
4. ea.-ból
Jól kell tudni: Java ME MIDP programot parancssorból felépíteni
help: az előadásban lépésről-lépésre lefóliáztuk
Java nyelv kapcsán: Java ME MIDP API részleges ismerete
8. tétel
5. ea.-ból
Jól kell tudni: a saját robotfoci csapathoz készített Junit teszt
help: a GoldenTeamFC-0.0.3-project.zip gps függvényéhez írtat elég bemutatni: http://www.inf.unideb.hu/~nbatfai/mircsource/
Alkalmazások skálázhatósága, EJB, fürtözés.
9. tétel
6. ea.-ból
Jól kell tudni: üzleti folyamatot lerajzolni BPMN nyelven
help: jöhet az előadás laborkártyája picit kiegészítve, de leírhatsz bármit: a hallgató kurzusválasztásától a teafőzésig... illetve azt igényeseknek érdemes átfutni az ajánlott irodalmat
AspectJ nyelvi bevezetés: vágási pont, csatlakozási pont, tanács, átszövő vonatkozás.
10. tétel
7. ea.-ból
Jól kell tudni: a saját robotfoci csapathoz készített AspectJ szövés
help: volt triviális (GoldenTeamFC-0.0.4-project.zip) és egy picit komplexebb (GoldenTeamFC-0.0.4sumkick-project.zip): http://www.inf.unideb.hu/~nbatfai/mircsource/
A BPMN nyelv (és az egyéb vállalati folyamatleíró nyelvek részleges ismerete, koncepciója említés szinten)
További szabályok
- 54 pont felett (nagyobb egyenlő), +3 jegy az írásbelihez, ha az elégtelentől jobb, a szóbelin is +3 (ha az elégtelentől jobb) és a hallgató az általa választott három tételből húz.
- 18 pont felett (nagyobb egyenlő), +2 jegy az írásbelihez, ha az elégtelentől jobb, a szóbelin is +2 (ha az elégtelentől jobb) és a hallgató az általa választott hat tételből húz.
- 6 pont felett (nagyobb egyenlő), +1 jegy az írásbelihez, ha az elégtelentől jobb, a szóbelin is +1 (ha az elégtelentől jobb) és a hallgató az általa választott nyolc tételből húz (tehát az összesen 10-ből kettőt biztosan elkerülhet).
Írásbeli vizsga
Állítom össze az írásbeli tesztet. A feladatok gép nélkül is megválaszolhatóak, de vitathatatlan, hogy a géppel történő munka sokat segíthet. Ha lesz Nálad gép, az alábbiakat érdemes megfontolni az előkészítésében:
- jó, ha rajta vannak a focicsapatok: http://www.inf.unideb.hu/~nbatfai/mircsource/ s mivel ezek Maven projektek, így nyilván a Maven is szerencsés
- a FerSML projekt "Public Resource Football Computing" része
- API doksik (az Oracle-től az SE, ME, EE letölthető, de érdemes a leJOS-ra, Androidra is gondolni) pl.: http://docs.oracle.com/javaee/6/api/, http://docs.oracle.com/javase/7/docs/api/, http://docs.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/index.html
- Nemcsak a JDK, de jó, ha az AspectJ is fent van
- A Javát tanítok, illetve a blog (pl. Alternatív tabella) példái
Az írásbeli teszt
Tegnap megírtuk az első tesztet, már gépelem az eredményeket a Neptunba. Hagyományainknak megfelelően közreadom az egyik csoport feladatsorát.
Ugyancsak "tartva a hagyományokat" valódi informatika vizsga volt:
írásbeli ponthatárok és eredmények
12 feladat, 1 pont egy feladat, összesen 12 pont. (Előadáslátogatási jogosítvány +1 pont.)
százalék | pont (elm.) | pont (gyak.) | érdemjegy |
50% | 6 | 6-7 | 2 |
65% | 7.8 | 8-9 | 3 |
80% | 9.6 | 10 | 4 |
90% | 10.8 | 11-12 | 5 |
- 49 elégtelen
- 11 elégséges
- 8 közepes
- 5 jó
- 6 jeles
a 2. írásbeli eredményei:
- 10 elégtelen
- 19 elégséges
- 16 közepes
- 9 jó
- 5 jeles
*: http://hu.wikiquote.org/wiki/Latin_k%C3%B6zmond%C3%A1sok