Adhocness level

Ponekad se raspravlja o tome što je dobar, a što loš zadatak. Ako izuzmemo težinu kao faktor koji manje-više pozitivno korelira s kvalitetom zadatka, najčešće se govori o tome je li zadatak “klasičan” ili je “ad hoc”, tj. je li “stoput viđen algoritam” ili ne koristi neki poznati algoritam nego je rješenje vrlo specifično za dotični zadatak.

Naravno, većina zadataka nije ni potpuno klasična ni potpuno ad hoc, a tako i treba biti. Mana klasičnih zadataka je što više testiraju teorijsko znanje nego dosjetljivost, dok neki ad hoc zadatci mogu biti previše “matematički” u smislu da se rješenje smišlja na papiru dok se ne nađe odgovarajuća “formula” koja se na kraju prepiše u smiješno kratak kod.

Da bismo bolje opisali ovaj raspon zadataka (tj. njihovih rješenja), predlažem sljedeću skalu – tzv. adhocness level: od 0 (premalo ad hoc) do 5 (previše ad hoc).

0 – Zadatci koji su čista implementacija nekog viđenog algoritma/strukture bez ikakvog razmišljanja ili značajne modifikacije. Dobri za učenje algoritma, ali loši za natjecanja ili vježbanje smišljanja. Primjeri: Super Mario, Ventilator

1 – “Klasični” zadatci – svode se na primjenu nekog poznatog algoritma/strukture čija primjena nije odmah očita ili je potrebno smisliti neku netrivijalnu modifikaciju. Znatno bolji od zadataka nivoa 0, ali još uvijek daleko od vrhunskih zadataka. Primjeri: George, Kaos, Aerodrom

2 – “Tehnički” zadatci, u kojima je realizacija teža od osnovne ideje, tj. preko 50% težine zadatka otpada na low-level detalje (iako i dalje mogu biti teški za smisliti). Ovakvi zadatci zbog specifičnosti nisu klasični, ali nisu nužno ni ad hoc jer i dalje mogu sadržavati neki poznati algoritam.

Naravno, ako je riječ o čistim koderskim, acslovskim zadatcima koji su obične simulacije nekih zadanih pravila, takvi zadatci su niske kvalitete. Ali u ovu kategoriju ubrajam i mnogo bolje, načelno teže zadatke, gdje se detalji i slučajevi u rješenju pojavljuju prirodnije. Ovdje se mišljenja razilaze – za neke je riječ o ružnim zadatcima, ali mislim da je tu riječ “ružno” samo sinonim za “meni je to teško, hoću doma”. Izazovna implementacija velika je prednost zadatka – testira vjerojatno najvažniju vještinu programera i može biti jako satisfakcijska ako se lijepo razradi. Kao neklasični, ali i daleko od “matematičkih”, ovo mogu biti odlični zadatci. Primjeri: Snake (memory limit!), Loza, Islands

3 – Zadatci gdje je primjena poznatog algoritma jako neočita, ili je poznati algoritam samo dio relativno originalnog (većinom ad hoc) rješenja, ili je zadatak prirodno višeidejni – zahtjeva neočitu primjenu više poznatih algoritama/struktura. Ovo su odlični zadatci. Primjeri: Wordplay, Mravograd, RP

4 – Ad hoc zadatci koje je moguće riješiti bez znanja algoritama, no i dalje zahtijevaju algoritamski način razmišljanja i/ili razumnu vještinu programiranja. Načelno dobri zadatci, ali blago favoriziraju matematičare, tj. one koji su vještiji u smišljanju nego kodiranju. Primjeri: Palin, Šetnja, Tvrtka

5 – Zadatci koji su “matematički” u smislu da bi u nekom obliku mogli komotno proći kao logičko-kombinatorni na neko matematičko natjecanje te ne zahtijevaju gotovo nikakvu vještinu programiranja nakon smišljanja rješenja. Mogu biti lijepi, ali nisu najprikladniji za informatička natjecanja (jedan po natjecanju bi mogao proći). Primjeri: Infokuhar, ABCD, Remove

Naravno, ovo je samo gruba podjela i za mnoge zadatke teško je jednoznačno odrediti kojem nivou (0-5) pripadaju. Volio bih čuti feedback na ovu skalu.

3 misli o “Adhocness level

  1. Povratni ping: Poluosvrt na EJOI 2018. | Blogaritam

  2. Povratni ping: Zadatak dana: ABCD | Blogaritam

  3. Povratni ping: Tema dana: clear thinking | Blogaritam

Komentiraj

Popunite niže tražene podatke ili kliknite na neku od ikona za prijavu:

WordPress.com Logo

Ovaj komentar pišete koristeći vaš WordPress.com račun. Odjava /  Izmijeni )

Google+ photo

Ovaj komentar pišete koristeći vaš Google+ račun. Odjava /  Izmijeni )

Twitter picture

Ovaj komentar pišete koristeći vaš Twitter račun. Odjava /  Izmijeni )

Facebook slika

Ovaj komentar pišete koristeći vaš Facebook račun. Odjava /  Izmijeni )

Spajanje na %s