Tekmovanje ACM iz računalništva in informatike

Anketa o 7. tekmovanju ACM v znanju računalništva

[Kazalo: nekaj opažanj, statistike po skupinah, prva, druga, tretja skupina.]

Če bi rad kdo v zvezi s tem tekmovanjem še kaj povedal ali vprašal, naj nam piše na rtk-info@ijs.si.

Dobili smo 98 izpolnjenih anketnih obrazcev iz prve skupine, 26 iz druge in 16 iz tretje skupine. (Anketni obrazci za vse tri skupine v formatu PDF.)

Nekaj opažanj

O nalogah:

Programersko znanje:

Katere programske jezike so uporabljali:

JezikŠt. tekmovalcev, ki so ga uporabljali
2012 2011 2010 2009 2008 2007 2006 2004 2003
IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIIIIII
Pascal 614 343 4.552 421 1.522 8.521 655 232013 17
C 721 72  661 9.53.50.5 4.5112.5 5.5116.5 4161.5 137.51 4
C++ 25169 23.5198 3317.513 26.5212.5 17.5119.5 71415.5 13510.5 5 6 5
PHP 1 0.5   11  22   2  1   1       
nič 2 11  15  1    1  3   12  32   
VB                  1  1      
C# 1713 423  0.51       3  0.5       
Java 176.51 653 594 8811 9.53   2.5  3  0.5   
Python 255 206  122  40.5  61   
Newtonscript 0.5              
psevdokoda 3 2   4   8    

Opombe:

Sledijo podrobni rezultati ankete. Opombe v oglatih oklepajih [takole] so moje.

Vprašanja za vse skupine

Kje si izvedel za to tekmovanje?

SkupinaKje si izvedel za to tekmovanje?
od mentorjana spletni straniod prijatelja/sošolcadrugače
I86173
II26001
III11013

Če na spletni strani, na kateri?

Če drugače, kako?

Kje si se naučil programirati?

SkupinaKje si se naučil programirati?
samv šoli pri poukuna krožkihna tečajihpoletna šolakje drugje
I604135962
II1984201
III615541

Če drugje, kje?

Čas reševanja in število nalog

SkupinaTi ustreza čas reševanja nalog?
rad bi več časarad bi manj časačasa je ravno prav
I171259
II8414
III118
SkupinaTi ustreza število nalog?
rad bi več nalograd bi manj nalognalog je ravno prav
I7872
II3716
III064
SkupinaVseh devet kombinacij časa in nalog
več časa, več nalogveč časa, enako nalogveč časa, manj nalogenako časa, več nalogenako časa, enako nalogenako časa, manj nalogmanj časa, več nalogmanj časa, enako nalogmanj časa, manj nalog
I11324523272
II251194022
III001044001

Potekmovalne dejavnosti

SkupinaKakšne potekmovalne dejavnosti bi te zanimale?
izletpoletna šolapraksa na IJSpredstavitve novih tehnologijpredavanja o algoritmihreševanje nalogiskanje štipendijeiskanje podjetja
I3631273330313945
II7591183910
III32425424

Poznavanje algoritmov in podatkovnih struktur

SkupinaAli poznaš naslednje podatkovne strukture?
drevohash tabelaseznam s kazalci (linked list)sklad (stack)vrsta (queue)
I45%26%36%31%35%
II54%52%65%62%54%
III73%60%73%71%80%
SkupinaAli poznaš naslednje algoritme?
EvklidovEratostenovo rešetoformula za vektorski produktrekurzijadinamično programiranjeiskanje v širino (po grafu)
I88%70%39%29%25%14%
II65%85%50%52%28%19%
III67%67%87%67%60%40%
SkupinaAli poznaš naslednje algoritme za urejanje?
bubble sortinsertion sortselection sortquicksortradix sortheap shortShell sortmerge sort
I34%27%20%27%2%1%0%1%
II62%23%23%19%0%0%4%0%
III69%38%25%63%0%0%0%6%
SkupinaAli poznaš zapis z velikim O za časovno in prostorsko zahtevnost?
O-zapis
I27%
II38%
III79%

Opomba pri algoritmih za urejanje: na anketnem obrazcu so bili navedeni prvi štirje. Ostale štiri (od radix sorta naprej) smo torej šteli le tam, kjer so jih tekmovalci sami od sebe vpisali v rubriko „kakšnega drugega“.

Programersko znanje

Pri vsakem konstruktu so bili možni trije odgovori: „ne poznam“, „da, slabo” in „da, dobro“.

Naslednja tabela kaže uteženo povprečje, pri čemer smo odgovore pretvorili v števila takole: „ne“ = 0; „da, slabo“ = 1; „da, dobro“ = 2.

SkupinaKatere od naštetih jezikovnih konstruktov
in programerskih prijemov znaš uporabljati?
standardni vhod/izhoddatotekearray 1-Darray 2-Darray (večdim.)podprogramrekurzijakazalci
I1.841.541.741.451.101.630.930.67
II1.921.791.921.841.541.761.461.36
III2.002.002.002.001.931.931.791.36
SkupinaKatere od naštetih jezikovnih konstruktov
in programerskih prijemov znaš uporabljati?
zanka forzanka whilegnezdenje zankenumerated typesstruktureoperatorji na bitihshl shrhash_ mapmappriority_ queue
I1.911.871.720.711.081.180.600.330.370.24
II2.001.962.001.081.501.330.740.500.500.25
III2.001.931.931.461.431.641.001.071.081.15

Tu pa je odstotek ljudi, ki so izbrali odgovor „da, dobro“:

SkupinaKatere od naštetih jezikovnih konstruktov
in programerskih prijemov znaš uporabljati?
standardni vhod/izhoddatotekearray 1-Darray 2-Darray (večdim.)podprogramrekurzijakazalci
I86%67%82%61%44%71%36%22%
II92%83%92%88%62%84%62%52%
III100%100%100%100%93%93%79%57%
SkupinaKatere od naštetih jezikovnih konstruktov
in programerskih prijemov znaš uporabljati?
zanka forzanka whilegnezdenje zankenumerated typesstruktureoperatorji na bitihshl shrhash_ mapmappriority_ queue
I94%89%82%23%44%51%19%9%12%9%
II100%96%100%33%67%54%22%12%8%0%
III100%93%93%69%64%71%31%36%38%54%

Kako vpliva tvoje znanje matematike/angleščine na programiranje in učenje računalništva?

SkupinaKako vpliva tvoje znanje matematike na programiranje in učenje računalništva?
zadošča mojim potrebamobčutim pomanjkljivosti, a se znajdemje preskromno, da bi koristilo
I70244
II15100
III861
SkupinaKako vpliva tvoje znanje angleščine na programiranje in učenje računalništva?
zadošča mojim potrebamobčutim pomanjkljivosti, a se znajdemje preskromno, da bi koristilo
I8891
II2321
III1400

Katere programske jezike obvladaš?

V anketnem obrazcu je bilo prostora za tri jezike; pri vsakem naj bi tekmovalec tudi navedel, koliko programov je že napisal v njem in kako dolg je bil najdaljši od njih. Spodaj za vsako skupino piše, koliko tekmovalcev je navedlo posamezni jezik in pri tem niti število programov ni bilo manjše od 10 niti dolžina najdaljšega programa ni bila manjša od 20 vrstic.

JezikSkupina
IIIIII
ActionScript010
basic230
C1031
C#1563
C++36138
C/C++301
HTML200
java20102
JavaScript610
logo002
objective C010
pascal1028
PHP964
python2774
robot C001
SQL100

V anketi je bila tudi rubrika za naštevanje morebitnih ostalih programskih jezikov, v katerih je tekmovalec tudi že kdaj programiral. Tu so navedli naslednje jezike:

Prva skupina:

Druga skupina:

Tretja skupina:

Programski jeziki v opisih nalog in v rešitvah

„V besedilu nalog trenutno objavljamo deklaracije tipov in podprogramov v pascalu, C/C++, pythonu in javi. Ali razumeš kakšnega od teh jezikov dovolj dobro, da razumeš te deklaracije v besedilu naših nalog? Ali bi raje videl, da bi objavljali deklaracije (tudi) v kakšnem drugem programskem jeziku?“

SkupinaAli razumeš deklaracije v besedilu nalog (v pascalu, C/C++, pythonu in javi)?
Ali predlagaš (še) kak drug jezik?
So ti prišle deklaracije v pythonu kaj prav?
DaNeDaNe
ŠteviloPredlogiŠteviloPredlogi
I83
  • C#
  • C#
  • C++
  • PHP
  • PHP
  • Visual Basic
  • da, v pascalu [uhm, ampak saj deklaracije v pascalu so že na voljo…]
  • java
  • java [uhm, ampak saj so že tudi v javi…]
  • pascal [argh… saj so že v pascalu…]
  • Če želijo drugi, me ne moti.
  • Čim različnejših - poučno.
10
  • C++
2862
II23
  • 1, 3, 5 [Huh?]
  • C++
  • C++
  • basic (ker je eden od najbolj razširjenih)
  • java! [ampak saj že imamo deklaracije tudi v javi…]
  • ni treba
1
  • C#
418

„V rešitvah nalog trenutno objavljamo izvorno kodo v C-ju. Ali razumeš C dovolj dobro, da si lahko kaj pomagaš z izvorno kodo v naših rešitvah? Ali bi raje videl, da bi izvorno kodo rešitev pisali v kakšnem drugem jeziku? Če da, v katerem?“

SkupinaAli razumeš izvorno kodo v rešitvah (v C-ju)?
Ali predlagaš (še) kak drug jezik?
DaNe(Prazno)
ŠteviloPredlogiŠteviloPredlogiŠteviloPredlogi
I51
  • -"- [verjetno se to nanaša na "čim različnejših - poučno" pri prejšnjem vprašanju]
  • C#, java (2×)
  • C++ (9×)
  • Ni potrebe.
  • da, v pascalu
  • java (6×)
  • ne vem (3×)
  • python (6×)
  • python, C++
36
  • C#, java
  • C#, python
  • C++ (5×)
  • java (3×)
  • java ali C#
  • ne vem
  • pascal (3×)
  • python (10×)
11
  • C++
II21
  • C++
  • C++ (2×)
  • C++ :) (je pač lepši kot C)
  • C++ ali C#
  • java (3×)
  • ni problema
  • python
3
    2
      III13
      • C#
      • C++ (queue na človeški način itd., uporaba novejših struktur, za "bolj zapletene" podatkovne strukture)
      • java, python [python z velikimi črkami]
      • pascal
      • python
      0
        3

          Vprašanje za tekmovalce 3. skupine: „Doslej smo v 3. skupini podpirali reševanje nalog v pascalu, C, C++, C# in javi. Bi rad uporabljal kakšen drug programski jezik? Če da, katerega?“

          Prva skupina

          Mnenje o nalogah:

          NalogaZahtevnost naloge Povprečna zahtevnost Točke
          prelahkalahkaprimernatežkapretežkane vem> 0 točkpovprečjemediana
          1. Prepletene besede623537142.908713.015
          2. Manjkajoča števila3245015122.968710.511
          3. Kazenski stavek1114732303.301026.26
          4. Mase453440833.63656.13
          5. V Afganistan!1312432924.14776.74

          Opomba: „> 0 točk“ je število tekmovalcev, ki so pri tej nalogi dobili več kot 0 točk.
          Pri vsaki nalogi je možnih 20 točk.
          Za potrebe računanja povprečja smo mnenja o zahtevnosti prevedli v števila takole:
          prelahka = 1, lahka = 2, primerna = 3, težka = 4, pretežka = 5.

          NalogaVzela je (ali: bi) preveč časa
          danene vem
          1. Prepletene besede87113
          2. Manjkajoča števila116711
          3. Kazenski stavek196013
          4. Mase294714
          5. V Afganistan!423414
          NalogaDolžina besedila Razumljivost besedila
          prekratkoprimernopredolgopovprečje*razumljivotežko razumljivonerazumljivopovprečje*
          1. Prepletene besede09222.0286701.08
          2. Manjkajoča števila19122.0186801.09
          3. Kazenski stavek28832.0185611.09
          4. Mase97741.94661871.35
          5. V Afganistan!136391.95403281.60

          * Povprečja smo računali tako, da kot da ima prvi možni odgovor vrednost 1, drugi 2 in tretji 3.

          NalogaNaloga je bila
          zanimivadolgočasnaže znanapovprečna
          1. Prepletene besede5451023
          2. Manjkajoča števila586522
          3. Kazenski stavek705512
          4. Mase6113116
          5. V Afganistan!6115010
          NalogaSi jo rešil?
          nisem (zmanjkalo časa)nisem (zmanjkalo volje)nisem (zmanjkalo znanja)delno (zmanjkalo časa)delno (zmanjkalo volje)delno (zmanjkalo znanja)rešil v celoti
          1. Prepletene besede02311881
          2. Manjkajoča števila012221080
          3. Kazenski stavek010131673
          4. Mase226191262
          5. V Afganistan!71320341244
          NalogaKatera naloga ti je bila najbolj všeč? Katera naloga ti je bila najmanj všeč?
          1. Prepletene besede174
          2. Manjkajoča števila184
          3. Kazenski stavek1012
          4. Mase922
          5. V Afganistan!2837

          Mnenja o 1. nalogi (Prepletene besede)

          Mnenja o 2. nalogi (Manjkajoča števila)

          Mnenja o 3. nalogi (Kazenski stavek)

          Mnenja o 4. nalogi (Mase)

          Mnenja o 5. nalogi (V Afganistan!)

          Kolikokrat si se že udeležil kakšnega tekmovanja iz računalništva pred tem tekmovanjem?

          Katerega leta si se udeležil prvega tekmovanja iz računalništva?

          Najboljša dosedanja uvrstitev na tekmovanjih iz računalništva (kje in kdaj)?

          Koliko časa že programiraš?

          Kakršne koli druge pripombe in predlogi. Kaj bi spremenil(a), popravil(a), odpravil(a) ipd., da bi postalo tekmovanje zanimivejše in bolj privlačno?

          Kaj ti je bilo pri tekmovanju všeč?

          Kaj te je najbolj motilo?

          Če imaš kaj vrstnikov, ki se tudi zanimajo za programiranje, pa se tega tekmovanja niso udeležili, kaj bi bilo po tvojem mnenju treba spremeniti, da bi jih prepričali k udeležbi?

          Kakšno je bilo tvoje mnenje o sistemu za oddajanje odgovorov prek računalnika?

          Katera naloga ti je bila najbolj všeč in zakaj?

          1. naloga (Prepletene besede)

          2. naloga (Manjkajoča števila)

          3. naloga (Kazenski stavek)

          4. naloga (Mase)

          5. naloga (V Afganistan!)

          Drugi odgovori

          Katera naloga ti je bila najmanj všeč in zakaj?

          1. naloga (Prepletene besede)

          2. naloga (Manjkajoča števila)

          3. naloga (Kazenski stavek)

          4. naloga (Mase)

          5. naloga (V Afganistan!)

          Drugi odgovori

          Druga skupina

          Mnenje o nalogah:

          NalogaZahtevnost naloge Povprečna zahtevnost Točke
          prelahkalahkaprimernatežkapretežkane vem> 0 točkpovprečjemediana
          1. Ovce03118313.44207.63
          2. Spričevala03128303.423212.314
          3. Razpolovišče lika00913403.812910.18
          4. Strukturirani podatki36104303.302913.014
          5. Največji pretok2396333.52249.210

          Opomba: „> 0 točk“ je število tekmovalcev, ki so pri tej nalogi dobili več kot 0 točk.
          Pri vsaki nalogi je možnih 20 točk.
          Za potrebe računanja povprečja smo mnenja o zahtevnosti prevedli v števila takole:
          prelahka = 1, lahka = 2, primerna = 3, težka = 4, pretežka = 5.

          NalogaVzela je (ali: bi) preveč časa
          danene vem
          1. Ovce9125
          2. Spričevala10114
          3. Razpolovišče lika9142
          4. Strukturirani podatki6171
          5. Največji pretok6136
          NalogaDolžina besedila Razumljivost besedila
          prekratkoprimernopredolgopovprečje*razumljivotežko razumljivonerazumljivopovprečje*
          1. Ovce02502.0019501.21
          2. Spričevala02302.0020401.17
          3. Razpolovišče lika02412.0423201.08
          4. Strukturirani podatki02502.0021401.16
          5. Največji pretok12112.0015901.38

          * Povprečja smo računali tako, da kot da ima prvi možni odgovor vrednost 1, drugi 2 in tretji 3.

          NalogaNaloga je bila
          zanimivadolgočasnaže znanapovprečna
          1. Ovce113010
          2. Spričevala16216
          3. Razpolovišče lika20104
          4. Strukturirani podatki13227
          5. Največji pretok17301
          NalogaSi jo rešil?
          nisem (zmanjkalo časa)nisem (zmanjkalo volje)nisem (zmanjkalo znanja)delno (zmanjkalo časa)delno (zmanjkalo volje)delno (zmanjkalo znanja)rešil v celoti
          1. Ovce12122414
          2. Spričevala11001617
          3. Razpolovišče lika00223516
          4. Strukturirani podatki11112218
          5. Največji pretok42321016
          NalogaKatera naloga ti je bila najbolj všeč? Katera naloga ti je bila najmanj všeč?
          1. Ovce27
          2. Spričevala76
          3. Razpolovišče lika73
          4. Strukturirani podatki11
          5. Največji pretok55

          Mnenja o 1. nalogi (Ovce)

          Mnenja o 2. nalogi (Spričevala)

          Mnenja o 3. nalogi (Razpolovišče lika)

          Mnenja o 4. nalogi (Strukturirani podatki)

          Mnenja o 5. nalogi (Največji pretok)

          Kolikokrat si se že udeležil kakšnega tekmovanja iz računalništva pred tem tekmovanjem?

          Katerega leta si se udeležil prvega tekmovanja iz računalništva?

          Najboljša dosedanja uvrstitev na tekmovanjih iz računalništva (kje in kdaj)?

          Koliko časa že programiraš?

          Kakršne koli druge pripombe in predlogi. Kaj bi spremenil(a), popravil(a), odpravil(a) ipd., da bi postalo tekmovanje zanimivejše in bolj privlačno?

          Kaj ti je bilo pri tekmovanju všeč?

          Kaj te je najbolj motilo?

          Če imaš kaj vrstnikov, ki se tudi zanimajo za programiranje, pa se tega tekmovanja niso udeležili, kaj bi bilo po tvojem mnenju treba spremeniti, da bi jih prepričali k udeležbi?

          Kakšno je bilo tvoje mnenje o sistemu za oddajanje odgovorov prek računalnika?

          Katera naloga ti je bila najbolj všeč in zakaj?

          1. naloga (Ovce)

          2. naloga (Spričevala)

          3. naloga (Razpolovišče lika)

          4. naloga (Strukturirani podatki)

          5. naloga (Največji pretok)

          Drugi odgovori

          Katera naloga ti je bila najmanj všeč in zakaj?

          1. naloga (Ovce)

          2. naloga (Spričevala)

          3. naloga (Razpolovišče lika)

          4. naloga (Strukturirani podatki)

          5. naloga (Največji pretok)

          Drugi odgovori

          Tretja skupina

          Mnenje o nalogah:

          NalogaZahtevnost naloge Povprečna zahtevnost Točke
          prelahkalahkaprimernatežkapretežkane vem> 0 točkpovprečjemediana
          1. Reklama0292003.001272.896
          2. Kompresija slike0281002.911539.940
          3. Konstrukcija grafa0035033.63644.350
          4. Mušji drekci0033033.50439.320
          5. Podajanje žoge0161003.001043.544

          Opomba: „> 0 točk“ je število tekmovalcev, ki so pri tej nalogi dobili več kot 0 točk.
          Pri vsaki nalogi je možnih 100 točk.
          Za potrebe računanja povprečja smo mnenja o zahtevnosti prevedli v števila takole:
          prelahka = 1, lahka = 2, primerna = 3, težka = 4, pretežka = 5.

          NalogaVzela je (ali: bi) preveč časa
          danene vem
          1. Reklama551
          2. Kompresija slike181
          3. Konstrukcija grafa244
          4. Mušji drekci214
          5. Podajanje žoge232
          NalogaDolžina besedila Razumljivost besedila
          prekratkoprimernopredolgopovprečje*razumljivotežko razumljivonerazumljivopovprečje*
          1. Reklama0912.108301.27
          2. Kompresija slike0912.108201.20
          3. Konstrukcija grafa0612.145201.29
          4. Mušji drekci0612.146101.14
          5. Podajanje žoge0702.006101.14

          * Povprečja smo računali tako, da kot da ima prvi možni odgovor vrednost 1, drugi 2 in tretji 3.

          NalogaNaloga je bila
          zanimivadolgočasnaže znanapovprečna
          1. Reklama7112
          2. Kompresija slike2044
          3. Konstrukcija grafa4002
          4. Mušji drekci2113
          5. Podajanje žoge5011
          NalogaSi jo rešil?
          nisem (zmanjkalo časa)nisem (zmanjkalo volje)nisem (zmanjkalo znanja)delno (zmanjkalo časa)delno (zmanjkalo volje)delno (zmanjkalo znanja)rešil v celoti
          1. Reklama1120135
          2. Kompresija slike1120243
          3. Konstrukcija grafa1212230
          4. Mušji drekci3520111
          5. Podajanje žoge1131110
          NalogaKatera naloga ti je bila najbolj všeč? Katera naloga ti je bila najmanj všeč?
          1. Reklama40
          2. Kompresija slike10
          3. Konstrukcija grafa02
          4. Mušji drekci03
          5. Podajanje žoge21

          Mnenja o 1. nalogi (Reklama)

          Mnenja o 2. nalogi (Kompresija slike)

          Mnenja o 3. nalogi (Konstrukcija grafa)

          Mnenja o 4. nalogi (Mušji drekci)

          Mnenja o 5. nalogi (Podajanje žoge)

          Kolikokrat si se že udeležil kakšnega tekmovanja iz računalništva pred tem tekmovanjem?

          Katerega leta si se udeležil prvega tekmovanja iz računalništva?

          Najboljša dosedanja uvrstitev na tekmovanjih iz računalništva (kje in kdaj)?

          Koliko časa že programiraš?

          Kakršne koli druge pripombe in predlogi. Kaj bi spremenil(a), popravil(a), odpravil(a) ipd., da bi postalo tekmovanje zanimivejše in bolj privlačno?

          Kaj ti je bilo pri tekmovanju všeč?

          Kaj te je najbolj motilo?

          Če imaš kaj vrstnikov, ki se tudi zanimajo za programiranje, pa se tega tekmovanja niso udeležili, kaj bi bilo po tvojem mnenju treba spremeniti, da bi jih prepričali k udeležbi?

          Katera naloga ti je bila najbolj všeč in zakaj?

          1. naloga (de-FFT permutacija)

          5. naloga (Rotacija)

          Katera naloga ti je bila najmanj všeč in zakaj?

          3. naloga (Leteči pujsi)

          4. naloga (Nakup parcele)

          [H kazalu. | Na vrh te strani.]