Kursanalys progk07

Programkonstruktion för F, DD1342, 6 hp

Kursdata

  • Kursbeteckning: Programkonstruktion för F, DD1342, 6 hp
  • Tid: Början av oktober 2007 - början av mars 2008 (motsvarar period 2-3 07/08)
  • Lärare:
    Kursledare och föreläsare: Ann Bengtson
    Övningsassistenter: Henrik Ygge och Ann Bengtson.
  • Schemalagd tid:
    Föreläsningar: 24 timmar (2 timmar/vecka)
    Övningar: 22 timmar (2 timmar/vecka)
    Laborationer: 26 timmar (2 timmar/vecka + 1 extra)
  • Antal övningsgrupper: 2
  • Antal registrerade elever: 114 (F-07:or registrerade i res)
  • Kurslitteratur:
    • Böcker:
      Jan Skansholm: Java direkt med Swing (femte upplagan), Studentlitteratur, 2005. Java direkt med Swing är i första hand lämplig för dem som redan kan programmera.
      Java, Java, Java - Object Oriented Problem Solving av Ralph Morelli och Ralph Walde (OOPS). Den senare boken är en omfattande bok för nybörjare.
    • Laborationsanvisningar
  • Examination: Kursen examineras genom laborationsuppgifter och lappskrivningar.
  • Resultat: Antal registrerade: 114
    Genomfört och klarat kursen under läsåret: 88 st (82 st F07, 6 st äldre)
    Betyg E: 22
    Betyg D: 12
    Betyg C: 47
    Betyg B: 2
    Betyg A: 5
  • Prestationsgrad Prestationsgraden beräknas som antal presterade poäng dividerat med antalet möjliga poäng för de registrerade eleverna: Kursen har bara ett Ladok-moment om 6 hp. Prestationsgrad blir då detsamma som examinationsgrad. Det skulle gå att räkna ut en prestationsgrad > examinationsgraden då kursen innehåller ett antal småmoment som registreras i res. Har dock inte gjort det.
  • Examinationsgrad (Antalet elever som klarat hela kursen)/(Antalet elever som gjort något på kursen) Endast F07-or: 82/108 = 76%
    Inklusive äldre som klarat kursen i år: 88/114 = 77%
    (Antalet elever som klarat hela kursen)/(Antalet elever som gjort någon av de "riktiga labbarna" eller två lappskrivningar) = 82/100 = 82%.

Mål

Den fullständiga målformuleringen finns i studiehandboken. Sammanfattningsvis kan man säga att efter avslutad kurs skall eleverna kunna
  • skriva små program där styrstrukturer, funktioner och enkla datastrukturer används effektivt
  • skriva små program där objekt används som data
  • skriva program där objekt används som programmoduler med olika ansvarsområden
  • konstruera enkla grafiskt användargränssnitt
  • kombinera alla punkterna ovan
Kursen skall ge nödvändiga förkunskaper för kommande kurser i datalogi och numerisk analys.

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

En stor förändring är förstås det nya betygssystemet med bostavsbetygen A-E samt F och FX. Kursens poängsystem anpassades till den nya betygsskalan genom att fler poäng infördes. Den grundläggande tanken i poängsystemet nämligen att tre godkända laborationer (ej startlabben) i tid ger godkänt på kursen gäller fortfarande. Poänggränsen för att få betyget 4 var förut satt så att man måste göra kursens två största labbar (Brownsk rörelse och Betygslistor) för att nå dit. Detta villkor gäller nu betyget C. Tidsbonusen (extra poäng för att bli klar i tid med uppgifter) minskades något. Även poängen för lappskrivningarna minskades lite grann.

En annan förändring är att en ny s.k. komigång-laboration införts som eleverna gör före de ordinarie labbarna. Den nya startlabben har kommit till efter önskemål från studeranderepresentanter både från progk05 och progk06 som tyckt att den tidigare första labben (Linser) varit för svår.

En omarbetning av labb3 (som var ny i progk06) gjordes också.

En del nytt material till föreläsningar och övningar togs fram med syftet att ansluta till den rekommenderade boken för nybörjare (OOPS) i förhoppning om att ge bättre stöd till dem som tycker kursen är svår.

Sammanfattning

Det var en jätterolig kursomgång med mycket och bra kontakt med eleverna och där jag vet att många tyckte att kursen var väldigt bra, lärorik och rolig. Det var också en hel del studenter som tyckte att kursen var svår, särskilt i början och för vilka ansträngningarna med en lättare start på kursen riktigt räckte till.

Närvaron på föreläsningar och övningar har varit god. Det är särskilt glädjande att fler studenter än väntat gått på övningar. Vi behövde ha två grupper ända till sista övningen.

Det är färre än väntat (tror jag) som fått betygen A och B. Det är endast fem st A och två st B. Progk06 hade för ett år sedan 11 femmor. Det ökade till 21 st i augusti.

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 programmeringsprojekt som skall genomföras parallellt med att man lär sig teknikerna. Första "riktiga" 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 simulera Brownsk rörelse. Tredje projektet handlar om att läsa en fil med persondata och uppgifter om godkända laborationer och lappskrivningar samt skriva ut betygslistor. Filen ser ut exakt som en riktig res-fil och betygen som presenteras är betyg på progk07 för ca 90 fiktiva personer (sagofigurer).

I år fanns också en ny startlabb som bl.a. innehöll några små seriesummeringsuppgifter, uppgifter på objekt och rituppgifter i Applets. Linslabben anses av många studenter vara svår som första labb. Den kräver mycket abstrakt tänkande och flera problem måste lösas samtidigt. Linslabben är fortfarande en mycket bra uppgift som man inte vill byta ut men för att göra den lite lättare valde jag att bryta ut en av stötestenarna i den och låta den ingå i startlabben så att eleverna kan koncentrera sig bara på det problemet i en uppgift och ha det löst när de gör linslabben.

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. Även användning av objekt som data förkommer här. I den tredje uppgiften används en hierarki av klasser. Objektsamlingar, interface samt läsning av textdata från fil behandlas också.

Examination

Kursen examineras för betygen C, D och E genom laborationer och lappskrivningar/muntliga förhör. Den som har betyg C kan få B eller A genom att göra en fjärde programmeringsuppgift Examinationen sker under kursens gång samt under två kompletteringsperioder, en i maj och en i augusti strax innan kursens poäng slutar gälla. Enstaka redovisningar görs för kursledaren på andra tider.

Elevsynpunkter

Det är mycket svårt att få F-teknologerna att svara på en webbenkät om kursen. Enkäten lades ut tidigt i mars. Trots intensiva kampanjer med muntliga påminnelser från kursutvärderarna samt inloggningsmeddelanden och förstås meddelanden på kurshemsidan hade bara 36 svar lämnats i början på juni. De som har svarat är huvudsakligen positiva till hela kursen och ger föreläsningar, övningar, labbhandledning och labbanvisningar bra betyg. Särskilt övningar och labbanvisningar får mycket bra betyg. Många påpekar att övningarna varit mycket bra och givande. Av de egna kommentarer som syns i enkäten så är det en hel del som tycker att tempot på föreläsningarna ofta var för långsamt samt att fler exempel borde visas. Ska ta till mig det!

Ett utvärderingsmöte med två studeranderepresentanter hölls. Har tyvärr inte fått något protokoll från mötet.

Studeranderepresentanterna (som ska framföra synpunkter från alla studenter) var mycket positiva till kursen och berömde planeringen, hur föreläsningar och övningar hängde ihop och förberedde för laborationerna. De tyckte att det går bra att klara kursen utan någon kursbok om man går på det mesta av undervisningen och använder föreläsningsanteckningarna (som delas ut) och egna övningsanteckningar.

Några förslag till förändringar som framfördes är

  • Anvisningarna till laborationerna 2 och 3 skulle kunna förtydligas så att man tidigare förstår vad slutmålet är. Lab 2 skulle kunna ges konkreta delmål för att uppgiften inte ska kännas övermäktig.
  • Lappskrivningarna innehåller endast flervalsfrågor. Studeranderepresentanterna önskade några frågor där man måste skriva egen programkod.

Kurslitteratur

I förra årets kursanalys stod att de flesta elever, speciellt de som tycker kursen är svår, vill ha en kursbok. Därför valdes en bok till årets kursomgång. Den kallades inte kursbok men rekommenderades ändå till nybörjarna tillsammans med en uppmaning att avvakta och inte köpa den förrän de själva kände behov av en bok. Ganska många (fler än 30) köpte boken men ännu fler gick igenom kursen utan att använda någon bok. Föreläsningsanteckningar samt Internet räckte för många.

Den föreslagna boken fungerade inte så bra som jag hade hoppats. Den är för pratig och onödigt ambitiös. Författarna vågar inte förenkla utan skall alltid förklara ALLT. Det blir för jobbigt för nybörjarna. Dessutom visade sig boken ha för lite material om objektsamlingar vilket är viktigt i kursen. Boken OOPS får ändå hyfsat betyg i enkäten men några kommentarer bekräftar att den är för "pratig".

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 med en liten dragning åt för stor. Av de 36 enkätsvaren säger 24 att den är lagom men 8 st att kursen tar längre tid än den borde.

Förkunskaper

Förkunskaperna varierar som vanligt oerhört mycket. En del kan redan allt eller nästan allt som kursen vill lära ut medan andra inte kan någonting. Bland dem som inte har programmerat förut så varierar det också oerhört mycket hur bra man presterar på kursen. En del tar till sig allt mycket snabbt medan andra får kämpa för att precis klara sig.

Planerade förändringar

Det är en väl fungerande kurs och det är troligen sista gången kursen går i årskurs 1 i alla fall. Därför planeras inga stora förändringar.

Det är väldigt få som har fått betygen A och B. Kommer att förtydliga kraven, särskilt för betyget B och föreslå några konkreta uppgifter. Förhoppningsvis kommer fler att ge sig på detta under kursens gång. Det kan vara så att C anses vara ett "bra betyg" och att detta nås inom kursens poängsystem relativ lätt. Att göra en extra uppgift som inte är väl specificerad känns som ett för stort arbete för ett betygssteg. Säkerligen kommer flera A:n att redovisas i augusti.

Kommer att göra om startlabben lite, minska antalet deluppgifter och försöka få den ännu mer lättillgänglig för dem som tycker att kursen är jättesvår. Kommer också att ta bort en del av den anpassning av föreläsningsmaterialet till boken som gjordes 2007. Ska försöka förtydliga labbanvisningarna enligt studenternas synpunkter

Ska fundera på studentönskemålet med andra frågor än flervalsfrågor på lappskrivningarna.