Feladatok fejlesztésének javaslása

Mit érdemes figyelembe venni, mielőtt egy feladat fejlesztését javasolod?


Szóval találtál valamit egy feladaton, amit szívesen fejlesztenél. Először is köszönjük, hogy törődsz vele, és hogy időt szakítottál rá, hogy elmondd nekünk! 💙

Amikor egy feladatot módosítasz, néhány dolgot érdemes figyelembe venni, és ezek kicsit másképp alakulnak a tanulófeladatoknál (amelyek a tanterv témáit tanítják) és a gyakorlófeladatoknál (a többinél). Ezekre a különbségekre alább térünk ki.

Előbb azonban nézzünk meg néhány általános szempontot.

Egy feladat módosítása következményekkel jár

Egy feladat módosításának jó néhány következménye van:

  1. Az új tesztek tönkretehetik a meglévő megoldásokat. Ez azt eredményezi, hogy több ezer ember munkája elavul, ami frusztráló a számukra, ha a plusz tesztek nem mutatnak rá egyetlen meglévő hibára sem.
  2. Újra kell tesztelnünk mindenki munkáját, aminek környezeti és anyagi költsége is van.
  3. Egy vagy több karbantartónak időt kell szánnia a módosítások áttekintésére, ami azt jelenti, hogy ez idő alatt nem tud más fejlesztéseket végezni a kurzuson.

Mindezek miatt óvatosan járunk el, és csak akkor módosítunk egy feladatot, ha abból egyértelműen azonosítható jelentős előny származik.

Ne engedjünk az entrópiának

A feladatok tesztkészleteinek nem az a célja, hogy minden lehetséges esetet átfogóan lefedjen. A feladataink nem éles rendszerek, és nem is az a céljuk, hogy valós felhasználási eseteket utánozzanak. Azért készültek, hogy játékfeladatokként segítsenek abban, hogy folyékonyan használj egy programozási nyelvet. Ezért szándékosan nem törekszünk arra, hogy minden szélsőséges esetet lefedjünk, hogy rengeteg bemenet-ellenőrzést erőltessünk, vagy más hasonló, valósághű szempontokat érvényesítsünk. Ha a javasolt fejlesztésed egy szélsőséges eset elkapására vagy a bemenet ellenőrzésére irányul, valószínűleg nem fogadjuk el, hacsak nem jelent lényeges különbséget a feladat szempontjából.

Tanulófeladatok

A tanulófeladatoknak egyetlen céljuk van: fogalmakat tanítani. Egy feladat minden módosítását elsősorban aszerint bíráljuk el, hogy javítja-e a fogalmak tanítását.

A tanulófeladatok tesztjei (különösen) nem arra készültek, hogy kimerítőek legyenek. Az is gyakran előfordul, hogy kicsit mesterkéltek vagy nehezen érthetők, hogy ne kelljen olyan fogalmakat használniuk, amelyeket a tanuló még nem tanult meg, illetve hogy ne terheljék túl a tanulót.

Ha a javasolt módosításod esetleg elterelné a figyelmet a fogalom megtanulásáról, valószínűleg elutasítjuk. Ha a módosítás megkönnyíti a tanulást, komolyan megfontoljuk. Ha valahol a kettő között van, lehet, hogy elfogadjuk, de valószínűleg nem élvez majd elsőbbséget.

Gyakorlófeladatok

A gyakorlófeladatokkal kapcsolatban a legfontosabb, amit meg kell értened, hogy szinte mindegyikük egy központi tárolóban található (amely a „Problem Specifications” nevet viseli). Ezért egy feladat módosítása minden kurzusra tovagyűrűző hatással van. Ez azt jelenti, hogy egy jó módosítás különösen nagy hatású, hiszen minden nyelvnek segít. De ez megnöveli a módosítás terhét is, hiszen ahhoz, hogy elfogadják, több, a kurzusokon átnyúló karbantartónak egyet kell értenie vele, majd az egyes nyelvek karbantartóinak le kell hozniuk a változásokat a saját kurzusukba.

A feladatok módosítása azt is jelentheti, hogy a tantervekben hozzájuk kapcsolt fogalmak homályosabbá válnak, vagy hogy a megoldásukhoz további funkciókra lesz szükség, ami megváltoztatja a feloldásuk helyét a tantervben. Ezt is figyelembe kell venni az összes kurzusra kiterjedően, mielőtt egy módosítást elfogadunk.

Bár vannak mechanizmusaink arra, hogy csak bizonyos kurzusok kapjanak meg adott teszteseteket, ezt inkább nem szorgalmazzuk, mert ez a szétválás zavart okozhat a karbantartóknak és a tanulóknak egyaránt. Ezért amikor gyakorlófeladatok módosítását javasolod, vedd figyelembe a nagyobb képet az összes kurzus szintjén.

Hogyan fogadtasd el a módosításaidat

Bár sok oka van annak, hogy nem fogadunk el javaslatokat, gyakran előfordul, hogy az emberek remek ötletekkel állnak elő, amelyeket aztán el is fogadunk!

Szinte mindig nyitottak vagyunk olyan szövegezésbeli változtatásokra is, amelyek világosabbá teszik a dolgokat, különösen a tanulófeladatoknál.

Hogy a javaslataidnak a legjobb esélyük legyen az elfogadásra, írd le őket úgy, hogy kiderüljön belőlük, hogy az alábbiakat figyelembe vetted:

  • Milyen kézzelfogható javulást hoz a módosítás (ideális esetben kódpéldákkal arról, hogy mit tesz lehetővé vagy akadályoz meg).
  • Milyen hatással van a meglévő megoldásokra, és miért éri meg.
  • Milyen változásokat jelent a tanított vagy használt fogalmakban.
  • Hogy megérted, miért alakultak úgy a dolgok, ahogy. (Olvasd el a Chesterton's Fence bejegyzésünket.)

És ne feledd: a véleményeket véleményként, a tényeket tényként fogalmazd meg. Ez vezet általában a leghatékonyabb beszélgetésekhez.

Még egyszer köszönjük, hogy időt szántál egy javaslat megfogalmazására, és hogy elolvastad ezt a dokumentumot!