Tekmovanje ACM iz računalništva in informatike

Anketa o 15. 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 76 izpolnjenih anketnih obrazcev iz prve skupine, 27 iz druge in 15 iz tretje skupine. Ker je letošnje tekmovanje potekalo v celoti prek interneta, smo tudi anketo izvedli prek spletne strani 1ka.si.

Nekaj opažanj

O nalogah:

Programersko znanje:

Katere programske jezike so uporabljali:

JezikŠt. tekmovalcev, ki so ga uporabljali
2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2004 2003
IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIII IIIIIIIII
Pascal 2 2 4 0⅓3 52 2.521 1 1 614 343 4.552 421 1.522 8.521 655 232013 17
C 3.53 1040.5 540.5 432.5 4⅓12 31 3.56 27  721 72  661 9.53.50.5 4.5112.5 5.5116.5 4161.5 137.51 4
C++ 26.5814 21.57.518 18.51311 231015.5 2889 2799.5 194.510.5 1712.57 25169 23.5198 3317.513 26.5212.5 17.5119.5 71415.5 13510.5 5 6 5
PHP 1 3 2 10.5  1 0.5   11  22   2  1   1       
nič 2 3 21 23 41 42 2   2 11  15  1    1  3   12  32   
VB 1 1 1                    1  1      
C# 63 122 116 76 1251 165 121.52 180.5  1713 423  0.51       3  0.5       
Java 1543 1551 21.58.54 2832 2465 2263.5 2321.5 1881 176.51 653 594 8811 9.53   2.5  3  0.5   
Python 48203 36.526.56.5 38110.5 4211 29⅓12 261 166 168  255 206  122  40.5  61   
Newtonscript  0.5  0.5              
JavaScript 2 0.5 1 1 1                  
Batch 1                  
Julia 1                  
Swift 1                  
psevdokoda 21 51 31 5 5 61 10 6   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
I690155
II26022
III13030

Č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
I5636221169
II181010544
III1216242

Č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
I8266
II11114
III815
SkupinaTi ustreza število nalog?
rad bi več nalograd bi manj nalognalog je ravno prav
I4666
II0818
III0212
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
I1613585020
II0650113010
III071041010

Poznavanje algoritmov in podatkovnih struktur

SkupinaAli poznaš naslednje podatkovne strukture?
drevohash tabelaseznam s kazalci (linked list)sklad (stack)vrsta (queue)
I65%53%46%53%51%
II54%42%46%69%65%
III100%64%71%100%100%
SkupinaAli poznaš naslednje algoritme?
EvklidovEratostenovo rešetoformula za vektorski produktrekurzijadinamično programiranjeiskanje v širino (po grafu)
I89%78%55%51%38%29%
II81%81%65%42%35%36%
III93%86%79%86%100%100%
SkupinaAli poznaš naslednje algoritme za urejanje?
bubble sortinsertion sortselection sortquicksortradix sortheap shortShell sortmerge sort
I58%42%43%39%0%0%0%3%
II59%44%44%44%0%4%0%0%
III80%73%73%87%0%20%7%40%
SkupinaAli poznaš zapis z velikim O za časovno in prostorsko zahtevnost?
O-zapis
I41%
II65%
III100%

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.881.611.741.631.451.931.470.67
II1.691.501.851.771.541.731.540.65
III2.001.852.002.002.002.002.001.21
SkupinaKatere od naštetih jezikovnih konstruktov
in programerskih prijemov znaš uporabljati?
zanka forzanka whilegnezdenje zankenumerated typesstruktureoperatorji na bitihshl shrhash_ mapmappriority_ queue
I1.931.951.930.841.271.680.950.780.480.44
II1.851.851.850.771.321.620.921.120.540.72
III2.002.002.001.461.711.711.641.361.771.64

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
I93%73%86%79%65%96%64%19%
II81%58%92%85%65%81%69%27%
III100%85%100%100%100%100%100%50%
SkupinaKatere od naštetih jezikovnih konstruktov
in programerskih prijemov znaš uporabljati?
zanka forzanka whilegnezdenje zankenumerated typesstruktureoperatorji na bitihshl shrhash_ mapmappriority_ queue
I96%96%96%33%53%78%35%27%15%11%
II92%92%92%27%44%69%27%46%17%28%
III100%100%100%62%71%71%64%57%85%79%

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
I55200
II12122
III1130
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
I6690
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
basic100
C1441
C#1620
C++271010
C/C++001
go110
HTML110
java2355
JavaScript1733
kotlin100
Matlab001
pascal741
PHP811
python431813
R300
ruby100
SQL100
swift110

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++, 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
I70
  • Da, v swiftu
  • FOTRAN, Asemby
  • Java, zelo me tudi moti, da so imena funkcij z veliko.
  • Java/Kotlin, Go
  • JavaScript
  • JavaScript
  • JavaScript
  • Ne, meni zadošča tako, kot je.
  • Ne. Po mojem mnenju sploh ni potrebe po deklaracijah.
  • Ni potrebe
  • Ni potrebno
  • Niti ne, imam znanja iz Jave, C, C++, kar pa je vse že navedeno.
  • Niti ne.
  • Raje jih sploh ne.
  • ne, mogoče brez pascala
  • niti ne
  • v javi
6
  • Ne vem
2056
II26
  • Shakespeare. I dare you, I double dare you muthafuc'a
  • brainfuck, whitespace
  • c
  • c#
  • java
  • mogoče Go
  • nah
0
    1411

    „V rešitvah nalog trenutno objavljamo izvorno kodo v C++, v prvi skupini pa tudi v pythonu. 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++)?
    Ali predlagaš (še) kak drug jezik?
    DaNe(Prazno)
    ŠteviloPredlogiŠteviloPredlogiŠteviloPredlogi
    I62
    • C#
    • Da bi dodali se zapis v Javi na primer, saj sta C++ ter C dokaj podobna, Java pa vsebuje določene metode, ki jih C ter C++ ne.
    • Da, v javi.
    • Da, v pascalu, ki se mi zdi najenostavnejši programski jezik.
    • Da. V Brainfucku.
    • Java
    • Java
    • Java
    • Java (zelo močna želja)
    • Java/Kotlin
    • JavaScript
    • JavaScript
    • Ne, meni zadošča tako, kot je.
    • V swiftu
    • java
    • pseudokoda
    14
    • C
    • C
    • C#
    • Java
    • Javi
    • Ne vem
    • javi
    0
      II25
      • Ne
      • c#
      • java
      • lahko bi še pythona tudi za drugo skupino
      • najraje v pythonu
      • python
      1
      • Rešitve za 2 skupino v pythonu
      1
        III13
        • Java
        • Ne, is gud.
        1
          1

            Vprašanje za tekmovalce 3. skupine: „Letos v 3. skupini podpiramo reševanje nalog v pascalu, C, C++, C#, javi in pythonu. 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. Vesoljske vsote837253012.6010615.415
            2. Ključ1194411012.9110516.017
            3. Obračanje jogija033824473.428610.414
            4. Zobna ščetka1222324152.939511.914
            5. Plonkanje917408023.009614.116

            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. Vesoljske vsote7636
            2. Ključ105511
            3. Obračanje jogija22468
            4. Zobna ščetka6673
            5. Plonkanje9616
            NalogaDolžina besedila Razumljivost besedila
            prekratkoprimernopredolgopovprečje*razumljivotežko razumljivonerazumljivopovprečje*
            1. Vesoljske vsote07242.0568711.12
            2. Ključ36752.03611321.22
            3. Obračanje jogija56292.05373271.61
            4. Zobna ščetka56641.99591331.25
            5. Plonkanje36672.0562951.25

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

            NalogaNaloga je bila
            zanimivadolgočasnaže znanapovprečna
            1. Vesoljske vsote464224
            2. Ključ575113
            3. Obračanje jogija559012
            4. Zobna ščetka4613312
            5. Plonkanje56839
            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. Vesoljske vsote11002072
            2. Ključ11003468
            3. Obračanje jogija630521155
            4. Zobna ščetka11120568
            5. Plonkanje31031664
            NalogaKatera naloga ti je bila najbolj všeč? Katera naloga ti je bila najmanj všeč?
            1. Vesoljske vsote143
            2. Ključ96
            3. Obračanje jogija1528
            4. Zobna ščetka713
            5. Plonkanje1013

            Mnenja o 1. nalogi (Vesoljske vsote)

            Mnenja o 2. nalogi (Ključ)

            Mnenja o 3. nalogi (Obračanje jogija)

            Mnenja o 4. nalogi (Zobna ščetka)

            Mnenja o 5. nalogi (Plonkanje)

            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 (Vesoljske vsote)

            2. naloga (Ključ)

            3. naloga (Obračanje jogija)

            4. naloga (Zobna ščetka)

            5. naloga (Plonkanje)

            Drugi odgovori

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

            1. naloga (Vesoljske vsote)

            2. naloga (Ključ)

            3. naloga (Obračanje jogija)

            4. naloga (Zobna ščetka)

            5. naloga (Plonkanje)

            Drugi odgovori

            Druga skupina

            Mnenje o nalogah:

            NalogaZahtevnost naloge Povprečna zahtevnost Točke
            prelahkalahkaprimernatežkapretežkane vem> 0 točkpovprečjemediana
            1. Metanje na koš03158003.19399.89
            2. Ne odlašaj na jutri, kar lahko storiš pojutrišnjem00810623.92299.69
            3. Lenoba13710323.61293.94
            4. Semafor31450212.673313.117
            5. Prelom besedila011112103.52339.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. Metanje na koš12113
            2. Ne odlašaj na jutri, kar lahko storiš pojutrišnjem8125
            3. Lenoba7154
            4. Semafor1222
            5. Prelom besedila8143
            NalogaDolžina besedila Razumljivost besedila
            prekratkoprimernopredolgopovprečje*razumljivotežko razumljivonerazumljivopovprečje*
            1. Metanje na koš02332.1225101.04
            2. Ne odlašaj na jutri, kar lahko storiš pojutrišnjem11862.20131021.56
            3. Lenoba22222.0016921.48
            4. Semafor12312.0018421.33
            5. Prelom besedila02502.0022201.08

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

            NalogaNaloga je bila
            zanimivadolgočasnaže znanapovprečna
            1. Metanje na koš20123
            2. Ne odlašaj na jutri, kar lahko storiš pojutrišnjem13524
            3. Lenoba16505
            4. Semafor18303
            5. Prelom besedila21013
            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. Metanje na koš00142419
            2. Ne odlašaj na jutri, kar lahko storiš pojutrišnjem4261049
            3. Lenoba42531311
            4. Semafor30311118
            5. Prelom besedila31153214
            NalogaKatera naloga ti je bila najbolj všeč? Katera naloga ti je bila najmanj všeč?
            1. Metanje na koš23
            2. Ne odlašaj na jutri, kar lahko storiš pojutrišnjem58
            3. Lenoba26
            4. Semafor33
            5. Prelom besedila52

            Mnenja o 1. nalogi (Metanje na koš)

            Mnenja o 2. nalogi (Ne odlašaj na jutri, kar lahko storiš pojutrišnjem)

            Mnenja o 3. nalogi (Lenoba)

            Mnenja o 4. nalogi (Semafor)

            Mnenja o 5. nalogi (Prelom besedila)

            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 (Metanje na koš)

            2. naloga (Ne odlašaj na jutri, kar lahko storiš pojutrišnjem)

            4. naloga (Semafor)

            5. naloga (Prelom besedila)

            Drugi odgovori

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

            1. naloga (Metanje na koš)

            2. naloga (Ne odlašaj na jutri, kar lahko storiš pojutrišnjem)

            3. naloga (Lenoba)

            4. naloga (Semafor)

            5. naloga (Prelom besedila)

            Drugi odgovori

            Tretja skupina

            Mnenje o nalogah:

            NalogaZahtevnost naloge Povprečna zahtevnost Točke
            prelahkalahkaprimernatežkapretežkane vem> 0 točkpovprečjemediana
            1. Vaje v slogu0145403.861122.79
            2. Zamik0047123.7545.30
            3. Zlaganje slik0065213.691122.622
            4. Janko in Metka0444203.291531.922
            5. Ključavničarstvo0153413.77517.10

            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. Vaje v slogu554
            2. Zamik544
            3. Zlaganje slik274
            4. Janko in Metka481
            5. Ključavničarstvo562
            NalogaDolžina besedila Razumljivost besedila
            prekratkoprimernopredolgopovprečje*razumljivotežko razumljivonerazumljivopovprečje*
            1. Vaje v slogu01212.0812101.08
            2. Zamik01302.0012101.08
            3. Zlaganje slik01212.0813001.00
            4. Janko in Metka01302.0011201.15
            5. Ključavničarstvo0942.318411.46

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

            NalogaNaloga je bila
            zanimivadolgočasnaže znanapovprečna
            1. Vaje v slogu6014
            2. Zamik10200
            3. Zlaganje slik10101
            4. Janko in Metka7122
            5. Ključavničarstvo9021
            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. Vaje v slogu0434260
            2. Zamik7342310
            3. Zlaganje slik5322151
            4. Janko in Metka5104241
            5. Ključavničarstvo7453101
            NalogaKatera naloga ti je bila najbolj všeč? Katera naloga ti je bila najmanj všeč?
            1. Vaje v slogu12
            2. Zamik35
            3. Zlaganje slik30
            4. Janko in Metka21
            5. Ključavničarstvo12

            Mnenja o 1. nalogi (Vaje v slogu)

            Mnenja o 2. nalogi (Zamik)

            Mnenja o 5. nalogi (Ključavničarstvo)

            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 (Vaje v slogu)

            2. naloga (Zamik)

            3. naloga (Zlaganje slik)

            4. naloga (Janko in Metka)

            5. naloga (Ključavničarstvo)

            Drugi odgovori

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

            1. naloga (Vaje v slogu)

            2. naloga (Zamik)

            4. naloga (Janko in Metka)

            5. naloga (Ključavničarstvo)

            [H kazalu. | Na vrh te strani.]