Jött a levél Gajdos Sándor adatbázisok előadótól (SEO), hogy jó lenne, ha tavasszal is vezetnék labort.
Menjek, ne menjek? Marha jó lenne, de kicsit hardcore lesz 5x8 óra munka + fullos bme félév mellett, nem?
Jelöld be, hogy főbb mely kategóriákat akarod olvasni, vagy ha csak egyet: kattints a nevére.
Jött a levél Gajdos Sándor adatbázisok előadótól (SEO), hogy jó lenne, ha tavasszal is vezetnék labort.
Menjek, ne menjek? Marha jó lenne, de kicsit hardcore lesz 5x8 óra munka + fullos bme félév mellett, nem?
Ez kibiri kib* jó volt! Évről évre az szglab5 adatbázis labor lebonyolításában közreműködő labvezérek összeülnek egy-egy félévzáró pizzázásra, így történt ez most is. Ha minden igaz, kb. 28-an voltunk, 18-kor tali néhány ismerős arccal a SCH-nél, és 0-kor végeztünk (nem gondoltam hogy eddig el fog húzódni ). A hangulatra asszem jellemző, hogy a hely 23-ig volt nyitva, végül 23:30-kor szabályosan ki kellett dobniuk minket, legalábbis azt a keménymagot akik még ott maradtunk átdumálgatni többek között Gajdos Sándor (SEO*) javaslatait a hallgatók brutális terrorizálását apróbb TVSZ-módosításokat illetően
Gajdos Sándor keresőkifejezésre pillanatnyilag másodikak vagyunk guglin (40e-ből).
Jövő félévben ismét lesz szglab 5, immáron bsc-s (a szokásos témákkal: oracle, sql, xsql, jdbc, php), különválasztva a hálós résztől. Ha már elvégezted, mi a véleményed erről a tárgyról? Mi az amitől jobb lenne? Mi okozott nehézséget? Ha majd csak később fogod felvenni: mit várnál tőle, mire számítasz?
Küldtem jónéhány php-vel kapcsolatos fejtágító levelet az info2004-re még a múlt héten, amikor a php mérések folytak. Most veszem észre, hogy ezek egyike se ment be, mert valszeg a sympa spamnek hitte őket és kiváló konfigurálása révén erről nem értesített válaszlevélben.
Kár hogy az a párszáz ember akit akkor még érintett volna, csak utólag olvashatja, és tekintve hogy a feladat beadási határideje lejárt, így ezt valszeg nem teszik meg.
Arra jöttem rá egyébként az utóbbi néhány labor alkalmával, hogy a nagyon gyenge beugrót íróktól is érdemes inkább egy kiválóan teljesített házi feladatot megkövetelni, ahelyett hogy az illető bukná az adott témakört. Végső soron egy remek házi garancia arra, hogy a hallgató elmélyül a témában, legalábbis ha saját maga oldja meg.
Ma megtartottam az utolsó órát is, php volt, másodjára. A múltkori security riskekhez még hozzátettem egy-két példát. Annak pedig örültem, hogy egész sokan megjelentek, négy embernek ugyanis nem lett volna kötelező az utolsó óra, de közűlük hárman eljöttek (egyikőjük már bukta a tárgyat a hálós rész miatt és mégis eljött!). Ezt sikerként könyvelem.
Adottak a hét napjai (H, K, Sze, Cs, P, Szo, V), valamint egy adattábla, benne minden rekordhoz két nap. Számítsuk ki, hogy a két nap között hány-hány nap van. (Pl. hétfőtől péntekig, majd péntektől hétfőig eltelő napok száma.)
A nem javasolt
megoldás: veszünk egy külső switch case szerkezetet, amelynél az eseteket az első napok szerint alakítjuk. Hét eset. Majd ezek mindegyikében egy újabb switch case, aszerint, hogy a második nap mi. 72 = 49 eset.
switch ($elsonap) { case 'H': switch ($masodiknap) case 'K': echo '1 ill 6 nap van koztuk'; break; case 'Sze': echo '2 ill 5 nap van koztuk'; break; ... case 'K': switch ($masodiknap) case 'H': echo '6 ill 1 nap van koztuk'; break; case 'Sze': echo '1 ill 6 nap van koztuk'; break; ... ... }
Ez tényleg nem túl jó, egyrészt a 49 elágazás miatt, másrészt mert ha mondjuk angolul is ki akarjuk írni az eredményeket akkor már 2*49 elágazásunk lesz. Egy fokkal jobb megoldás, ha a napokhoz számokat társítunk, majd ezeket kivonogatjuk egymásból mod 7:
switch ($nap) { case 'H': $n = 1; case 'K': $n = 2; ... }
Csakhogy ezt a társítást lehet switch case nélkül is, és ezúttal egy végleges, immáron meglehetősen rövid és komplett megoldás:
function eltelt_napok($napchar1, $napchar2) { $napok = array('H' => 1, 'K' => 2, 'Sze' => 3, ...); $nap1 = $napok[$napchar1]; $nap2 = $napok[$napchar2]; $diff1 = mod(max($nap1, $nap2) - min($nap1, $nap2), 7); $diff2 = mod(min($nap1, $nap2) - max($nap1, $nap2), 7); return array($diff1, $diff2); }
A mod fv természetesen megvalósítandó vmi tetszőleges módon. Lehet hogy a php-ben van is rá vmi, én hirtelen nem találtam, úgyhogy:
function mod($n, $q) { $n %= $q; if ($n < 0) $n += $q; return $n; }
Update 17:13: sőt a mod fv is elhagyható, ld. tbela kommentje.
Ismét beüzemeltem a 2006-os php házimat, for fun Mert idegesített, hogy a régi házim nem elérhető jogosultsági problémák miatt, nomeg mert kitörölték alóla a tábláimat, és a hallgatói fiókomat. Egyébként visszanézve néhány dolgot változtatnék a kódon, de alapvetően elégedett vagyok vele.
Update 22:57: illetve ha már lúd akkor legyen kövér, itt van xsql-ből is
Nézzük hát a legutóbbi labort, az egyik csoportom php-laborját, amely nekik a tárgy utolsó órája. Félév elején 12-en indultak, egy rögtön eltávozott mert tavalyról hozta az adatlabor-jegyét, tehát 11-en folytatták a félévet. Egy embert út közben kénytelen voltam megvágni.
10-en szerezhettek tehát nálam valamilyen jegyet (már amennyiben az utolsó házit mindenki leadja, akinek kell). A labor szabályzata úgy szól, hogy az 5 mérésből a 4 legjobb eredménye számít. Volt 4 ember, aki egy alkalmat se bukott, kiváncsian vártam hogy vajon hányan jelennek meg az utolsó laboron átlagjavítási célzattal, vagy pusztán érdeklődésből.
Nos, 4-ből 1 tett így. Kicsit sajnálom a dolgot, mert ez volt az általam tartott legmagasabb színvonalú labor, hiszen php-ből sokmindent hozzá tudtam tenni az alapanyaghoz, életközeli szemléletes példákat, magyarázatokat, hackelhetőségi rizikófaktorokat stb. Hogy nem fog mindenki megjelenni php-n, az nyilvánvaló volt már év elején is, úgyhogy én nagyon sajnálom hogy idén a php került a legvégére, örültem volna ha többeknek mondhatok el hasznos és/vagy érdekes dolgokat ezzel kapcsolatban.
A JDBC könnyebb. Szóbelire sem volt szükség.
Az XSQL még mindig nehéz téma, nemcsak azoknak, akik nem mennek át a beugrón, de sajnos úgy látom órán, hogy azoknak is, akik átmennek. 6 elégtelen beugróból 3 embert mentő-szóbeliztettem (ahhoz is el kell érni egy bizonyos pontszámot), egyikőjük sikerrel járt, a másik kettő sajnos nem tudott válaszolni a kérdéseimre. Időt azt adtam eleget, be sem fejeztük az órát 45-ig. Ugyanakkor ez azt is jelenti, hogy túl sok időt adtam mindegyiküknek, feszesebbre kell venni a tempót, hiszen az időt azokra kell fordítanom, akik a beugrón megfeleltek és esetleg segítséget várnak tőlem valamelyik feladatukhoz.
Egyébként attól függetlenül hogy egy beugrón önmagában nem múlik semmi (hiszen 5 alkalomból 4-et kell teljesíteni), nem jó érzés elégteleneket osztani, de ha egyszer valaki a minimális ponthatár felét (sem) éri el, vagy szóban sem tudja magát kimenteni (ne adj isten azt mondja szóbeli közben, hogy nem igazán akar foglalkozni a házival), akkor nem tudok mit tenni: nincs eredmény, ami alapján átengedhetném.
Ugyanakkor kifejezetten rossz kedvem van a bukási ráta miatt, illetve elsősorban azon két ember miatt, akik számára itt véget ért a tárgy.
Az XSQL nehéz téma. Nagy anyag, és összefügg. Aki a kis komponenseket sem érti/ismeri, az nem fog tudni átlátni egy komplett tervezési folyamatot, nem fogja tudni kombinálni az XSQL, SQL, XSLT, XPath, XML, HTML ismereteket. Oracle-ből nem igaz, hogy aki nem tudja valamelyik kiskérdésre a választ, az nem fog tudni kattintgatni egy felületen, és aki SQL-ből nem tudja mi az a decode, attól még 30-ból 25 lekérdezést vígan megír. XSQL-nél a helyzet gyökeresen más, ezért jogos (lenne?) kemény beugrót íratni. Abban a laborban, amelyikben én mértem anno, 15-ből 12 ember elhasalt a beugrón. Nálam ma ennél egyszerűbb volt a helyzet, egyrészt mert már két hete mennek az XSQL-mérések szóval sejthették milyen beugrókra lehet számítani, másrészt 12-ből 4-en így sem feleltek meg, aminek egyébként értem az okát (ld. a tavalyi írásomban). A bentmaradóknál is látszott, hogy kapásból nem teljesen tiszta, hogy most akkor mi is van, miként működnek együtt ezek a technológiák, de szerencsére ezt néhány mondatban nagyon egyszerű felvázolni azoknak, akik külön-külön tudják hogy nagyjából mi mit csinál.
A mérések tehát nehezednek, ráadásul egyéb tárgyakból is kezdenek befigyelgetni a zh-k, ez meglátszik az alábbi grafikonon is, ami a mérésenkénti beugróeredmények alakulását szemlélteti.
A színek az adott laboron elért eredménynek felelnek meg (ötös, négyes, stb.), a sávok vastagsága pedig annak, hogy hányan érték el az adott eredményt. A vízszintes tengely az időtengely, oracle az első, sql a második, xsql a harmadik labor, és még kettő hátra van (jdbc, php).
Szerintem érdekes lehetne az egész évfolyamra vonatkozóan is készíteni egy ilyen ábrát.
Ismét egy kurvajó labor volt (SQL). Na nem azért mert a hallgatók jórésze fogta magát és hazament a beugró kijavítása után, hanem azért mert jó volt és kész. Én annak éreztem. Úgy éreztem, megadtam sok kérdésre a választ (az ottmaradóknak), hozzásegítettem őket a házi feladat gyorsabb megoldásához (de nem úgy hogy megmondtam a megoldásokat), és megoldottam egy-két rejtélyes problémát. Akik ottmaradtak, azok némi bónuszopcióval gazdagodtak a többletismeretek mellett. Én is végeztem valaha ezt a tárgyat, tudom jól hogy mennyire idegesítő tud lenni ha valami apróságon töri a fejét fél óráig otthon az ember, érdemes hát élni azzal a lehetőséggel, hogy a laborvezető a jószándék [és amúgy semmi más] által vezérelve elmondjon néhány olyan dolgot, amivel spórolhat neked n*fél órát. Persze nem kötelező, csak hát miért szopatná magát az ember.
A feladat: Válasszuk ki három attribútum közül a legkisebbet.
Úgy tervezem, hogy amennyiben érkeznek megfelelő poénfaktorú anyagok, akkor közzéteszek néhány mókás hallgatói elképzelést bizonyos feladatok megoldásairól, kontrasztba állítva a hivatalos megoldással.
A sorozat első bejegyzése már el is készült egy ideje, azonban még nem publikus, és nem is tudom hogy legyen-e. Előtte meghallgatnék néhány véleményt. Vajon etikátlan lenne ilyen bejegyzések írása? Semelyik hallgatót nem ítélem el a megoldásaiért, az hogy valaki nem jött rá a mi megoldásunkra, legtöbbször annyit jelent hogy átsiklott a könyvben az egyszerű megoldás nyitján. Ettől senkit sem tartok kevesebbnek, előfordul mindannyiunkkal, ugyanakkor vicces megoldásokat eredményez, ami szerintem sokak arcára csalna egy-egy ártatlan mosolyt
Mivel ugyanaz a témakör volt ezen, mint a múlt hetin (Oracle), így különösebb plusz készülést nem igényelt, azért gyorsan átfutottam a dolgokat.
A héten megtapasztaltam, hallgatói cserék és egyéb óhajsóhajok adminisztrációja eszetlen időbe kerül, különösképpen ha valaki az utolsó pillanatban jelzi erre az igényét, illetve ha nem zsírozza le hogy ki az akivel cserélni szándékozik. (Ez nem az én feladatom.) Vannak meghökkentő esetek, lehet hogy egyszer majd írok ezekből egy bestofot. (Pozitív példa is van csere kulturált intézésére egyébként.)
A múlt héten ugye azt írtam hogy paráztam a labortól, most csak az utolsó órákban voltam egy picit ideges, magát az órát szerintem eleve már teljes magabiztossággal kezdtem és természetesen úgy is vezettem le, utóbbival múlt héten sem volt probléma. A színvonal valszeg jobb volt talán, hiszen múltkor már megtapasztaltam hogy mit hogy érdemes, merre vannak a buktatók.
A beugrón ezúttal sem sikerült megvágnom senkit, pedig egy szegény srácot beparáztattam. Szóltam neki hogy mindjárt jövök, 1 perc alatt átgondoltam hogy milyen kérdéseket fogok feltenni neki, letettem az asztalára a lapot, és közöltem hogy hát ez a helyzet, mire fura arckifejezés volt a válasz, majd jót röhögtünk a dolgon, mert a lapon véletlen nem vettem észre egy pipámat, így a srác fellélegezhetett Ja illetve sajnos volt egy arc aki azt hitte hogy az óra 13:15-kor kezdődik, pedig 12:15-kor kezdődött, úgyhogy 13:07 körül lazán fülhallgatóval a fülében betámolygott és jóideig nem nagyon értette hogy mi a hézag. A beugróval sajnos nem várhatok, úgyhogy ígyjárás esete forgott fenn.
A múltkori labor egy marhajó interaktív káosz volt, ma viszont hiába mondtam hogy kérdezzenek bátran, teljesen visszafogták magukat, még üresjáratok is voltak, de amikor nem, akkor is megvárták hogy odamenjek hozzájuk és páran olyan halkan sutyorogták el a kérdésüket hogy a felét nem is hallottam. Hiába kértem hogy kicsit nagyobb volumét plz. Ez hülye helyzeteket szül. Na mindegy. Azt viszont láttam hogy a munkát rendesen végezték, születtek már órán ER diagrammok stb, aminek örültem.
Lehet egyébként hogy a visszafogottság oka az volt hogy ebben a laborban nem volt felbújtóember, meg nem volt mi hangulatot szüljön
(nevezetesen múltkor nem működött az sql log, ugye).
Szóval milyen volt a mai? Hát, a mai is egy labor volt, csak a szokásos…
Nem tudjátok elképzelni, milyen jó érzés egy tökéletes, részletes, igényesen dokumentált házi feladattal találkozni.
És hogy mennyire borsot tör az ember orra alá amikor azt látja a logfájlból, hogy az illető 20 perccel a határidő előtt (!) kezdett neki az amúgy fél hétvégére méretezett munkának, ofkorsz késve adja be, és talán nem is teljesen saját erőből csinálta meg egy részét (mert az a rész könnyen másolható és feltűnően igényes volt a többihez képest), dehát erre nincs bizonyíték, és eléri a kettes alsó ponthatárát, és kénytelen vagyok átereszteni.
A kiemelkedő diákokat megpróbálom díjazni a saját korlátos lehetőségeimen belül - megérdemlik hogy kapjanak pár jó szót a beadott feladataikról, hiszen ez marha jól esik.
Ugyanígy egyébként megelégedettséget okoz ha a csoportomnak jók az eredményei, és rossz érzés, ha rosszak, hiszen ez utóbbinál felmerülhet hogy valamit esetleg nem magyaráztam el jól, míg előbbinél személyes sikernek tekintem a dolgot (Egyes feladatoknál bizony sok szerepe lehet benne a laborvezetőnek.) Ez azonban nem befolyásolja az osztályzási folyamatot, vagy az elvárásokat.
Arra jöttem rá továbbá, hogy a hallgató bármiféle becsmérlését minden körülmények közt kerülni kell (eképp is cselekedtem), hiszen a javító/oktató nem tudhatja hogy vajon mi az oka a gyenge teljesítménynek - lehet hogy nagyon is védhető, ill. az adott körülmények közt nagy teljesítménynek számít még az a kevéske is, azonban a diák védekezés helyett valószínűleg általában inkább bölcsen hallgatva elkerüli a további konfrontációt, így a tanári tévedésnek esélye sincs kiderülni.
Ma volt az első szglab5 amit én tartottam.
Most nem érek rá többet írni de KIBIRI KIB[censored] JÓ VOLT!!
Durván mélyvízbe kerültem egyből mert volt egy gixer ami miatt azt hittem meg fognak lincselni (nem lehetett logolni a feladatokat, pedig az kötelező része a mérésnek), meg volt egy srác aki az elején már az elfogyott tankönyvek meg más miatt eleve meg akart lincselni de végülis minden oké volt, szinte fütyörészve jöttem haza, és sztem annak az arcnak is megtetszett maga a mérés. Pedig Zé szavajárásával élve azt hittem, meg fognak enni a hallgatók (A felmerült gixerek pedig nem az én hibámból voltak.)
Pl. a srác aki lincselni akart, egy idő után tök készségesnek bizonyult, sőt, segített pl. a szomszédainak. Meg tök interaktív volt az egész labor. Azt hittem lenyomom a kötelező rizsát és akkor majd egyrészt hazamennek mert nem érdekli őket, másrészt netezni fognak, meg ilyenek. És tökre nem ez volt. Orrba-szájba kérdezgettek, egyszerűen tömegkiszolgálási helyzetté alakult a labor, mert párhuzamosan jöttek a requestek. Szerintem a lincselő srácnak talán meg is tetszett a dolog, legalábbis kívülről úgy tűnt.
Örülök hogy eléggé közvetlen tudott lenni.
Aztán a beugrók. Informálódtam pár labvez kollégától hogy mégis milyen az óralátogatási meg bukási arány, és hát azt mondták hogy szórják az embereket rendesen. Én olyan beugrót készítettem ami bár relatíve könnyű volt, csupa olyan dologra kérdezett rá, ami szerintem hasznosítható. Most ezt nem akarom a nyilvánosság előtt túl pontosan definiálni, és példákat nyilván nem mondhatok, mert a jövő héten is lesz labor. Ott valszeg kicsit más jellegű beugró lesz. (Több labvez kollégával is megbeszéltem a beugrókérdéseimet és az elveimet, szerintük jól csináltam. Szerintem is.)
Szóval a beugrók. Szóltam nekik többször is, hogy a következő beugró nehezebb lesz, mert ez most nem volt durva megmérettetés, nem az apróbetűs lábjegyzet zárójeles dőltbetűs fejjellefelé olvasandó részéből kérdeztem, pedig simán megtehettem volna. Vannak biztos akik ilyeneket szeretnek kérdezni, nekem más elveim vannak. Egyáltalán nem az hogy mindenkit átengedjek (az oktatás színvonalát fenn kell tartani), hanem az hogy hasznosítható dolgokat kérdezzek. Volt egy srác akinek nem lett meg a 3 pontja. 2,5 pontja lett, amire válaszolt azt elég jól leírta, de volt két üresen hagyott kérdése. Azt hittem kénytelen leszek megvágni, de tök kellemetlen volt, mert úgy nézett volna ki mintha egy embert csak úgy demonstrációs céllal vágnék meg, hogy nesztek ilyet is tudok. Ilyenkor lehet szóbeliztetni. Feltettem neki egy olyan kérdést, amiről úgy ítéltem meg, hogy ha ezt tudja, akkor előttem igazolta hogy készült. És legnagyobb meglepetésemre tudta! Mindenki aki ott volt a laboron, úgy gondolom, megérdemelten ment át a beugrón. Nem a szivatásról szólt, és nem is arról, hogy átengedek mindenkit. Azért mentek át mert tudtak válaszolni általam fontosnak ítélt kérdésekre.
Visszakanyarodva kicsit az elejéhez. Én eredetileg nem a labortartás miatt vállaltam ezt (a labort) be hanem referencia gyanánt. A labortartástól kifejezetten féltem is, tökre ráparáztam az egészre, gyomorgörcs, önbizalmi problémák és hasonlók. Amikor decemberben Gajdos Sándor megkeresett, először nem is mertem elvállalni, mert úgy éreztem hogy ez nem az én műfajom (de egyébként én általában mindennel így vagyok). Aztán meg lettem győzve És most már marhára örülök neki! És annak is örülök hogy nem egy, hanem két labort tartok, pedig végig abban a hitben voltam (talán félreértettem), hogy egy csoportnak fogok kéthetente labort tartani, egyszerűen fel se merült bennem hogy két csoportom lesz.
Na. Szóval királyság van.
Kiváncsi vagyok a másik csoportomra. (Ha közűlük olvas valaki: vegye komolyan a felkészülést a beugróra.)
Labvezér leszek! Gajdos Sándor (Adatbázisok c. tárgy előadója) keresett fel még decemberben, és úgy döntöttem hogy elvállalom. Számítógép-labor 5-öt (alias 6-ot) fogok tartani következő félévben (tavasszal), hatodik féléveseknek.
Természetesen csak az adatbázis-részt (van a tárgynak másik fele is), ami annyit tesz, hogy kéthetente levezénylek egy-egy, összesen öt darab mérést, és mindegyik után kapok valamilyen típusú feladatokat javításra.
Vélhetően péntek 12-14-kor.
Az szglab5 adatbázisos része által érintett témakörök: Oracle, SQL, PHP, XSQL (XSLT, XML), JDBC.