A kiértékelő kérdőív eredményei
A kérdőívvel kapcsolatos felhívást kiküldtem e-mailben minden olyan hallgatónak, aki valaha is fel volt iratkozva a feladat levelezési listájára (tehát azoknak is, akik akár már félév közben leiratkoztak). Összesen 66 címre ment ki felkérés, viszont sajnos csak 10-en töltötték ki a kérdőívet. Ez az alacsony szám valamelyest megkérdőjelezi az alábbi adatok és eredmények reprezentatív voltát, mindazonáltal az alábbiakban összefoglalt visszajelzés ennek ellenére is fontos tükröt tart elénk a verseny hallgatói megítélése kapcsán.
A numerikus kérdésekre az 1=”egyáltalán nem” – 5 = „nagyon” skála volt érvényes. A hallgatói megjegyzéseket normál szedéssel, saját további megjegyzéseimet dőlt formázással szúrtam be.
Hallgatói adatok
Összességében elmondható tehát, hogy a versenybe mind a tanulmányaikkal csúszásban lévők, mind az MI tárgyat már másodszor felvevő hallgatók beszálltak.
A feladat meghirdetése
Az előadáson hirdetés tehát relatíve hatékony módszer volt, különösen annak tükrében, hogy a félév késői időszakában történt amikor az előadások látogatottsága már jelentősen visszaesett. Másként szemlélve viszont látható, hogy az előadáson még ekkor is kitartók a legmotiváltabbak és legkönnyebben megfoghatóak.
Érdekes, hogy senki nem jelölte, hogy a kiküldött Neptun üzenetből vagy hallgatótársaktól értesült volna a versenyről.
Alapvetően tehát a feladat maga illetve annak meghirdetése kellően megragadta azoknak a hallgatók a figyelmét. Összességében tehát a kezdeti marketing rendben volt.
ű
A jelek szerint a honlap megfelelő információforrás volt.
A levelező listán sajnos nem alakult ki a hallgatók közötti érdemi kommunikáció, inkább egyirányú információs lista volt a friss információk gyors közreadására – nem kellett folyton nézniük a honlapot, ha bármi új információ kikerült, arról azonnal értesültek. A jövőben esetleg érdemes lehet a listán dedikáltan ilyen céllal létrehozni (vagyis a hallgatói levél beküldést letiltani és csak információ terjesztésre használni).
Hogyan ütemezné a versenyt, ha ez az Ön feladata lenne?
- Szerintem jobban nem lehet időzíteni, de nekem sajnos nem jutott rá időm.
- hát, inkább év elejére.. első héttől 13ikig..
- Mivel ez eddig a legdurvább félév házi szempontból. Talán az egész féléven át tartó verseny, és aki ráér az csinálja.
- Mivel azt hiszem, a félév anyagának szinte semmi köze nem volt a megoldásomhoz, ezért szerintem lehetne a félév elejére is ütemezni. Persze nem árt, ha tudja az ember, mik azok az ágensek, stb., de ez így is csak logika.
- Persze itt gond lehet az, ha valaki megajánlott jegyet szerez, mert akkor nem tanul meg semmit, ezért lehetne mondjuk úgy, hogy a félév elején kell beadni egy ágenst, ami legyőzi a simple ágenst, utána pedig maradna ez az ütemezés, biztosítva azt, hogy okosabb ágensekre is legyen idő.
- Egész félév során folyhat a verseny. Nem baj ha még csak egy előadás volt a tárgyból, az ilyen jellegű versenyekhez, úgyis programozási késég józan ész és logika kell. Aki fellelkesül úgyis utána olvas a témakörhöz tartozó elméletnek is.
- Sokkal hamarabbra mint ebben a félévben, ugyanis értékelhető megoldáshoz sok utánajárásra és próbálkozásra van szükség, az érintő MI témaköröknél nagyobb mélységben, vagyis az előadáson hallottak nem adnak túlságosan sokat a dolgokhoz, szabadidő pedig általában a félév első felében van.
- A vizsgaidőszak közepéig lehetővé tenném az ágensek leadását, de egy (nem csak különdíjra szorítkozó) első forduló lehetne a szorgalmi időszak végén is.
- Most jó volt, mert volt egy kis időszak, amikor volt idő vele foglalkozni (ez a meghosszabbításkor volt)
- Így nagyon jó volt, hogy belenyúlt a vizsgaidőszakba. Én pl. a szorgalmi időszakban egyáltalán nem foglalkoztam vele, mert egyszerűen nem volt rá időm - a kötelező dolgaim nagyobb prioritást élveztek.
Egyéb megjegyzések a feladat meghirdetésével kapcsolatban
- A nemzetközi, például google által szervezet és ahhoz hasonló ai challengeket is lehetne hirdetni az egész karon esetleg honorálni is az eredményeket. Kevesebb munka a tanszéknek, látványosabb eredmények.
- Néhány ötletes idei ágens bemutatható lenne :)
A rendszer beüzemelése
Szükség lenne egy telepítőre, ami mindent kulcsrakészen előkészít a hallgatónak – sajnos a mindenféle kiegészítő JAR fájlok és DLL-ek telepítése tagadhatatlanul nehézkes, különösen ha több Java futtatókörnyezet is telepítve van a hallgató gépére.
A lejátszóhoz is szükség lenne telepítőre. Ez ugyan a szimulátor beüzemelése után már nem igényel Java beállítást, viszont a paraméter átadása nehézkes és jó eséllyel a hallgatónak bele kell nyúlkálnia az indító BAT fájlba, ami semmiképpen nem elegáns.
A dokumentáció tehát rendben van – a nehézségek nem is ebből adódtak, hanem magának a jól dokumentál beállítási folyamatnak a nehézkes voltából.
AgentSpeak
Ez a kérdés lehet, hogy kicsit félreérthető lett: arra igyekeztem rákérdezni, hogy mennyi jártasságot szereztek, de az a gyanúm, hogy inkább a nyelv népszerűségét pontozták.
A segédanyaggal nagyjából elégedettek voltak, de – ahogy alább látszik – még elfogadtak volna szinte bármilyen további segítséget is.
Egyéb megjegyzések az AgentSpeak-kel kapcsolatban
- Nekem leginkább a szakmai angol nyelv okozta benne a nehézséget, az összefoglaló segített volna, ha pár alap dolgot elmagyaráz (mondjuk valami olyanmi szemléletben, hogy "változó" helyett mit használunk, stb.).
- "Nem tudtam vele megbarátkozni. Lehet az én hibámból, de végig a verseny alatt a legnagyobb problémám nem a legjobb taktika a megtalálása volt, hanem hogy a gondolataimat kifejezzem agentspeak nyelven. C++ vagy Javan tizedannyi idő alatt leírtam volna amit akartam és a kód is sokkal robosztusabb lett volna és több idő marad a taktikák tökéletesítésére. Plussz pont a nyelvnek, pont a gyenge kifejezőereje és silány debugg miatt, hogy az agyamat nagyon felpörgette, elég egyedi gondolkodásmód kell, hogy lehessen benne programozni.
ui: A listák kezelhetősége borzalmas x(" - "Amennyire kivettem, az AgentSpeak ereje, hogy jól kiegészíthető. Javaslom, hogy lehessen Java kiegészítéseket is írni.
Egyébként nagyon nem jött át az, hogy miért jó az AgentSpeak. A koncepció jó, csak a megvalósítás szerintem borzalmas. A nyelv filozófiájával ellentétes a procedúrális, szekvenciális programozás - emiatt egy csomó nyelvi elem idegesítően hiányzik. Ugyanakkor a szekvenciális interpretálás miatt az egész programozás alatt gondolni kell erre a ""rejtett"" szekvencialitásra. Lehet, hogy azért van mert nem ismertem meg eléggé az AgentSpeak nyelvet, de nem látom (a jelenlegi megvalósításban) az előnyét egy ""hagyományos"" procedúrális/objektum orientált nyelvel szemben."
A játék és a játékszabályok
A játék érdekességével – egyszerűsége ellenére – nagyjából meg voltak elégedve, tehát szerencsére nem érezték a problémát túl primitívnek. Ugyanez mondható el a komplexitásról az alábbi grafikon alapján.
Hogyan módosítaná a játékot, hogy az érdekesebb legyen?
- ne keljen erősebnek lenni, ha támadsz
- Ami nagyon furcsa volt az elején, hogy az ágenst tud ellenfele energiájáról. Ha nem tudjuk előre, hogy a támadás sikeres-e, akkor sokkal izgalmasabb lenne és több értelme is lenne 2 ágensnek, energiaátadásnak, kommunikációnak stb.
- Nagyobb játéktér, több ágens, random falak, random semleges ellenfek és még több random random random. Akkor lesz élvezetes a játék és annál komplexebb is szvsz ha sok véletlen van a játékban amire a játékosoknak fel kell készülnie. Így sok olyan sziutáció előfordul amire esetleg nem is gondolna a programozó.
- Az ágens a verseny alapján úgy lehetett sikeres, ha jobban alkalmazkodott a környezetéhez, ám szerintem ebbe beletartozik az a lehetőség is, hogy más ágenseket megsemmisítve vagy ellehetetlenítve tegye ezt.
- Rövidebb játékok - igaz, sok kör kell a szerencsefaktor minimalizálásához, de 20.000 kör nagyon sok. Ne lehessen kaját foglalni :)
- "A támadásnál nem biztos, hogy teljesen jó, hogy csak kisebb energiájú ellenfelet lehet megtámadni. Hasonló ötlet lehetne az, hogy van ""pajzs"" energia, amit a normál energiából kell félreraknia az ágensnek. A pajzs energia legyőzéséhez legalább akkora energiájú támadásra van szükség - egyébként a pajzs megvéd."
Egyéb megjegyzések a játékkal és a játékszabályokkal kapcsolatban
- Szimulátor: legyen körökve osztva a játék. Gondolok én arra, hogy ha az ellenfél a kaján áll és én megtámadom, akkor ha elöttem jön akkor ő még az megette.
- Lám István álltal említette: ellenséges ágensek tudatát megfertőzni ne lehessen.
- Ha hiba lép fel a futtatás során és egyértelműen megállapítható kinek a programja fagyott be a másik csapatnak kell kapni a 3 pontot. Ezzel kizárható a szándékos fagyasztás is.
- A támadás formája még kicsit elriasztó (erősebbnek kell lenned, drágább, mint megtámadva lenni), persze kell is, hogy ne háborúba fulladjon egy játék, de talán szívesebben élnének vele sokan, ha előnyösebb lenne.
- Büntetni kellene (pontozásban), hogyha valaki "megfagyasztja" a játékot (nem dönt), mert ezzel ki lehetne játszani a szimulátort.
A szimulátor használata
Nagy hangsúlyt helyeztem arra, hogy maga a játék látványos is legyen, és örömmel látom, hogy a többség tetszését el is nyerte.
Hogyan módosítani a grafikus felületeket a jobb használhatóság érdekében?
- A képernyőn az ágenseket ne a színükkel lehessen azonosítani hanem a számukkal. Színtévesztő vagyok így aztán sose tudtam kitalálni melyik melyik ágens melyik.
- Nagyon jó volt a grafikus felület, a visszajátszó könnyen visszaadta a lekódolt ágenst:)
- Jobb debuggolhatóság: legyen olyan vezérlő elem, mint a lejátszóban, vagy legalább csak pause gomb, és visszatekerés.
A fenti három grafikon némileg ellent mond egymásnak, ugyanis a szimulátort GUI nélküli módban illetve módosított beállításokkal csak a konfiguráció átszerkesztésével lehetett elindítani. Ez alapján tehát örömmel látom, hogy a hallgatók legalább részben használták a nekik szánt kényelmi és gyorsító funkciókat, illetve érdekesnek találták a játékot annyira, hogy a versenytől függetlenül további szituációkat is kipróbáljanak.
Egyéb megjegyzések a szimulátor használatával kapcsolatban
- Jó lenne, ha az ágens tudná a saját ID-ját, és a csapattársai ID-jait, illetve a név-id összerendelést feloldani. Ugyanis a látott ágensnek üzenetet küldeni nem lehet, hogy a "látás" során az ID derül ki, az üzenet küldésnél pedig a név kell
A beadó rendszer
Hol kellene javítani, illetve lenne érdemes módosítani a beadó rendszer működésén valamint megjelenésén?
- Lehet, hogy csak nekem nem tűnt fel, de nem találtam fájl feltöltési lehetőséget. (Bár nem esett nehezemre bevágni a szöveget)
- "Két problémám volt ami végig nagyon zavart, egy: nem tudtam leellenőrizni a feltöltött kódot! Csomó beadást pocsékba ment mert rossz verziót töltöttem fel és nem tudtam megnézni az oldalon mit töltöttem fel, így aztán kitalálni is igen nehéz, hogy akkor most valamit elnéztem a programbam azért szerepelek rosszul a szerveren, vagy csak szimplán hülyeséget töltöttem fel.
- Kettő: a kommunikációnál levő kavarodás miatt is elrontottam jópár beadást. Sőt majdnem a végső beadást is. Szerencsére a végére sikerült tisztázni a dolgot. Sokat könnyített volna ha a honlapon le van írva rendesen hogy, hogyan kapnak az ágensek nevet illetve nincs az a fránya beadás sorszám."
- Nem voltak komoly problémák vele.
- A friss verziójú ágensek tesztfutása és győzelme a simple ágens felett legyen a beadási követelmény.
- 2 csapatot egy futtatás során többször (3-5) kellene, így kizárni a mázli faktort. Ugyanis sokszor a kezdésen múlik minden...
A futtatások ritkítása kicsit a hallgatói terhelést is igyekezett volna egyenletesebbé tenni (tehát nem lehetett a megoldást az utolsó pillanatra hagyni, majd akkor minden öt percben új megoldást beadni) – ezt úgy látom alapvetően elfogadhatónak tartották, úgyhogy továbbra is megtarthatónak érzem.
Szerencsére nem sokan idegeskedtek, de a jövőben az ilyen blamákat le kell majd kerülni.
Egyéb megjegyzések a beadó rendszerrel kapcsolatban
- Napi 4 futtatással lehet, hogy a fejlesztés gyorsabb lehetne.
- Jó lenne, ha látható lenne menet közben a rangsor.
Vegyes kérdések
Nem elemeztem alaposabban a korrelációt az első blokk hallgatói adataival, de úgy tűnik, hogy értékelhető megoldást beadni kb. 20 óra munka után lehet, illetve idén a jó eredményhez 30 óra körüli befektetés kellett. Ezek az értékek nekem kicsit alacsonynak tűnnek, de tekintve, hogy a hallgatók dolgoztak intenzíven a feladat megoldásán, valószínűleg mégis ők tuják jobban megítélni a dolgot. Érdemes meggondolni, hogy a 30 óra munka hivatalosan 1 kreditet ér.
Idén tehát nagyjából elégedettek voltak, de ha nő majd a résztvevők száma, akkor a díjak számának is emelkedni kell
Nem tiltottuk meg, sőt igazából sehogy sem szabályoztuk a kooperációt – ami annyiból indokolt volt, hogy a verseny alapvetően versengésre buzdít, de amint látható azért sokan osztottak meg egymással információkat.
Ha volt játékostársa, akivel tartotta a kapcsolatot, akkor milyen mélységben dolgoztak össze?
- stratégiát elmondtam
- Utolsó beadás előtt egy versenyző aki csak a 3 pontra ment odaadta a befoglaló ágensei kódját, hogy azzal is tesztelhessem az én ágenseimet.
- Egyébiránt a programot teljesen egyedül írtam, hacsak nem számítanak 2 építész haverommal folyatatott stratégia megbeszélések a játékról :)"
- A különdíjas stratégiáját megismerhettem, természetesen szigorúan a különdíj kihirdetése után. Előtte közösen ötleteltünk még a verseny meghirdetése után.
- Eredményeket főleg, stratégiát részlegesen.
- Ködösen fogalmazott ötleteket adtunk csak át, de konkrét stratégiát nem, kódot meg végképp. Viszont segítettünk egymásnak megérteni az AgentSpeak és az egész rendszer szépségeit
Az eredményhirdetés
Örülök, hogy elégedettek voltak az eredményhirdetéssel. Mindenképpen fontosnak érzem, hogy ezt az egyetlen alkalmat, amikor személyesen összegyűltünk érdekes és hasznos eseménynek éljék meg.
Egyéb megjegyzések az eredményhirdetés kapcsán
- Hostess lányok :)
- Jó volt látni a webszerver működését.
- Nem voltam :)
Záró kérdések
Hogyan lehetene Ön szerint több hallgatót bevonni a játékba?
- Kötelezővé tenni. :)
- jobb ütemezés, több pont
- "kötelezővé tenni:D viccet félretéve, a jutalmak elő ránézére nagyon kevésnek tűnnek.
- lehessen pl olyat ha valaki megveri a ""simple""-t garatált +3 pont és ha valaki megveri a ""medium""-ot garantált +5 pont ""advanced"" meg +7"
- Szerintem sokat segít, ha az előadáson úgy említik a versenyt, hogy cél, hogy minél többen induljanak, ezért mondjuk kiválthatná a 2. házit (kicsit talán érdekesebb is, ráadásul tudnánk, hogy mire kaptunk pontot, nem csak el kellene fogadni, hogy ez nem érte el a maximumot).
- "Szerintem sok embert elriasztott a rendszer kicsit körülményes telepítése, utána meg a vadidegen nyelv.
- Egy telepítő + java, c++ kombó nagyban megdobná a versenyzők számát.
- A tuti siker az lenne ha a feladat is olyasmi lenne amit mindeki ismer, mégis komplex probléma. Szvsz vmi nintendó 64-es játékban versenyeztetném a hallgatókat."
- Ha könnyebb lenne az MI tárgyhoz valami érdemleges könnyítést szerezni, értem ezalatt a helyezésért cserébe házi/zh/vizsga mentességet, de nem olyan kevés embernek, mint volt, mivel az átlagos hallgató így csak plusz munkát lát benne, és nem érzi képesnek magát bekerülni abba az 1-2 emberbe, akik tényleg kapnak élvezhető mértékű könnyítést.
- Elhitetni velük, hogy máshogy túl jó jegyet nehéz szerezni vizsgán :) Most már egy kiforrottabb rendszer várja majd a vállalkozókat, de néhány ötletes idei ágensből készített kis videó biztos felkelti sokak érdeklődését.
- A "biztos" nyeremény lehetne több, mint 3 pont, illetve lehetne 1 gyorstalpaló (mondjuk előadáson) ahol az AgentSpeak alapjait lehetne megbeszélni. Eléggé elborzad az ember a szintaktika láttán...
Nem meglepő eredmény, de pont ezért jók a kilátásaink, hogy a feladatot a félév elejére ütemezzük át különösebb ellenállás nélkül.
Ebben a kérdésben rosszabb véleményre számítottam, bár nyilván azok a hallgatók ásták bele mélyebben magukat a feladatba, akik érdeklődnek az ilyen problémák iránt, tehát hasznosnak érzik, ha gyakorlati tapasztalatokat szerezhetnek a megoldás során.
További megjegyzések tetszőleges témában
- 3 pontot ért, hogy a simplet megverjük, de a helpben már volt egy olyan minta, ami azt megverte :) szóval legyen kicsit nehezebb a belépés
- Egész egyetemen hiányzott a versenyszellem, köszönöm a lehetőséget, ez volt az eddigi legjobb félévem, amihez ez a verseny is hozzájárult, folytatni kell! :)
- "Köszönöm a lehetőséget, és hogy kipróbálhattam magam, a bosszúságok ellenére, sok kellemes órát töltöttem el a a játékkal.
- Az F5 eléggé megsínylette a futtatásokat, egy barátommal úgy vártuk a friss eredményeket mintha az életünk függne tőle :)
- Nagyon jó lenne ha nem csak a tantárgy hallgatói vehetnének rész a versenyen hanem bárki. Természetesen vizsga ötöst csak a tárgy hallgatói kaphatnának. Egyrészt szeretném jövőre is próbára tenni magam, másrészt idővel akár egy rangos egyetemi verseny is kialakulhat. Tudtommal magyarországon elég kevés a kimondottan ai programozói verseny van. (az amoba és sakk versenyeket nem sorolnám ide).
- Még egyszer köszönöm a lehetőséget! :)
- Alapvetően a versennyel csak az ideje a gond szerintem. A ZH időszakkal kezdődött és a vizsgaidőszak javánál zárult. Így csak olyanoknak van lehetősége érdemben foglalkozni a dologgal, akiknek amúgy is lenne egy laza félévük, vagy annyira jók, hogy meg se kottyan nekik ez a plusz feladat. Nagy hévvel kezdtem anno bele, de 41 kredit mellett, főleg, hogy vizsgára reálisan csak pár pontot tudtam volna szerezni, végül 1 hét után feladtam.