Nada

Kursanalys för kursen Objektorienterad programkonstruktion med C++, E, våren -97

Författare: Magnus Andersson, NADA

Nedan följer en utvärdering av kursen i objektorienterad programkonstruktion. I texten refereras till den kursenkät som genomfördes via dator genom att frågornas nummer anges inom parentes. Tyvärr har enkäten bara fyllts i av ca 30 elever och ger därför inte en heltäckande bild av elevernas synpunkter.

Kursdata

Kursen genomfördes i period 3 våren 1997.
Föreläsningar: 28 tim
Övningar: 16 tim
Laborationer: 22 tim
Kurslitteratur: Object-Oriented Programming Using C++ av Ira Pohl och Object-Oriented Modeling and Design av James Rumbaugh et al.
Antal elever: 278

Avklarade moment:

Moment     Antal klara av de som gjort lab 1   Antal klara av alla anmälda
==========================================================================
LAB1                148 (75%)                           151 (54%)
LAB2                 96 (48%)                            96 (34%)
Prestationsgrad: 49% (68% för de som gjort lab 1)
Examinationsgrad: 35% (48% för de som gjort lab 1)
Kursansvarig: Magnus Andersson
Assistenter: Daniel Fagerström, Alexander Baltatzis, Magnus Andersson och Peter Nillius.
Magnus Andersson höll samtliga föreläsningar utom 6 tim (pga sjukdom). Assistenterna och föreläsaren höll i var sin övningsgrupp.

Mål

Objektorienterad programmeringsmetodik har idag blivit en av de mest använda metoderna för att konstruera program och programsystem. Detta märks bl.a. genom den mängd objektorienterade programspråk som nu finns och genom att många programspråk, vilka inte var objektorienterade från början, har försetts med objektorienterade tillägg. Kursen lär ut grundläggande principer och begrepp inom området och ger kunskaper och träning i att utforma och implementera objektorienterade program. I kursen kommer programspråket C++ att studeras. Språket har under de senare åren varit det mest använda objektorienterade språket. Kursen går inte bara igenom de grundläggande delarna av språket utan tar också upp mer avancerade begrepp som generiska typer (templates, speciellt standardbiblioteket STL), felhantering (exceptions) och namnrymder (namespaces). I kursen diskuteras också skillnader mellan olika typer av objektorienterade språk. Under de senare åren har också ett antal objektorienterade metoder för programutveckling utvecklats och som ett exempel på en av dessa studeras metoden Object Oriented Modeling Technique (OMT).

Sammanfattning

Helhetsintrycket av kursen är mycket varierat och avspeglar sig klart i prestations- och examinationsgrad. Antalet elever som anmälde sig till kursen var ca en tredjedel fler än beräknat. Andelen elever som gjorde något under kursen var däremot relativt normalt. Av de ca 30 personer som svarat på elevenkäten får kursen ett relativt gott betyg. Man kan emellertid som kursledare inte vara tillfreds med att bara en tredjedel av eleverna är helt klara med kursen ett halvår efter kursslut. Jag tror att kursen skulle vinna på en något annan uppläggning med ett enklare programspråk (t.ex. Java) och mer betoning av objektorienterad metodik. Man skulle då kunna pröva att låta eleverna redovisa modelleringsuppgifter under övningarna och ha några labbar i slutet av kursen (jmf ny kursversion på D nästa år).

Föreläsningarna

På föreläsningarna har de grundläggande begreppen i kursen presenterats med hjälp av datorgenererade stordior. För att kunna följa med utan att behöva anteckna allt har föreläsningsanteckningar delats ut. Innehållsmässigt har enligt min åsikt alltför mycket tid gått åt till att förklara programmeringsdetaljer och konstruktioner och mindre tid har ägnats åt hur man konstruerar bra objektorienterade program. Detta tror jag delvis bottnar i valet av programspråk. C++ är ett detaljrikt språk som det tar lång tid att lära ut. Av eleverna som besvarat kursenkäten har 78% ansett att föreläsningarna var bra eller mycket bra pedagogiskt sett, att takten var lagom (72%) och att föreläsningar med hjälp av OH-bilder har fungerat bra eller mycket bra (85%).

Övningarna

Övningarna är fortfarande lite av ett sorgebarn på kursen och bör tänkas över. Det verkar som om eleverna inte riktigt tycker att det är viktigt att delta. Nu stördes rytmen, både på föreläsningar och övningar av att kursledaren var sjuk ca 1 vecka under den tyngsta delen av kursen. Elevernas synpunkter på övningarna var dock inte så negativa, pedagogiken var bra eller mycket bra enligt 50% och 63% tyckte att takten var lagom.

Laborationerna

Laborationerna utgör den tyngsta delen av kursen. De är uppdelade på momentet LAB1 som omfattar 3 stycken labbar och momentet LAB2 som omfattar en något större projektuppgift. Kursledarens intryck av labbarna har varit att laboration 1 fungerat väl, men varit något för omfattande. Laboration två var dåligt formulerad och dessutom onödigt krånglig. Laboration 3 och 4 har fungerat relativt väl. Totalt en något överdimensionerad labkurs. Ett visst missnöje hos eleverna med hjälpmöjligheter under terminalövningarna kan noteras. Detta kan delvis förklaras med att elevfördelningen mellan olika pass var ojämn, men också med anstormningen av elever. Bättre planering krävs. Här är en sammanställning av labresultaten, först för samtliga anmälda elever och därefter för de elever som gjort första labben. Inga extrauppgifter visas.
 
Lab   Ant G     (%)   Ant G     (%)
		      
1      198     71.2    198    100.0
2      175     62.9    171     86.4
3      151     54.3    148     74.7
4       96     34.5     96     48.5
		      
Antal elever totalt: 278

Betygssättning och prestationer

Kursen har ingen tentamen utan all examination sker via labbar. Kursledarens intryck är att då tentamen saknas har eleverna en tendens att flytta fram labbandet. Betyget på kursen ges av att eleverna väljer att göra mer omfattande uppgifter (normalt extrauppgifter på labbarna). Denna typ av morot fungerar relativt väl, det har snarast varit något för många som erhållit betyg 4 och 5.

Kurslitteratur

Som kurslitteratur har använts två böcker Object-Oriented Programming Using C++ av Ira Pohl (ca 380 kr) och Object-Oriented Modeling and Design av James Rumbaugh et al. (ca 410 kr). Den första boken som lär ut grunderna i C++ har fått relativt blandat kritik, med ngn övervikt för det negativa. Mao vore det bra att hitta en bättre bok till nästa omgång. Den andra boken köptes av betydligt färre elever och kursledarens intryck är att det inte går att kräva att man har två kursböcker i en kurs på bara 4 poäng.

Slutord

Kursledarens intryck är att arbetsbelastningen på kursen har varit för hög. Orsakerna till att så många elever började kursen men inte fortsatte kan vara flera. Troligtvis har följande faktorer haft stor inverkan: Man kan dock konstatera att kurser i objektorienterad metodik och programmering i C++ är attraktiva. Kursledaren får fortfarande i snitt 1 brev om dagen som rör förra årets kurs.
Sidansvarig: <jbm@nada.kth.se>
Senast ändrad 2 december 1998
Tekniskt stöd: <webmaster@nada.kth.se>