Kursanalys, 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

Kursen gavs nu för sjätte gången i med samma laborationer som examination. Laborationerna fungerar fortfarande mycket bra. En större förändring gjordes. Ett tydligare individuellt moment i examinationen infördes: Individuella muntliga förhör på det som laborationerna 1 och 2 avser att lära ut. Dessa muntliga förhör ersätts med kontrollskrivningar för dem som vill.

Kraven för betyget sex ändrades något genom att även uppgifter utan direkt anknytning till matematik eller fysik godtogs.

Även kraven för betyg 4 gjordes lite lättare genom att man inte behövde skriva en rapport om sitt program för att få 4. En tydligare hänvisning till J-uppgifterna gjordes också i anvisningarna.

Kopior på de flesta av föreläsningens OH-bilder har delats ut i början av varje föreläsning.

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. Två stora problem dock: Låg närvaro på all undervisning, föreläsningar övningar och laborationer. Låg prestations- och examinationsgrad jämfört med tidigare år. Ett upptäckt fall av fusk där ett par studenter försökte redovisa någon annans program.

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. Låg närvaro, speciellt på övningarna.

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 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 hierarkiska objekt 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, 5 eller 6 krävs ytterligare en projektuppgift som genomfördes individuellt och 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 och 6 lämnas en lite längre skriftlig redogörelse in. Huruvida betyget blir 4, 5 eller 6 avgörs utifrån kvalitén på det skriftliga materialet (betyget 3 är också möjligt när kvalitén på programmet var alltför låg eller ingen programlista eller redogörelse lämnats in).

För betyg 6 finns en några extra krav som skall uppfyllas förutom att redovisningens kvalité skall vara tillräckligt hög för betyg 5. De extra krav som användes i år var att programmet skall vända sig till en viss målgrupp och programmets gränssnitt skall utvärderas.

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 i år avser att höja den lägsta nivån för godkänd kurs!.

Elevsynpunkter

En kursenkät besvarades av endast 14 elever. Dessa gav kursen övervägande positiva omdömen både vad gäller innehåll och genomförande. Några av de kritiska synpunkterna att ta fasta på är att undervisningen, och då speciellt salsövningarna, är för lätt för dem som kan programmera innan, betygskriterierna för lab4 är inte tillräckligt tydliga, att det är för mycket OH-bilder på föreläsningarna.

Önskemål om en mer avancerad övningsgrupp förs fram i varje kursutvärdering, försök med en sådan gjordes i kursomgången 01/02 men blev ingen framgång.

Någon diskussion med särskilda studeranderepresentanter har tyvärr inte genomförts. Har dock ändå diskuterar kursen och studiesituationen i allmänhet med många studenter.

Kurslitteratur

Boken Java direkt med Swing är mer omfattande och dyrare än den tidigare upplagan Java direkt. Det nya materialet handlar om Swing och en del awt-material har utelämnats. Detta är till nackdel för kursen eftersom laborationerna fortfarande använder awt och undervisningen innehåller endast orientering om Swing. Flera studenter jag pratat med har inte använt boken alls under kursen, några har förstås haft en annan bok, andra har klarat sig med material från föreläsningar och övningar och från Internet. Av de 14 som besvarat kursenkäten ges boken ändå ganska bra betyg. En student har inte använt boken, omdömena hyfsad, bra och mycket bra har givits av 6, 5 respektive 2 personer. Ingen har svarat att den är mindre bra eller dålig.

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 lagom stor. Det är dock enormt stor spridning.

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

En liten men viktig förändring att genomföra är att se till att många fler studenter svarar på kursenkäten. Detta kan åstadkommas dels genom att den läggs ut mycket tidigare än vanligt (i februari eller mars i stället för april eller maj).

Anvisningar för lab4 görs tydligare och delas ut tidigare, innan undervisningen på kursen är slut, förhoppningsvis kan det få fler att skaffa sig högre betyg än tre. Betyget 6 kommer att tas bort till nästa kursomgång så lab4-anvisningarna måste ändras m.a.p detta.

Lite mindre OH-bilder på föreläsningarna.

Gå ifrån begreppet "kursbok" och föreslå fler böcker, lämpliga för olika grad av förkunskaper och ambitionsnivå.

Förändringar som kan övervägas till 2005

Annan form på kursen, annat språk att börja med (Python, Haskell ?).
Om man behåller Java, prova kanske BlueJ
Nivågruppering i någon form.
Återinföra tenta eller möjligen ett system som på Indan där man samlar poäng genom labbar och småskrivningar och får sitt betyg.
Föreläsningar med dator i.st.f. OH-bilder, demonstrera program på dator.