Tekmovanje ACM iz računalništva in informatike

Anketa o 5. 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 33 izpolnjenih anketnih obrazcev iz prve skupine in 12 iz druge skupine; anketni obrazci tretje skupine so se žal izgubili neznano kam. (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
2010 2009 2008 2007 2006 2004 2003
IIIIII IIIIII IIIIII IIIIII IIIIII IIIIIIIII
Pascal4.552 421 1.522 8.521 655 232013 17
C 661 9.53.50.5 4.5112.5 5.5116.5 4161.5 137.51 4
C++ 3317.513 26.5212.5 17.5119.5 71415.5 13510.5 5 6 5
PHP 11  22   2  1   1       
nič 15  1    1  3   12  32   
VB              1  1      
C#  0.51       3  0.5       
Java 594 8811 9.53   2.5  3  0.5   
Python 122  40.5  61   
psevdokoda 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
I33100
II12000

Če na spletni strani, na kateri?

Kje si se naučil programirati?

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

Č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
I6521
II308
SkupinaTi ustreza število nalog?
rad bi več nalograd bi manj nalognalog je ravno prav
I4719
II128
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
I1321153212
II120062000

Potekmovalne dejavnosti

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

Drugi predlogi

Poznavanje algoritmov in podatkovnih struktur

SkupinaAli poznaš naslednje podatkovne strukture?
drevohash tabelaseznam s kazalci (linked list)sklad (stack)vrsta (queue)
I45%12%45%33%38%
II58%25%83%67%45%
SkupinaAli poznaš naslednje algoritme?
EvklidovEratostenovo rešetoformula za vektorski produktrekurzijadinamično programiranjeiskanje v širino (po grafu)
I88%55%30%19%9%6%
II58%67%42%50%42%17%
SkupinaAli poznaš naslednje algoritme za urejanje?
bubble sortinsertion sortselection sortquicksortradix sortheap shortShell sortmerge sort
I42%12%21%36%0%0%0%0%
II75%67%67%75%0%0%25%0%
SkupinaAli poznaš zapis z velikim O za časovno in prostorsko zahtevnost?
O-zapis
I13%
II50%

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.581.451.271.180.941.190.810.52
II1.921.921.921.921.831.921.361.33
SkupinaKatere od naštetih jezikovnih konstruktov
in programerskih prijemov znaš uporabljati?
zanka forzanka whilegnezdenje zankenumerated typesstruktureoperatorji na bitihshl shrmappriority_queue
I1.971.971.850.480.970.810.560.140.10
II2.002.002.001.251.581.671.580.170.17

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
I64%58%58%52%39%50%38%10%
II92%92%92%92%83%92%55%42%
SkupinaKatere od naštetih jezikovnih konstruktov
in programerskih prijemov znaš uporabljati?
zanka forzanka whilegnezdenje zankenumerated typesstruktureoperatorji na bitihshl shrmappriority_queue
I97%97%91%6%30%26%22%3%3%
II100%100%100%42%75%75%67%8%8%

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
I2580
II1110
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
I2760
II1020

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
III
basic30
C23
C#45
C++129
C/C++31
HTML01
java43
JavaScript01
PHP76
python62

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:

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
I26
  • C#
  • C++
  • C++
  • C++
  • PHP
  • vseeno
7
  • C++
  • PHP
  • Ti štirje zadostujejo.
924
II11
  • C++
  • Ni potrebno
1
    111

    „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
    ŠteviloPredlogiŠteviloPredlogi
    I18
    • C++
    • C++
    • PHP
    • python
    15
    • C++
    • C++
    • C++
    • C++
    • python
    • python
    • python
    • python
    • python, PHP
    • vseeno
    • vseeno
    II10
    • C++
    • C++
    2
    • [z velikimi črkami] C++!
    • java =)

    Prva skupina

    Mnenje o nalogah:

    NalogaZahtevnost naloge Povprečna zahtevnost Točke
    prelahkalahkaprimernatežkapretežkane vem> 0 točkpovprečjemediana
    1. Vodilni elementi03188123.23566.45
    2. Abecedni podnizi031310343.45444.31
    3. Skrivanje tipk02815623.81477.15
    4. Cikel34117433.54447.25
    5. Kvadrati s seštevanjem21783122.665911.313

    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. Vodilni elementi9184
    2. Abecedni podnizi5234
    3. Skrivanje tipk9185
    4. Cikel3244
    5. Kvadrati s seštevanjem0301
    NalogaDolžina besedila Razumljivost besedila
    prekratkoprimernopredolgopovprečje*razumljivotežko razumljivonerazumljivopovprečje*
    1. Vodilni elementi12732.0625611.25
    2. Abecedni podnizi02922.0626501.16
    3. Skrivanje tipk12642.1028211.13
    4. Cikel42442.0020941.52
    5. Kvadrati s seštevanjem23011.9731201.06

    * 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. Vodilni elementi163012
    2. Abecedni podnizi18129
    3. Skrivanje tipk21603
    4. Cikel20217
    5. Kvadrati s seštevanjem27420
    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. Vodilni elementi00211819
    2. Abecedni podnizi21311617
    3. Skrivanje tipk20322716
    4. Cikel11201423
    5. Kvadrati s seštevanjem10001327
    NalogaKatera naloga ti je bila najbolj všeč? Katera naloga ti je bila najmanj všeč?
    1. Vodilni elementi14
    2. Abecedni podnizi05
    3. Skrivanje tipk36
    4. Cikel39
    5. Kvadrati s seštevanjem232

    Mnenja o 1. nalogi (Vodilni elementi)

    Mnenja o 2. nalogi (Abecedni podnizi)

    Mnenja o 3. nalogi (Skrivanje tipk)

    Mnenja o 4. nalogi (Cikel)

    Mnenja o 5. nalogi (Kvadrati s seštevanjem)

    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 (Vodilni elementi)

    3. naloga (Skrivanje tipk)

    4. naloga (Cikel)

    5. naloga (Kvadrati s seštevanjem)

    Drugi odgovori

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

    1. naloga (Vodilni elementi)

    2. naloga (Abecedni podnizi)

    3. naloga (Skrivanje tipk)

    4. naloga (Cikel)

    5. naloga (Kvadrati s seštevanjem)

    Drugi odgovori

    Druga skupina

    Mnenje o nalogah:

    NalogaZahtevnost naloge Povprečna zahtevnost Točke
    prelahkalahkaprimernatežkapretežkane vem> 0 točkpovprečjemediana
    1. Poštne številke0048003.673910.110
    2. Reka presledkov0135213.73327.07
    3. Delitev kamenja0570002.584111.610
    4. Parktronic1146003.55328.510.5
    5. Pravokotniki0082113.36377.96.5

    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. Poštne številke633
    2. Reka presledkov282
    3. Delitev kamenja0102
    4. Parktronic354
    5. Pravokotniki291
    NalogaDolžina besedila Razumljivost besedila
    prekratkoprimernopredolgopovprečje*razumljivotežko razumljivonerazumljivopovprečje*
    1. Poštne številke01202.0011101.08
    2. Reka presledkov2911.928121.45
    3. Delitev kamenja1922.089211.33
    4. Parktronic1832.176511.58
    5. Pravokotniki3901.757411.50

    * 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. Poštne številke9300
    2. Reka presledkov6203
    3. Delitev kamenja4332
    4. Parktronic7301
    5. Pravokotniki6015
    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. Poštne številke00001110
    2. Reka presledkov1220008
    3. Delitev kamenja00000111
    4. Parktronic0110109
    5. Pravokotniki1110025
    NalogaKatera naloga ti je bila najbolj všeč? Katera naloga ti je bila najmanj všeč?
    1. Poštne številke42
    2. Reka presledkov14
    3. Delitev kamenja20
    4. Parktronic41
    5. Pravokotniki03

    Mnenja o 1. nalogi (Poštne številke)

    Mnenja o 2. nalogi (Reka presledkov)

    Mnenja o 4. nalogi (Parktronic)

    Mnenja o 5. nalogi (Pravokotniki)

    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 (Poštne številke)

    2. naloga (Reka presledkov)

    3. naloga (Delitev kamenja)

    4. naloga (Parktronic)

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

    1. naloga (Poštne številke)

    2. naloga (Reka presledkov)

    5. naloga (Pravokotniki)

    [H kazalu. | Na vrh te strani.]