Melyik rendezés? Kódolvasási készségek fejlesztése

Hasonló dokumentumok
Programozási segédlet

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Bevezetés a programozásba

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.

Hatékonyság 1. előadás

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Bevezetés a programozásba I.

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Algoritmus vizualizáció a tanítási gyakorlatban. Törley Gábor

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

A 2014.évi országos kompetenciamérés értékelése Kecskeméti Bolyai János Gimnázium

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Java programozási nyelv

Mechanika (alap szint) Fizika BSc és Fizikatanár MA

Az informatika kulcsfogalmai

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Algoritmusokfelülnézetből. 1. ELŐADÁS Sapientia-EMTE

Felvételi tematika INFORMATIKA

A C# programozási nyelv alapjai

PROGRAMOZÁSI TÉTELEK

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k.

1. Egészségügy szakmacsoport Egészségügyi alapismeretek

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

PPKE ITK, 2014/2015 tanév. I. félév. Tantárgyi adatok és követelmények

Webprogramozás szakkör

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Csapat: Feladat: Ismertetni:

Programozási alapismeretek 11. előadás

A pillangóval jelölt feladatok mindenki számára könnyen megoldhatók. a mókussal jelölt feladatok kicsit nehezebbek, több figyelmet igényelnek.

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Tartalom. Programozási alapismeretek. 11. előadás

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Módszertani megjegyzés: A kikötés az osztás műveletéhez kötődik. A jobb megértés miatt célszerű egy-két példát mu-

Közismereti informatika I. 4. előadás

Rendezések. Összehasonlító rendezések

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Programozás alapjai. 7. előadás

Gyakorló feladatok az 1. nagy zárthelyire

BASH script programozás II. Vezérlési szerkezetek

Teljesítményértékelések eredményeinek rögzítése a Neptun Egységes Tanulmányi Rendszerben

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

A foglalkozás során a tanulók részt vesznek a program megtervezésében, megvalósításában, tesztelésében és továbbfejlesztésében. SZERZŐ: Vindics Dóra

3. ZH-ban a minimum pontszám 15

Matematika 11. osztály

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Alapvető tudnivalók a tanév elején

Bevezetés a programozásba I.

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Számítástechnika I. 0. Ea: Infó Mátrix (2016)

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Algoritmuselmélet 2. előadás

1. Jelölje meg az összes igaz állítást a következők közül!

2018, Funkcionális programozás

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Számonkérési formák a BME-n a Deklaratív programozás című tárgyban

PPKE ITK, 2015/2016tanév. I.félév. Tantárgyi adatok és követelmények

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Így változtass az életeden. Lendvai Norbert. Publio kiadó. Minden jog fenntartva!

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Adatbázis rendszerek Gy: Algoritmusok C-ben

nyelv: 2) Kérdezz meg 3 embert a környezetedben arról, milyen nyelven tud beszélni, írni, olvasni. Írd le a válaszaikat!

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Digitális technika VIMIAA02

Algoritmuselmélet 1. előadás

Hallgatói elégedettségi felmérés

Logika és informatikai alkalmazásai

43. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY MEGYEI FORDULÓ HATODIK OSZTÁLY JAVÍTÁSI ÚTMUTATÓ

Siket diákok egyéni különbségeinek vizsgálata az idegennyelv-tanulásban: Egy kérdőíves kutatás néhány eredménye

Logika és informatikai alkalmazásai

Haladó rendezések. PPT 2007/2008 tavasz.

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

Struktúra nélküli adatszerkezetek

Oktatás Hallgatói Véleményezése

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

A 2015/2016 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Web-programozó Web-programozó

7. 1. A formatív értékelés és lehetséges módjai (szóbeli, feladatlapos, számítógépes) az oktatásban. - valamilyen jelenségről, ill.

Programozási tételek általánosítása 2. Szlávi Péter 2015

Hálózati folyamok. A használt fogalmak definiálása

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai. 5. előadás

Utolsó módosítás:

Legkönnyebb és legnehezebb Rendezési algoritmusok

Célnyelvi mérés a 6., 8. és a 10. évfolyamon Tartalmi keret

Átírás:

Melyik rendezés? Kódolvasási készségek fejlesztése Dr. Czirkos Zoltán, BME VIK EET czirkos@eet.bme.hu 1. A feladatkiírás double tomb[10] = { 9, 5, 8, 2, 7, 5, 3, 8, 2, 1 ; for (int x = 0; x < 9; x = 1) { for (int y = x1; y < 10; y = 1) { if (tomb[x] > tomb[y]) { double tmp = tomb[x]; tomb[x] = tomb[y]; tomb[y] = tmp; Helyes? Gyors? Átgondolt? Átírnád? Ha tudod: mi a neve? Ezt a feladatot adtam ki a csoportomnak ez elején nem gondoltam, hogy ennek olyan hosszú története lesz, hogy végül előadás születik a tapasztalatokból. Először a körülményekről fogok beszélni: hogy néz ki nálunk az oktatás, hogyan alakult ki a feladat története. Utána pedig a feladat tapasztalatainak elemzéséről. Végül pedig fejlesztési lehetőségekről. A történet és a tapasztalatok 3. Az első válaszok Milyen rendezés? Válaszok Egyszerű cserés 23 Nem tudom 6 Közvetlen kiválasztással 20 Buborék 9 Kártyázós gyakorlat, algoritmusok alapfogalmai Egyszerű cserés rendezés nekem nem tetszik Csoportank szóló feladat évfolyamszorgalmi A feladat ötlete a második héten tartott kártyázós gyakorlatról született. Itt a hallgatók saját kártyapaklin végzett műveletekkel (minimumkeresés, rendezés) gyakorolják az algoritmikus gondolkodás. Nem célunk a második héten az algoritmusok elemzése; a cél az, hogy ismert módszereket meg tudjanak fogalmazni algoritmusként; változókkal, értékadással dolgozzanak, műveleti sorrendekkel, elágazásokkal és ciklusokkal ismerkedjenek. Gyakran hoznak magukkal rendezőalgoritmusokat. Sokszor az egyszerű cserés rendezés is előkerül, pedig hatékonyságról és átgondoltságról ennek kapcsán nem igazán beszélhetünk. Arra voltam kíváncsi, hogy mennyien tanulták ezt, mennyire ismerik föl a hibáit, ezért adtam ki

elemzésre, jellemzésre az algoritmust, a megnevezése nélkül. Mivel sok rossz megoldás volt, úgy döntöttem, kiadom a feladatot az egész évfolyamnak (~ 700 fő). Kb. 60 megoldást kaptam végül. Milyen megoldásokat? Tényleg egyszerű cserés rendezésről volt szó. És a nem tudom is jó válasz a feladat szövege úgy szólt, hogy ha tudod, mi ez, mondd meg a nevét. Ők nagyon helyesen felismerték azt, hogy még nem találkoztak ezzel a megoldással, de megértették, és elfogadták működőnek. A közvetlen kiválasztás és a buborék viszont rossz válasz. Kérdés, hogy miért születtek ezek a válaszok. A kérdőívem arról szólt, hogy ezt megtudjam. Nem tudták az algoritmus nevét? Hasonlított a működése? Nem nézték meg rendesen a kódót? Nem értették meg az algoritmus működését? A feladatban egyébként bárhány megoldás leadható volt. Volt olyan, aki harmadjára küldött be hibátlan szöveget. A kérdőívekben, statisztikákban most mindig csak az elsőre beküldött megoldásokról fogok beszélni. 4. A másik két rendezés for (int x = 0; x < db-1; x) { int minindex = x; for (int y = x1; y < db; y) if (t[y] < t[minindex]) minindex = y;! Közvetlen kiválasztással double temp = t[minindex]; t[minindex] = t[x]; t[x] = temp; A buborékrendezést arról ismerjük meg, hogy mindig egymás melletti elemeket hasonlít össze és cserél (ez az egyszerű cserés algoritmusra nem igaz). Meg arról is, hogy a két ciklusa ellentétes irányba halad. A közvetlen kiválasztásos rendezés ismertetőjegye az, hogy a belső ciklus cseréket nem végez, csak minimumot keres; a csere már a belső ciklus után történik, az addigra ismert minimum kerül a helyére. for (int x = db-1; x > 0; --x) { for (int y = 0; y < x; y) { if (tomb[y1] < tomb[y]) { double temp = tomb[y]; tomb[y] = tomb[y1]; tomb[y1] = temp;!! Buborék 5. A vezérlési szerkezet felépítése? for if tömb[ ] < tömb[ ] tömb[ ] tömb[ ]

if tömb[ ] < tömb[ ] tömb[ ] tömb[ ] if tömb[ ] < tömb[ ] tömb[ ] tömb[ ] Lehet, hogy a vezérlési szerkezetek alakja zavarta meg őket? Nézzük meg, mit látunk ebből, ha mindent kitakarunk, hogy csak a vezérlési szerkezeteket nézzük vagyis hát megmaradt még az összehasonlítás, a cserénél pedig most megengedtem magam, hogy egy nyíllal jelöljem azt. Mert tényleg ez történik; ahogy olvassuk a kódot, ha megértünk belőle egy blokkot, akkor azt onnantól egy blokként kezeli az agyunk; a profi programozó sok száz sor kódot tud ide-oda pakolgatni, közben nem látva a belsejét, nem gondolva arra de mégis érti. Ez így lehetséges. A kapott szerkezeteket vizsgálva egyből észrevehetjük, hogy a buborékrendezés és az egyszerű cserés rendezés vezérlési szerkezete teljesen megegyezik. Pedig működésükben nem hasonlítanak egymásra! 6. Esetleg fogalmi problémák? Mi a belső ciklus feladata? Minimumkeresés? Kiválasztás? for (int y = x1; y < 10; y = 1) if (tömb[x] > tömb[y]) tömb[x] tömb[y] Átgondolt, ha (kb.) csak az utolsó csere eredményére épít? Az egyszerű cserés belső ciklusa előre rakja a legkisebb elemet, ez tény. De ezt mégsem nevezhetjük kiválasztásnak. A kiválasztás lényege, hogy a keresés után egyetlen egy csere történik, ezt mutatja a neve is. Ez itt nem teljesül. Többen azt is írták, hogy ez egy átgondolt algoritmus. Ez nem igaz, mert a külső ciklus a belső ciklus futási eredményéből, a sok cseréből csak annyit használ fel, hogy a legkisebb elem előre került. A többi elem bár valószínű meg lett mozgatva, azok sorrendje nem lényeges tehát a többi csere nagyrészt fölösleges volt, elég lett volna a legkisebb elemet előre rakni. Vajon azért írták, hogy átgondolt algoritmus, mert a fejükben már a kiválasztásos rendezés élt? Vagy azért, mert tanult rendezésről van szó, akkor csak már nem átgondolatlan? 7. A kérdőív válaszai Miért volt rossz a megoldás?

Buborék Kiválasztás Alakja megzavart 2 - Ránézésre írtam csak 2 7 Rosszul értettem a működést 5 - Kiválasztás fogalma - 11 Egyből tudtam, milyen rendezés, nem rontottam el. Következetlen válasz Azt mondtam, kiválasztásos rendezés (ez rossz megoldás). 1 Azt mondtam, hogy nem tudom, vagy nem válaszoltam. 3 A válaszok többé-kevésbé igazolják az elvárást. Akik csak a vezérlési szerkezetet nézték, belecsúszhattak a vezérlési szerkezet problémájába. A kiválasztásos rendezés pedig nagyon máshogy néz ki, alakilag nem keverhető össze az egyszerű cseréssel. A működése annál inkább. Érkeztek érdekes válaszok is, nem ártott, hogy redundancia volt a kérdőívben. Néhány olyan választ is látunk, amik közvetlenül ellentmondanak egymásnak; pl. tudtam, milyen rendezés mellé a nem tudom válasz, illetve a tudtam, milyen rendezés mellé a rossz megoldást küldtem válasz. 8. Előzetes tanulmányok egyszerűt tanultam buborékot tanultam kiválasztásost tanultam igen nem igen nem igen nem egyszerű 16 7 20 3 15 5 nem tudtam 4 2 5 1 3 3 buborék 3 6 5 4 3 6 kiválasztás 6 14 17 3 17 6 Kíváncsi voltam, az előzetes tanulmányok hogyan befolyásolták az eredményt. Csak azokat a részeket emeltem ki, ahol egy bizonyos algoritmusra hivatkoztak a válaszban (sorok), és ezt összevetettem azzal, hogy tanulták-e azt az algoritmust (oszlopok). Az egyszerű cserésnél, a zöld rubrikáknál lényegében bármi megjelenhetne. Itt inkább azt mérjük, hányan ismerték föl ezt tanulva, és hányan néztek utána. A másik kettőnél, a pirosaknál viszont más a helyzet. Aki tanulta a buborékrendezést, tudnia kellene, hogy a feladat kódja nem buborékrendezés. A közvetlen kiválasztásos rendezésnél ugyanez a helyzet. Itt olyasmit látunk, mint az előző táblázatokban; félreértik a mutatott kódot, vagy nem értették meg teljesen a tanult algoritmus célját, működését. 9. Extrák egy nagyon hibás megoldás

1, A program helyes, mert lefut. 2, A lefutási ideje lehet n! is ezért nem gyors. (Ha pont fordított sorrendben vannak az elemek.) 3, Működik, de kicsit jobban átgondolva lehetne gyorsabb. 4, Ha módosíthatnák, akkor egy nagyon hasonló rendezés: for (x = 0; x < 9; x = 1) for (y = 0; y < 10; y = 1) if (tomb[y] < tomb[y1]) { int tmp = tomb[y]; tomb[y] = tomb[y1]; tomb[y1] = tmp; 5, Minimumkiválasztásos rendezés Kis ZH-i: 100%, 70%, 100%, 90%, 90%, nagy ZH-ja: > 100% Érdekességként egy nagyon rossz megoldás. Helyes, mert lefut nem is értem. Az üres program is lefut, de nem csinál semmit. n! lépésszám nem igaz. A javasolt rendezés valamiféle buborék-egyszerű hibrid, ami az előzőnél is átgondolatlanabb. Még az oszd meg és uralkodj sem teljesül benne, sőt y1 miatt túlindexel. Ennek ellenére, a hallgatónak igen jó eredményei vannak; a nagy ZH-n időszűkében is meg tudta oldani az extra feladatot, és szorgalmikat is rendszeresen küld be. Fejlesztési lehetőségek 11. Miért fontos ez? (...) when you program, you have to think about how someone will read your code, not just how a computer will interpret it. Kent Beck Indeed, I have often suggested that every comment represents a failure to make the code self explanatory. Robert C. Martin A kódot többször olvassák, mint ahányszor megírják! A programkód olyan, mint egy DVD: egyszer megírják, nagyon sokszor olvassák. A programozói munka is ilyen. A legtöbben egy meglévő programon dolgoznak az iparban, azt fejlesztik tovább. Amikor egy új feature-t kell a programba, az idő első és jelentős része azzal telik, hogy meg kell érteni a meglévő programot. Rá kell jönni, annak milyen kiegészítésével, átdolgozásával építhető be az új képesség.

Manapság emiatt már tudjuk, hogy az olvasható kód megírásába mekkora energiát kell fektetni. Azt is tudjuk, hogy emiatt nem szabad kézzel optimalizálni, emiatt jelentenek rosszat a kommentek. Tanítanunk kell ezért azt, hogy hogyan lehet a meglévő kódot gyorsan, helyesen megérteni, mit jelent a jó minőségű kód, mert azt kellene írni eleve. Számít az, hogy legyen szépérzék, igényesség! 12. Kitakarás = függvény! Segít megérteni? for (int x = 0; x < db-1; x) { int minindex = minkeres(tömb, x, db); csere(tömb[x], tömb[minindex]);! Közvetlen kiválasztással for (int x = db-1; x > 0; --x) { fésül(tömb, 0, x);! Buborék for (int x = 0; x < db-1; x) {???? Egyszerű cserés Visszatérve az előbbi kitakarásokra ennek neve is van, úgy hívjuk, hogy absztrakció, és a megvalósítása a függvény. Ahhoz, hogy szép kódot írjunk, a függvényeknek jól meghatározott szerepe legyen, amelynek egyértelmű, találó nevet is kell tudnunk adni. Hab a tortán, ha olyan részfeladatot tudunk kiemelni a kódból, amely függvényként megfogalmazva máshol is hasznos lehet. A kiválasztásos rendezésnél a kapott kód szinte egy költemény. Pontosan megfogalmazza a működést: megkeressük az adott tartományból a minimumot, és egy cserével előre rakjuk. A buboréknál már kicsit gondban vagyunk. Elnevezhetjük fésülésnek azt a műveletet, amely az egymás melletti elemeket hasonlítja és cseréli. De ez a művelet haszontalan. Ha nem törődünk vele, hogy ez egy stabil rendezés (ezen a szinten ezt még nem szoktuk tanítani), akkor érezzük a kiemelés után azt is, hogy fölösleges műveleteket végzett a függvény. Az egyszerű cserésnél szinte nincs mit kiemelni, nem tudjuk megfogni a részfeladatot még jobban azt érzékeljük, hogy nem is lehet érteni, tulajdonképp mi az ördögöt akar elérni a belső ciklus ha meg a legkisebb elem előre helyezését, márpedig azt, akkor azt miért csinálja ennyire körülményesen. Az absztrakciós eszközök tanítása, az absztrakciós készségek fejlesztése azért is fontos, mert a megértést is segíti. Mi rendszeresen adunk ehhez hasonló feladatot az utóbbi időben; egy ismert algoritmust, valamelyik rendezést kell részműveleteire bontani. Ezáltal jobban megértik az algoritmus egyes részek önálló célját, és az összképet. Azért is fontos ez, mert a programozás erről szól. Nem lehet megtanítani a világ összes feladatának megoldását, a programozó nem mintaillesztést végez. Ugyan kell néha tanult módszereket felhasználnia, ismert részfeladatokra ismert megoldást adni. De ezek kombinálása is a feladata, és sokszor új ötletekkel is elő kell álljon. Feltétlenül fejleszteni kell az ilyen irányú készségeket. Nálunk van egy nagy házi feladat, amelynek félidőben le kell adni a félkész megoldását. Nincs konkrét előírás, csak azt vizsgáljuk,

hogy mennyit haladt a hallgató a feladatával. A nagyon rövid, kezdetleges kódoknál gyakran látni, hogy csak meglévő blokkokat másolgattak össze (előadásanyagból stb.), de saját kód sem nagyon keletkezett, és ezekből a meglévőekből sem tudtak érdemben legózni. 13. Ellenőrző feladatok Feladattípus oktatási módszer 1. Egyszerű feladatocska 2. Dolgozatszerűen, papíron írt kód 3. Utána csere, padtársak kijavítják egymásnak 4. Kapnak pontozási útmutatót is Előnyök Gyakorolják a kód olvasását Máshogy működő megoldás megértése Vitatkoznak a kódról, megbeszélik, szakkifejezéseket használnak Fejlődik a kód minőségével kapcsolatos megítélésük Megismerik az értékrendet, pontozási elveket Felvezető feladat, frissítés (felzárkóztató előadás helyett) Az ellenőrző feladat a ZH-k ötlete alapján született; csak egy nagy ZH javítására múltkor 132 munkaórát szántunk, miközben 2.5 ilyen van. Arra még nem érett meg senki, hogy tényleg a hallgatók egymásnak javítsák a hivatalos dolgozatokat. (Hitelességi problémák, hozzá nem értés stb.) De az órákon lehet ilyen típusú feladat. 14. Ellenőrző feladatok vélemények Segítenek megtanulni más valaki programkódját megérteni. 133 Inkább azért jók, mert a megoldáskor én gyakorlom a kód írását. Az egymásnak javítás nem olyan érdekes számomra. Haszontalannak tartom, utána a közös feladatmegoldások sokkal többet érnek. Haszontalannak tartom az egész gyakot. 20 Néha annyira nem vagyok képben, hogy ki se tudom javítani más dolgozatát. :( Nem szoktuk megírni az ellenőrző feladatokat a gyakon. 5 A kérdőív tartalmazott egy kérdést arra vonatkozóan, mi a véleményük az ellenőrző feladatról. Ezt kiterjesztettem a teljes évfolyamra, nem csak az adott szorgalmit megoldókra. Az első két válasznak örülünk, láthatóan tetszik nekik. A haszontalannak tartom a gyakot már szomorúbb, de jogos válaszok is vannak ebben. Tehát meg tudom tanulni enélkül is jellegű válaszok, nem pedig nekem mindegy, úgysem tanulom meg itt se jellegűek. Ha valaki annyira nincs képben, hogy nem tudja megérteni sem a kódot, az már nagyon nagy baj. Hiába van túl egy előadáson, egy állítólagos jegyzetolvasáson és egy laboron, esetleg még gyakorlaton is, ami azzal a témával foglalkozott... Ha ezután sem megy, nem csak a kód megalkotása, de egy meglévő kód megértése sem, akkor azon tényleg nehéz segíteni már. 9 36 153

Nem szoktuk megírni ez pedig szimplán nem igaz, mert a csoportban mások megírták, és az eredményeket is látom. Volt, aki azért jelölte ezt, mert nem tetszett neki, hogy a gyakvez nem nyomtatja ki a feladatot, hanem kivetíti a projektorral. Volt, aki azért, mert a padtársa rábeszélte, hogy ő is jelölje ezt. Tehát ezek mind valótlanságot áállítanak a motiváció homályos. 15. Ellenőrző feladatok eredmények? Még tart a félév... Mennyivel javulnak az eredmények az ellenőrző feladat hatására? Többet gyakorolnak így? Jobban megértik a programokat? Újabb visszajelzésel épültek be a rendszerbe, és ezek motiválják a készülést az éles számonkérésekre? Még nem tudjuk pontosan, tart a félév egyelőre. A nagyházikat nem kellett még leadni, a nagy ZH-ból csak két hét múlva lesz a második... De meglátjuk majd, a tavalyi eredményekkel és a haladási naplónkkal mindig össze tudjuk vetni a félév végi pontszámokat.