Nada

Kursanalys för Programmeringsstil, våren 2002

Nedan följer en kursanalys av kursen Programmeringsstil för D1 som är författad av kursledaren Joel Brynielsson. I texten refereras till en enkät gjord med ACE på webben som utformats i samråd med teknologkursutvärderarna på D. Enkäten har fyllts i av 54 personer, av de 168 som varit aktiva på kursen. Det finns en länk till enkätsvaren i slutet av detta dokument.

Kursdata

Kurs:2D1351, Programmeringsstil, 4 poäng
Examination:Projektuppgift (betyg G eller U)
Kursen genomförd:Period 4, 2001/2002
Föreläsningar:32 timmar
Kurslitteratur:Ian Sommerville: Software Engineering
Antal studenter:166 (+ 2 som registrerades förra året)
Avhopp under kursens gång:10
Antal direkt avhoppade:2
Kursledare:Joel Brynielsson
Antal projektgrupper:3
Gruppledare:Ronnie Johansson, Jens Rathsman, Joel Brynielsson

Mål

Kursens mål är att för att studenterna ska Programmeringsstil är en kurs som ges för D1 i slutet av deras första år. Kursen har växt fram från Programmeringsparadigm (2D1350) och ändrat karaktär genom tiderna till att till slut bli en projektkurs med inslag av mjukvarukonstruktion som examineras löpande under kursens gång. Kursen består av en föreläsningsserie och ett större projektarbete som löper parallellt. Föreläsningsserien är tvådelad med dels grundläggande föreläsningar i mjukvarukonstruktion och dels gästföreläsningar som ger praktiska exempel på hur mjukvaruprojekt bedrivs i industrin. Stoffet från föreläsningsserien tillämpas omedelbart i det pågående projektet där man under kursens gång lämnar in en kravspecifikation, ett designdokument och ett implementationsdokument.

Sammanfattning av årets kursomgång

I årets upplaga av kursen blev teknologerna tilldelade något av följande projekt: Möjlighet fanns att byta ut projektet mot ett helt eget projekt. Det fanns också en mängd skarpa projekt med en intresserad extern uppdragsgivare att jobba mot.

Kursen fick till stor del läggas upp på nytt då det inte fanns särskilt mycket material att återanvända vilket gjorde att kursen i mångt och mycket ändrade karaktär. Kursen upplevs som medelsvår, men anses vara tidskrävande. Examinationsgraden är bra och prestationerna överlag goda. 87% tycker att kursen är intressant och meningsfull. 80% tycker att kursen som helhet är bra eller mycket bra.

Nyckeltal

Examinationsgrad 2002-09-06: 95% (159 av 168 studenter)
Examinationsgrad 2002-06-20: 86% (145 av 168 studenter)
14 studenter jobbade under sommaren med att komplettera för att bli klara med kursen. Examinationsgraden har beräknats på de 168 studenter som lämnat in en eller flera uppgifter i kursen.

Nytt för i år

En hel del förändringar gjordes inför årets kursomgång:

Undervisning

Föreläsningsserien är tvådelad: Studenterna tyckte att fördelningen mellan gästföreläsningar och vanliga föreläsningar var bra vilket är anmärkningsvärt när endast 13% säger sig ha närvarat på gästföreläsningarna (det var runt 25% i verkligheten de gånger jag räknade). Anledningen till den dåliga närvaron var att gästföreläsningarna gick klockan åtta på morgonen och inte var obligatoriska.

Jag är inte helt nöjd med mina egna föreläsningar vilket avspeglas av enkätsvaren som inte är dåliga men ändå inte de "100%" jag velat ha. 70% tyckte att pedagogiken var acceptabel eller bättre, men 28% tyckte att pedagogiken var mindre bra eller sämre. Den vanligaste kritiken berör ett alltför intensivt användande av OH-bilder med kommentarer om "OH-race ā la lumpen" och att "Joel gör sig bäst då han talar mer fritt". Kommentarerna överensstämmer med vad jag själv tycker att jag vill ändra för framtiden.

Gästföreläsningarna har varit mycket omtyckta av de få som gått på dem och då i synnerhet Front, Microsoft och Prover som jag varmt rekommenderar för framtida kurser. Jag valde att inte ha gästföreläsningarna som obligatoriska och detta i samband med att de alla gick klockan åtta på morgonen resulterade i ett svalt intresse från studenterna med endast cirka 25% av studenterna närvarande. Följande studentkommentar illustrerar mycket känslan man som kursledare fått efter kursen:

Tycker faktiskt det var klent av klasskamraterna som inte dök upp då Joel "bad" om det och i gengälld ställde in någon och påtalade frivilligheten på hans egna repetitionsföreläsningar.
Jag var nog naiv då jag trodde att man i första årskursen inte bara är intresserad av föreläsningar som direkt ger avkastning i form av högskolepoäng. Tyvärr kan jag inte rekommendera att ha icke-obligatoriska gästföreläsningar i första årskursen.

Examination

Kursen har examinerats löpande med så kallad alternativ examination genom att man vid fyra tillfällen lämnat in dokument och vid ett tillfälle visat upp det som gjorts i datorsal. Efter att ett dokument lämnats in återfår studenten personliga kommentarer gällande dokumentet. Om dokument i något avseende inte når över ställda minimikrav måste studenten komplettera.

Min uppfattning är att alternativ examination ligger i tiden. Studenterna jobbar mycket under kursens gång och färre hoppar av vilket denna kurs utgör ett bra exempel på. Arbeten som gjorts i kursen håller ofta en anmärkningsvärt hög standard vilket ger mig intrycket av att de allra flesta valt att satsa lite extra på ett roligt projekt istället för att bara klara sig igenom kursen med minsta möjliga marginal. Jag (och 96% av studenterna) är mycket nöjda med den alternativa examinationen.

Kurslitteratur

Föreläsningarna i kursen har tagit upp valda delar av följande bok:
Ian Sommerville. Software Engineering. 6:e upplagan, Addison-Wesley, 2001.
ISBN 0201-39815-X. 720 sidor.
Pris: 600 kr på kårens bokhandel.
Boken har en omfattande hemsida med exempelkod, inledande kapitel, ordlista, OH-bilder, m.m.
"Software Engineering" är en bra och heltäckande bok när det gäller mjukvarukonstruktion som i flera avseenden gått utanför omfattningen av denna kurs. Förutom att boken ger en bra framställning av området har den också valts för att ge teknologen en användbar referens för framtiden. Litteraturen har inte tenterats av och det har explicit angivits att det stod studenten fritt att välja annan (eller ingen) litteratur om så önskades. Detta resulterade i att 70% inte använde sig av kursboken.

Förutom denna bok har en rad böcker inom området mjukvarukonstruktion såväl som referenslitteratur i Java presenterats. Dessa har också funnits till utlåning vilket har utnyttjats ganska flitigt av en del studenter.

Elevernas synpunkter och kursledarens kommentarer

En enkät (54 svar) gjordes med ACE. Enkäten utformades i samråd med teknologkursutvärderarna på D. Fullständigt resultat finns på webben. Här följer en sammanfattning av de svar som inte behandlas på annat ställe i analysen med kommentarer från kursledaren.

Förkunskaper

24% tyckte inte att de hade nog förkunskaper då kursen började. Detta tycker jag mig också ha märkt under kursens gång och jag tycker med tanke på kursens krav att detta är anmärkningsvärt. Kraven på programmeringskunnighet för att kunna gå kursen är att man skall kunna sätta ihop ett sammanhängande Javaprogram. Detta bör man klara av efter att ha läst åtta inledande högskolepoäng i datalogi, men det fanns uppenbarligen studenter som tidigare tagit genvägar och därmed fick det jobbigt i kursen.

Svårighetsgrad

Överlag tyckte studenterna att kursen var medelsvår. Dock fanns viss spridning i denna syn där 25% tyckte att kursen var lätt eller mycket lätt och 30% tyckte att kursen var svår eller mycket svår. I detta sammanhang tycker jag att det är värt att notera att studenterna själva i hög grad fått välja nivå på sina arbeten och därmed själva kunde påverka svårighetsgraden.

Arbetsbelastning

Studenterna har ägnat mycket tid åt kursen i proportion till sitt totala studieåtagande. Med tanke på att studenterna själva kunnat välja nivå på sina arbeten tolkar jag detta som någonting mycket positivt. Många har valt att frivilligt jobba mer än de behövt med kursen. Tyvärr fanns det nog också de som jobbade mer än de ville med kursen p.g.a. bristande Javakunskaper. Det är tråkigt men någon gång måste man ta igen det som tidigare försakats.

Kurslitteratur

70% använde inte boken och av de som använde den tyckte 4% (2 st) att den var dålig. Övriga 24% som läste boken tyckte att den överlag var bra. Bland fritextkommentarerna återfinns anmärkningsvärt många negativa kommentarer främst från de studenter som valde att inte köpa boken i stil med:
För dyr. Är glad att jag inte köpte den, för jag tror inte jag skulle använt den så mycket eallafall.
Min slutsats är att studenterna i hög grad utan underlag ratat en bra bok.

Kurshemsida

Studenterna är nöjda med informationen på kurshemsidan vilket känns bra då jag lagt mycket kraft på att tillhandahålla information där.

Examination

Den alternativa examinationen uppskattades av så gott som alla som svarade på enkäten.

Slumpvis gruppindelning

Följande fritextsvar tycker jag bra sammanfattar studenternas åsikter gällande den slumpvisa gruppindelningen:
Väldigt bra. Det gjorde att man slapp problemet att försöka hitta någon att arbeta tillsammans med, samtidigt som man fick träna på att samarbeta med någon som man (i alla fall i mitt fall) inte alls kände innan.
Synpunkterna när det gäller den slumpvisa gruppindelningen varierar stort men överlag tror jag det är en nyttig erfarenhet. Negativt blir det för de studenter vars labbkamrat slutar på kursen. Detta scenario illustrerar heller inte en jobbsituation på det sätt som är önskvärt. I några fall har detta skett så pass sent att det blivit svårt att finna en bra lösning på problemet annat än att den kvarvarande studenten fått slutföra kursen själv. Jag tror dock att det positiva med slumpvis indelning överväger det negativa.

Verkligt kursinnehåll

Kursen har främst innehållit projektarbete och erfarenheter från industrin. Värt att notera för framtida kurser är att mjukvarukonstruktion enligt kapitel 1, 3, 5, 10, 12 och 19.4 i Sommerville tagits upp på föreläsningarna. Sommerville finns att låna hos Joel för den intresserade.

Planerade förändringar till kommande år

Kursen ges ej nästa läsår, men jag har nedan skisserat vad man bör tänka på vid planerandet av framtida liknande kurser. Problemställningarna rör sig alla kring det svåra faktum att man i en projektkurs med inslag av mjukvarukonstruktion vill lära ut saker där det inte finns någon strikt sanning. Att 1+1=2 kan man bevisa men det är inte lika självklart att det skrivs bättre mjukvara bara för att man gör en ordentlig kravspecifikation.

Valet av kursbok är svårt. Det finns en uppsjö av litteratur inom området, men de allra flesta titlar är alltför subjektiva och inriktar sig mot en speciell metodik som författaren förespråkar. Min uppfattning är, trots studenternas kritik, att "Software Engineering" av Ian Sommerville är den bästa boken på området men att studenter i första årskursen inte är mogna för en kursbok överhuvudtaget eftersom att de inte känner att en bok ger dem underlag att bättre klara kursen. Min rekommendation är alltså att använda Sommerville i en kurs för äldre studenter och att helt hoppa över kursbok i en projektkurs för studenter i första årskursen.

Gästföreläsningar från industrin har varit uppskattat och bör finnas med i samma grad som tidigare. Däremot bör man göra dem mer attraktiva genom att de inte ligger klockan 08:00 på morgonen. I en kurs för nyantagna studenter rekommenderar jag att göra dem obligatoriska.

Studenterna i årets upplaga av kursen kopierade i hög grad den exempeldisposition jag gav för dokumenten. I kommande kurser rekommenderar jag därför något av följande:

Bilaga: Enkätsvar

Bilaga: Kursprogram

^ Upp till kursens webbsida.


Sidansvarig: Joel Brynielsson <joel@nada.kth.se>
Senast ändrad 1 november 2002
Tekniskt stöd: <webmaster@nada.kth.se>