Nada

Kursanalys för Programmeringsteknik med PBL för V1, läsåret 2002-2003

Författare: Erik Forslin.

Kursdata

Kurs 2D1311, Programmeringsteknik med PBL för V (4p)
Momentindelning LAB1 G/U (1p), LAB2 G/U (1p), LAB3 3/4/5 (2p)
Kursen genomförd period 1-2 2002-2003
Föreläsningar 14 h (+7 h), 7 st (+7 st uppföljning)
Problemlösning
(datorlaborationer)
52 h, 26 st
Kursledare Erik Forslin
Ansvariga handledare Michael Ahlberg, Måns Rullgård, Thomas Larsson
Handledare Carl Christian Löfroth Christensen, Gustav Hallén, Joel Gunnarsson Sjöstrand, Jonas Sjöstrand, Kristian Ronge, Marko Petrovic, Martin Gülich, Minna Laaksonen, Niklas Vargensten, Patrick Liu, Peter Osagie, Stefan Freyhult, Stefan Thorén, Tobias Gyllenflykt, Vahid Mosavat
Kurslitteratur Torkel Franzén: "Java från grunden", andra upplagan, Studentlitteratur, 2001.
David Flanagan: "Java in a Nutshell", Third Edition, O'Reilly, 1999.
 



Statistik
2001-2002 2002-2003
alla V-01 alla V-02
Antal registrerade studenter 109 98 100 78
Uppskattat antal aktiva studenter 97 89 77 65
Färdiga med LAB1
(en månad efter kursslut)
100% 100% 39% 40%
Färdiga med TEN2/LAB2
(en månad efter kursslut)
72% 73% 39% 40%
Färdiga med moment LAB3
(en månad efter kursslut)
69% 70% 55% 58%
Prestationsgrad
(en månad efter kursslut)
78% 78% 47% 49%
Examinationsgrad
(en månad efter kursslut)
61% 62% 36% 40%
Färdiga med LAB1
(Efter P4:s slut)
100% 100% 39% 60%
Färdiga med TEN2/LAB2
(Efter P4:s slut)
76% 75% 57% 60%
Färdiga med moment LAB3
(Efter P4:s slut)
75% 75% 57% 62%
Prestationsgrad
(Efter P4:s slut)
82% 81% 53% 61%
Examinationsgrad
(Efter P4:s slut)
68% 69% 48% 62%

Att notera.

Mål

Enligt studiehandboken är kursens mål att ge för att studenterna ska Kursens första del (LAB1) innehåller en introduktionsdel och en instuderingsdel. Introduktionsdelen består i att lösa ett problem i fyra steg (fyra deluppgifter). Deluppgifterna löses genom att på papper skriva ned variabler som krävs respektive de steg som måste ingå i algoritmen samt baserat på detta skriva ett komplett program. Introduktionsdelen examineras inte. Instuderingsdelen bygger på ett stort antal instuderingsfrågor som varje student ska lösa individuellt på samma sätt som introduktionsdelen. Under kursens första del finns det möjlighet att ta frivilliga datoriserade prov för att på så sätt minska omfattningen/kraven av kursens andra moment (LAB2). Kursens första del har som mål att få studenten att jobba enligt en programmeringsprincip för att senare kunna ta sig an större programmeringsuppgifter (LAB3) samt att vänja studenten vid programmeringstekniska begrepp och grunder (LAB2).

Kursens andra del (LAB2) består av ett datoriserat prov. Provet är ett examinationsmoment med syfte att både ge kursledaren och studenten klarhet i vad studenten kan inom programmeringstekniska begrepp och grunder. Ett godkänt LAB2-moment innebär automatiskt godkänt LAB1-moment. För godkännande av LAB1 separat krävs redogörelse av instuderingsuppgifterna.

Kursens tredje och mest omfattande moment (LAB3) är att lösa en individuell programmeringsuppgift. Detta moment avgör också studentens slutbetyg i kursen.

Kursen ger den intresserade en gedigen grund att stå på inför vidare programmeringsstudier, antingen i rent datalogiska kurser eller inom områden där programmering och datateknik tillämpas. Kursen ger också en bra inblick i vilka krav en ingenjör kan ställa på datorprogram och programutvecklare samt den terminologi som används av programutvecklare, vilket är till nytta för de ingenjörer som i framtiden kommer ställa krav på sina datorhjälpmedel.

Förändringar inför denna kursomgång

Sammanfattning

Tekniskt/administrativt så var årets kurs en mindre lyckad. Under den tidiga sommaren beslöts det att tentan definitivt skulle ersättas av annan (ej utvecklad) examinationsform, samt att det krångliga och missvisande bonussystemet (som grund för betyget) skulle ersättas av annat system. Alldeles för få inom programmeringsteknikgruppen insåg att dessa omställningar skulle kräva arbetsinsatser under sommaren för att kursomgångarna under period ett skulle fungera. Resultatet var att ett fåtal personer jobbade alldeles för mycket, framförhållningen under period ett blev alldeles för kort, kursomgångarnas gemensamma regler blev luddiga samt rent tekniska problem i det system som skulle ersätta tentan (EZQuiz). Det bör här betonas att utvecklingen av systemet skulle gå betydligt snabbare om alla i programmeringsteknikgruppen hade bidragit med material till systemet (d v s uppgiftsdatabasen). I jämförelse med förra året var föreläsningarna i år mindre stökiga, vilket jag tolkar som om årets studenter i överlag var mer seriösa. Förkunskaperna och förmågan att snappa upp nya idéer upplevde jag i år som något sämre än tidigare och jag upplevde det som om flera studenter tyckte kursens första halva var tyngre än tidigare år. Trots detta utnyttjades inte handledarna till den grad de borde.

Undervisningen

Av de som besvarat kursenkäten (31 st) anser de flesta att kursen är ganska svår. På frågan om kursen är intressant, relevant och meningsfull visar enkätsvaren att studenterna är neutrala.

De allra flesta förberedde sig aldrig eller sällan inför veckans programmeringstekniksdag. Morgonföreläsningarn (två timmar) var välbesökta och föreläsningsmaterialet och föreläsaren uppfattades i överlag som bra till ganska bra. Enkätsvaren visar dock att det finns både positiva och negativa extremfall. Eftermiddagsföreläsningen/frågestunden (en timme) var betydligt mindre välbesökt, vilket var olyckligt då många studenter i efterhand sade sig ha problem och frågor som behövde klaras ut. En trolig orsak till det låga antalet studenter på frågestunden är att man inte är mottaglig för mer information i samma ämne efter en hel dag. Detta bör beaktas vid beslut av heldagsscheman i framtiden.

Tidigare år har demoföreläsningar varit uppskattade, men under denna omgång togs de bort på grund av KTH:s undermåliga stöd för fungerande teknik och service i föreläsningssalar.

Liksom tidigare ansåg studenterna att de totalt sett lärde sig mest på den individuella programmeringsuppgiften (J-uppgiften). Även introduktionen i kursens absoluta början uppskattades trots att alldeles för få använde sig av den föreslagna programmeringstekniken vid lösning av senare problem. Trots tydligare krav på att kursen handlar om programmeringsteknik så använder sig de flesta studenter inte av någon strukturerad programmeringsteknik (utom under introduktionen).

Handledarna uppfattades som bra men också som väldigt varierande i sin kompetens och förmåga att lära ut. En lysande undantag är Thomas Larsson som får mycket bra omdömen! En brist bland vissa handledare är att de ibland uppfattas som om de försöker skriva om studentens hela program istället för att acceptera och anpassa studentens lösning till det bättre. Jag är osäker på i vilka fall detta inträffat, men generellt sett är all onödig omskrivning är av ondo. Det finns dock fall där stora delar måste skrivas om eftersom programmet inte uppfyller grundkravet på den struktur kursen eftersträvar (typexempel är dåligt avgränsade metoder utan parametrar och returvärden, dålig namngivning och användning av metoder och variabler samt genomgående strukturfel med metoder i "fel" klass).

EZQuiz har utnyttjats under kursens gång. Flera studenter tycker det är bra med ett provsystem i vilket de under kursens gång kan testa sina kunskaper. Dock måste återkoppling på felaktiga resultat ges. Ann Pans (programmeringsteknik för OPEN och K) införande av "provprat" är ett bra exempel på åtgärd som bör utnyttjas mer. Många studenter tycker också att rätt svar ska redovisas då de svarat fel. Detta tror jag är dålig taktik då proven med säkerhet kommer utnyttjas för matchning mellan kryssalternativ och rätt svar utan eftertanke (d v s gammal traditionell "mönstermatchning").

Jämfört med statistik från föregående år är årets resultat sämre. Det första att notera är att antalet studenter med annat studiestatus än det för året avsedda lyckats betydligt sämre (har lägre examinationsgrad) än tidigare år. Samma tendens syns för momentet LAB1, vilket antyder att dessa studenter gett upp tidigt i kursen. Även för studenter med för kursen avsett studiestatus är resultatet sämre. I årets kurs är dock denna statistik troligen mer missvisande än föregående år, då antalet kvarvarande studenter i år var färre än tidigare år (årets statistik baserar sig på 65 aktiva studenter, men enligt mattekurserna i period tre fanns det cirka 55 studenter). Om statistiken korrigeras för detta kan resultaten anses som likvärdiga föregående års resultat. Dock har poängen delats ut senare under kursens gång; tidigare år var det lättare att få poäng på moment LAB1 gentemot i år då LAB1 var striktare kopplat till momentet LAB2.

Examination

Kursen har tre moment vilka alla måste vara godkända. Moment LAB1 med instuderingsfrågor och LAB2 som är ett datoriserat prov samt LAB3 som är J-delen. Godkänt moment LAB2 ger också godkänt moment LAB1. För godkännande av LAB1 separat krävs redogörelse av instuderingsuppgifterna. För godkänt på moment LAB3 krävs godkänd specifikation och granskning av någon annans program alternativt komplett Javadokumentation av det slutgiltiga programmet samt godkänd redovisning av J-uppgiften.

Kurslitteratur

Kurslitteraturen består av en kursbunt (med föreläsningsanteckningar och ett Java-häfte) samt en kursbok ("Java från grunden" alternativt "Java in a Nutshell"). Även andra böcker än rekommenderade kursböcker utnyttjades.

Kursenkät

Se den kompletta och helt oredigerade sammanslagningen av enkätsvaren.

Verkligt kursinnehåll

Vi har hållit oss till kursens detaljschema.

Planerade förändringar

Följande punkter är något som bör beaktas till nästa år:

^ Upp till kurssidan.


Sidansvarig: <efo@nada.kth.se>
Senast ändrad 4 juni 2003
Tekniskt stöd: <webmaster@nada.kth.se>