Skip to the content.

Programmeringshøst

Programmeringshøst består af tyve programmeringsopgaver, én per hverdag. Programmeringshøst er både en fællesaktivitet for alle på ITU – inklusive ældre studerende og lærere – og udgør en obligatorisk opgave for de studerende på kurset Grundlæggende programmering (GRPRO).

Sammenfatning:

… som fællesaktivitet

Alle på ITU er velkommen til at deltage i samtlige aktiviteter i forbindelse med Programmeringshøsten. Det kræver en konto på Kattis, som du fx kan oprette via itu.kattis.com. Hvis du allerede har en brugerprofil på Kattis, bruger du bare den.

For at se, om eller at alting virker, er der en opvarmingssession på

Når høsten er i gang, finder du dagens opgave hver morgen kl. 6.00 på

Log på, navigér til ovenstående adresse, og vælg »join contest«. (Der er ingen grund til at vælge »I am a student taking this course and I want to register for it on Kattis«.)

Du kan løse lige så mange eller få opgaver, som du har lyst til. Du kan også frit vælge programmeringssprog.

Efter 24 timer bliver opgaven genstand for offentlig samtale på

Her kan du

Kanalen er sådan set åben hele tiden; og du er altid velkommen til at stille uddybende spørgsmål om uklarheder i opgaveformuleringen. Men de første 24 timer bør der ikke deles løsninger – dette er af hensyn til opgavens obligatoriske natur for førsteårsstuderende, som bør have lov til at vende skråen først.

… som obligatorisk opgave

Hvis du følger Grundlæggende Programmering i efterårssemesteret 2021, udgør deltagelse i Programmeringshøsten en obligatorisk aktivitet. Reglerne for deltagelse er da:

Formålet med Programmeringshøst er at stærkt forbedre de individuelle programmeringsfærdigheder for samtlige studerende, hvilket udover fortrolighed med teknisk infrastruktur og programmeringssproget især omfatter personlige rutiner for problemløsning og frustrationshåndtering. Det er derfor meningen, at du forsøger at løse opgaven selv. Der er dog hjælp at hente på

hvor der sidder en ældre studerende, som allerede har lavet dagens opgave i Java.

Akademisk redelighed

Programmeringshøst holdes under de gængse regler for akademisk adfærd og redelighed, især hjælpsomhed og ærlighed.

For at være helt konkret betyder det:

Skriv fx kommentarer i programkilden:

Af Nikolaj Grundtvig; i læsegruppe med Johanne Luise Heiberg.
Af Nikolaj Grundtvig. Tak til Johanne Luise Heiberg for hjælp med at hitte ud af String-biblioteket.
Af Nikolaj Grundtvig. Testgruppe 1 har jeg gjort selv. Idéen til testgruppe 2 her stort set Johanne Luise Heibergs.

Én enkelt sætning er ofte nok. Hvis du ikke skriver noget, gør du implicit krav på, at det afleverede materiale er dit eget.

Niveau

Programmeringshøst er et nyt tiltag på ITU, hvis primære målgruppe er førsteårsstuderende uden forkundskaber i programmering.

Hver opgave kan give mellem 1 og 100 point, og de er konstrueret således, at det er ganske nemt at opnå mindst 1 point, uden at bruge andet end grundlæggende programmeringsfærdigheder. Ofte er hele opgaven nem, og nye programmører har en reel chance for at få 100 point med bare nogle få linjers program.

Nogle opgaver indeholder dog dele, som er betydeligt vanskeligere. Visse opgaver er ærligt talt hundesvære og ligger langt uden for, hvad en ny programmør forventes at kunne håndtere. Det er helt bevidst: færdigheden problemløsning indeholder evnen (og den psykologiske villighed og rutine) til at identificere aspekter, som er for vanskelige.

Alle studerende forventes altså at kunne høste point hver dag. Ingen studerende forventes at kunne høste samtlige 2000 point.

Tidsforbrug

En erfaren programmør bør kunne klare den nemme del af hver opgave på nogle minutter.

Hvis du her meget disciplineret eller konkurrencepræget, kan du altså stå op hver morgen klokken lidt før seks og få det gjort mens kaffen brygger. Der er en fælles pointtavle, så du kan konkurrere mod dig selv eller andre.

Men vær opmærksom på, at programmering er vanskelig, fordi programmører laver fejl. Det er typisk detaljer, som virker »åndssvage« i bakspejlet (omdøbte variable, tåbelige indeksfejl, misvisende indrykninger, tanketorske, misforståede biblioteksfunktioner, osv.). Men disse fejl er uundgåelige, og en stor del af formålet med Programmeringshøsten er at optræne individuelle rutiner til netop fejlfinding. Dels skal man opnå mesterskab i det pågældende programmeringssprog, dels skal man opnå rutine og villighed til at sætte spørgsmålstegn ved det, man selv lige har skrevet. Det er psykologisk vanskeligt at finde sine egne fejl, men uden tvivl en af de mest værdifulde generelle færdigheder, som man opøver som programmør.

Desværre tager det tid, ikke mindst i starten. En opgave, som »egentlig« bør kunne klares på fem minutter, kan altså uden videre tage ti gange så meget tid bare til fejlfinding. Det er meningen. Vær sød mod dig selv.