Kodproven

Kodprovet är ett individuellt prov som görs på tid i datorsalar. Varje kodprov har två uppgifter, en i C och en i Java. För att bli godkänd på kodprovet måste man klara av en C-fråga och en Java-frågorna. Man får två försök på sig under kursens gång. Om man klarar en fråga första tillfället behöver man bara klara en fråga vid nästa tillfälle.

  Datum kodprov 1: 17/10
  Datum kodprov 2: 21/12
  Datum omkodprov 1: 9/1

När anmälan till kodproven öppnas kommer du att få mail med en länk till anmälningsformulär.

Man kan skriva kodprovet på förmiddagen eller eftermiddagen. Man har tre timmar på sig, och man får använda sig av lämpliga editorer som Emacs, Netbeans och Eclipse. Man får inte använda Internet annat än för att läsa Javas API. Man får gärna använda sig av man-kommandot i terminalen för att läsa manualsidor för C-funktioner.

Det är tillåtet att ha med sig en bok om varje programspråk, men tänk på att tiden är för kort för att sitta och läsa "för mycket". Det är okej att ha böckerna på läsplatta.

Efter att tiden är slut lämnar man in kodprovet enligt instruktioner som delas ut på plats.

Exempel på frågor från förr finns i kursens repo. Normalt är att man får skriva ett program per språk som utför någon enkel uppgift, alternativt skriva klart ett program eller följa en utstakad design. Varje fråga bedöms G eller U.

Vi har försökt att rätta automatiskt men det har visat sig svårt eftersom man måste vara mycket noga med hur resultat presenteras för att inte bli underkänd på grund av ett extra mellanslag, eller av att man råkar göra någon olycklig ändring som gör att de automatiska testerna inte längre fungerar. Därför kommer vi att rätta med en bladndning av automatiska och manuella metoder, vilket medför tre saker:

  1. Man kan inte få svaret direkt efter provet
  2. Om man gör små dumheter kan de eventuellt "förlåtas" i rättningen
  3. Om man gör stora dumheter kan man få bassning

Med små dumheter avses t.ex. skriva ut resultatet på felaktigt format eller missa ett enstaka randvillkor.

Med stora dumheter avses t.ex. ett program som skriver ut korrekt resultat men räknar ut det på ett otillåtet sätt (t.ex. hårdkodar utdata per indata istället för att göra en beräkning, eller inte respekterar explicita krav på lösningen), eller använder ett extremt tillkrånglat och bakvänt sätt att skriva kod.

Vi tittar inte på benämning av variabelnamn etc. eftersom kodprovet har hårda tidsgränser.

Vanliga frågor

Q: Hur förbereder jag mig bäst på kodprovet?
A: Genom att programmera mera! Lös t.ex. den frivilliga extrauppgiften som en övning (eller gör delar av Lagerhanteraren 2.0 om du redan gjort den).

Q: Måste jag skriva på skolans datorer eller kan jag använda min egen?
A: Du måste skriva på skolans datorer. Ni kommer eventuellt att använda en särskild inloggning utan tillgång till det vanliga filsystemet eller Internet.

Q: Vad kommer på kodprovet?
A: Se under gamla kodprov.

Q: Vilken betygsskala används?
A: Kodprovet motsvarar 5 HP och har betyget U eller G. Ditt betyg på kursen avgörs helt av målen. Notera att kodprovets syfte inte är att mäta din skicklighet som programmerare, utan lägga en miniminivå. Det tjänar som motivator/forcing function för att tvinga fram den student som normalt sätter sig i baksätet i framsätet och se till att kunna skriva kod själv. Annars kommer man nämligen inte att klara kodprovet.

Q: Vilka hjälpmedel får jag ha?
A: Kursböcker. I varje sal kommer det finnas minst en bok om C och Java att låna tillfälligt om man behöver (av godtycklig art). Vidare får du använda man-sidorna. Du får inte använda gammal kod, inte gå ut på nätet, etc. Elektroniska kursböcker är tillåtna. Vi föredrar att du har en läsplatta, men en bärbar dator går också bra.

Q: När går kodprovet?
A: 17/10 och 21/12 (2016) är schemalagda ordinarie kodprov. Vi kör två prov, ett på förmiddagen och ett på eftermiddagen. Du får önska förmiddag eller eftermiddag när du anmäler dig. >Ett omkodprov går 9/1 2017 och fungerar exakt som de ordinarie.

Q: Hur anmäler jag mig?
A: Klicka här.

Q: Vad händer om jag inte vet hur man t.ex. kör valgrind eller kan kompilera med GCC?
A: Då får du problem. Man måste kunna kompilera, skriva ett nytt program från scratch, veta vad main-funktionen heter, veta hur man använder gdb hjälpligt, kunna köra valgrind, etc.

Q: Varför kommer det en Java-fråga redan 17/10 på kodprovet?
A: Två skäl: (1) Gamla studenter som skriver om provet och bara har Javan kvar. (2) De som redan kan Java och vill "bli av med den" redan nu får den möjligheten/får pröva.

Q: Vad händer om jag inte klarar av kodprovet?
A: Observera att det är två kodprov schemalagda under kursen. Du får möjlighet att göra C och Java båda gångerna. Vi anser att ett gammalt kodprovsresultat är giltigt under nästa kursomgång, dvs., klarar du C men inte Java HT 2016 räcker det om du klarar Javan under VT/HT 2017 för att bli godkänd på kodprovet. Om du inte klarar Javan före VT2018 måste du göra båda delarna igen.

Q: Jag har hört talas om att man kan få rest på kodprovet...
A: Ja. Tidigare år har vi ofta tillämpat rest för mindre fel, men detta sker helt i mån av tid för oss som ger kursen. Huruvida vi tillämpar samma system detta år, är beroende på vilka fel som begås och andra yttre omständigheter.

Gamla kodprov

Som du säkert redan har sett finns gamla kodprov på kursens repo på GitHub Gör INTE misstaget att utgå från att det blir frågor om ett visst ämne, bara för att det varit så på tidigare kodprov.