Kursanalys progk04

Programkonstruktion för F, 2D1339, 5 poäng

Kursanalysen avser i första hand programmeringsdelen om 4 poäng, prestations- och examinationsgrad redovisas också för introdelen.

Kursdata

Mål

Kursens mål är att ge eleverna för att de effektivt ska kunna kunna utnyttja datorer i sina fortsatta studier och i arbetslivet. Kursen ska även ge den bas eleverna behöver för att kunna läsa fortsatta kurser inom datalogi och numerisk analys.

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

Man kan inte längre kan få betyget 6. Från och med i år får uppgiften för högre betyg än tre göras i tvåpersonsgrupper. Förra årets nyhet, individuella muntliga förhör eller kontrollskrivningar 2 gånger under kursen behölls.

Sammanfattning

Både elever och lärare tycks vara nöjda med kursen. Stämningen bland eleverna har varit god. De elever som valt att göra den extra projektuppgiften har lyckats producera mycket välskrivna program som klart visar att de har nått kursens mål. Det är svårare att bedöma hur kunskapsnivån ligger för de elever som nöjde sig med att bara göra de obligatoriska uppgifterna. Prestations- och examinationsgraden är låg men på ungefär samma nivå som förra året. Dock var det färre som var klara med kursen vid kursens slut. Alldeles för många låter bli att gå på de schemalagda laborationerna och vill redovisa senare. Detta är ett problem som måste åtgärdas.

Undervisningen

Undervisningen bedrevs på ett traditionellt sätt. Föreläsningarna användes för att ge den teoretiska basen, övningarna för att visa hur man praktiskt konstruerar program och laborationerna för att eleverna själva ska få erfarenhet av programmering.

Det centrala i den här kursen är laborationerna. Dessa har karaktären av små programmeringsprojekt som skall genomföras parallellt med att man lär sig teknikerna. Första projektet handlar om att beräkna och grafiskt visa hur ljusstrålarna från en ljuskälla bryts i ett antal linser. Andra projektet handlar om att numeriskt lösa vågekvationen och animera resultatet. Tredje projektet handlar om simulering av hur personer förflyttar sig i en byggnad. Uppgifterna är konstruerade specellt för den här kursen och de två första har en medveten koppling till fysik.

Varje projektuppgift introducerar nya programmeringstekniker. I den första uppgiften måste eleverna sätta sig in i grundläggande programelement som variabler, villkor, slingor, metoder och vektorer. I den andra uppgiften används en uppdelning av programmet i olika moduler: en för den fysikaliska modellen, en för den grafiska presentationen och en för användarens manipulation av simuleringsparametrarna. I den tredje uppgiften används en hierarki av klasser. Objekt skapas för att representera olika aktörer i en realtidssimulering.

Examination

Kursen examineras genom laborationer och kontrollskrivningar/individuella förhör. För att få godkänt på kursen krävs att man genomför och kan redogöra för de tre uppgifterna i grupper om två (eller enskilt). För att få betyg 4 och 5 krävs ytterligare en uppgift som redovisas både muntligt och skriftligt. Den som är nöjd med betyget 4 behöver endast lämna in en prydlig utskrift av programmet, för betyg 5 måste en lite längre skriftlig redogörelse lämnas in.

Laborationerna 1-3 genomförs i grupper om två personer och studenterna får ganska detaljerade anvisningar till laborationsuppgifterna. Kursen har ingen tentamen utan laborationerna är hela examinationen. Det finns en risk att studenter "slinker igenom" kursen utan att ha lärt sig så mycket som de borde (kommentarer från fortsättningskursen pekar även på detta). De kontrollskrivningar/individuella förhör som infördes förra året avser att höja den lägsta nivån för godkänd kurs!.

Elevsynpunkter

En kursenkät besvarades av endast 10 elever. Det är svårt att dra slutsatser av så få svar. 9 av 10 tycker att labanvisningarna är bra eller mycket bra, 6 av 10 tycker att undervisningen är bra eller mycket bra och att kursen är intressant och meningsfull. 7 av 10 har inte använt Skansholms bok (den förs inte fram som kurslitteratur). Det finns gott om kommentarer som pekar åt olika håll. Här återges endast några exempel: Någon önskar sig datordemonstrationer på föreläsningarna och någon (annan?) vill ha lärarledda övningar i datorsal i stället för de vanliga övningarna.

Två utvärderingsmöten med studeranderepresentanter genomfördes. Representanterna var mycket positiva. Dock var det tre elever som alla var mycket positiva till kursen och gjorde sina uppgifter inom den rekommenderade tiden.

Kurslitteratur

Kursen har från och med i år ingen officiell kurslitteratur. De flesta vill dock ha en bok och Java direkt med Swing är en bra och lämplig bok som får bra omdömen av studenterna. I kursprogrammet föreslås ytterligare några böcker.

Kursens belastning för eleverna

Enkätsvar (även om de är få), samtal med elever och tidigare års utvärderingar av samma kurs tyder på att belastningen är ungefär lagom stor. Studeranderepresentanterna tyckte att man fick "jobba mer för poängen" i andra ämnen. Enkäten hade en övervikt av elever som tyckte att kursen krävt mer arbete än vad som motsvarar 5 poäng.

Förkunskaper

Kursen har sedan 2001 en introduktionsdel som ska ge dem som är rena nybörjare på datorer och programmering tillräcklig vana vid Nadas datorsystem för att klara programmeringskursen. Jag anser att denna fungerar hyfsat och att endast några få studenter nu har problem med kataloger, filer m.m. under programmeringen.

Många elever kan dock programmera mycket bra redan när de börjar på KTH. En del av dessa lär sig en hel del av våra laborationer men inte alla. Man kan fundera på om man borde göra ett snabbare "spår" genom kursen för dem som har mycket goda förkunskaper.

Planerade förändringar

Andelen studenter som slutför kursen medan den verkligen pågår har sjunkit. Då det inte finns någon tydlig tidsgräns när kursmomenten måste vara klara är det många som skjuter upp hela kursen eller delar av den och ber att få redovisa efter kursens slut, utanför schemat. Detta innebär att handledare under schemalagda pass är sysslolösa medan kursledaren tar emot många redovisningar utanför schemalagd tid. Detta är inte bra och måste åtgärdas. Nästa år kommer ett system med tydliga tidsgränser för laborationerna att införas med någon belöning för redovisning i tid (eller bestraffning om man ej redovisar i tid).

Förra årets avsikt att få fler att besvara kursenkäten har tyvärr inte lyckats så jag framför det igen som planerad förändring till nästa år.

Det är alldeles för få som får betyget fyra på kursen. Nästan ingen gör laboration 4 och siktar på betyg fyra. De som ger sig på lab4 siktar på betyg fem, några få av dem når inte ända fram och får fyror. Det är för stort steg mellan tre och fyra. Ett nytt system planeras där eleverna får samla poäng från laborationer (med nya extrauppgifter) och kontrollskrivningar. Labredovisning i tid skall ge mer poäng. Betyg fyra skall kunna erhållas utan att göra den fjärde laborationen om man redovisar de obligatoriska labbarna i tid, ev. med extrauppgifter samt klarar kontrollskrivningarna.

Förändringar som kan övervägas

Annat språk att börja med (Python ?)/ annat språk hela kursen ?
Om man behåller Java, prova kanske BlueJ.
Föreläsningar med dator i.st.f. OH-bilder, demonstrera program på dator.