Nada

Kursanalys för Artificiella språk och syntaxanalys, Läsåret 00/01

Författare: Mikael Goldmann, NADA

^ Upp till kurssidan.

Nedan följer en kursanalys av kursen Artificiella språk och syntaxanalys. I texten refereras till en enkät gjord med EVAL i WWW. Enkäten har hittills fyllts i av 29 personer, vilket tyvärr är för få för att man ska kunna dra säkra slutsatser. Det finns en länk till enkätresultaten i slutet av detta dokument. Jag har nedan hänvisat till enkäten framför allt i samband med saker som kan förbättras till nästa år.

Kursdata

Kurs 2D1373, Artificiella språk och syntaxanalys, 4p
Examination Tenta (2p), Labb (2p)
Kursen genomförd VT 2001
Föreläsningar 24 timmar (12 st)
Labb 16 timmar
Kurslitteratur Introduction to compiler construction (Parsons) + kursbunt
Antal studenter 72 (varav 7 ej gjort något utöver att registrera sig i res)
Kursansvarig/föreläsare Mikael Goldmann

Sammanfattning

De studenter som svarat på enkäten är nöjda med vad de betraktar som en medelsvår till ganska lätt kurs. Samtidigt är det många som inte är klara med labbkursen, där den obligatoriska delen är en ganska omfattande uppgift, vilket medför att prestationsgraden och examinationsgraden är låga. Förhoppningsvis kommer detta att förbättras i augusti, men att döma av tidigare års erfarenhet kommer examinationen troligen ändå att stanna på under 70%. Eftersom det är den obligatoriska labbuppgiften som är stötestenen finns det anledning att se över labbkursens innehåll och organisation.

Studenter

Studenterna går i huvudsak tredje eller fjärde året av sin utbildning. De 72 som registrerat sig är fördelade enligt

53 från D
4 från M
3 från Matematisk-Datalogisk linje, SU
3 från F
2 från Me
1 från B
1 från K
1 fristående kurs, SU
4 doktorander

Nyckeltal

Totalt har 72 studenter registrerat sig genom att köra res. Av dessa hade sex sedan hoppat av (inte gjort vare sig tenta eller labb) och räknas inte med i statistiken nedan.

2001-03-13: 11 klara med labbkursen, 53 klara med tentan.
2001-05-23: 20 klara med labbkursen, 59 klara med tentan.
2001-05-23: 19 klara med hela kursen.

Prestationsgrad (2001-03-13): 55%
Prestationsgrad (2001-05-23): 58%
Examinationsgrad (2001-05-23): 29%

Labbredovisningar planeras i augusti, och förhoppningsvis kommer examinationsgraden då att förbättras en del, men med ledning av förra årets resultat kommer examinationsgranden antagligen att ligga under 70% även efter detta tillfälle.

Mål

Kursens mål är att för att studenterna Enligt enkäten är det nästan 40% som inte anser att de från början fått målen klara för sig. Det kan antagligen repareras genom att tydligare påpeka dem vid kursstart.

Nytt för i år

Bonussystemet reviderades. Nu kan labb 1 till 4 ersätta uppgift 1 till 4 på tentan. Det har visat sig vara bättre än fjolårets system där bonuspoäng från labbarna helt enkelt adderades till tentaresultatet. Betydligt fler studenter än förra året valde att arbeta i Java istället för C, och den trenden kommer säkert att fortsätta.

Undervisning

Föreläsningarna har haft samma disposition som tidigare år, och har fungerat bra. Det har i allmänhet varit gott om tid. OH-bilder har använts ganska sparsamt till förmån för svarta tavlan.

Labhandledningen har varit ganska sparsam, men förefaller vara i stort sett tillräcklig, även om det inte skulle skada med en handledare till. Vid redovisningstillfällen har vi varit två personer, medan jag varit ensam vid "hjälptillfällen". Vid de tillfällen det funnits handledning i samband med den sista, större, labben har det varit ganska få studenter, så den låga examinationen kan inte åtgärdas enbart genom att ha fler handledare.

Examination

Kursen examineras med labbuppgift och med en tenta. På tentan tillåts inga hjälpmedel. Den är avsedd att kontrollera de teoretiska kunskaperna medan de praktiska examineras på labbarna. Detta kan vara en del av förklaringen till att en del studenter inte tycker att tentan avspeglade kursens innehåll bra. Tentan är som sagt tänkt att huvudsakligen behandla teori.

Frivilliga labbar

Förutom den obligatoriska labbuppgiften finns fyra inledande mindre labbuppgifter. Dessa är frivilliga, men ger bonus om de redovisas före ett givet datum (se "Nytt för i år" ovan).

Kurslitteratur

Kurslitteraturen består av kursboken av Parsons (nämnd ovan) och en kursbunt bestående huvudsakligen av ett kompendium med lösta exempel och handledningar till verktyg för parserkonstruktion.

De flesta tycker Parsons bok är ganska bra och den fungerar relativt väl i kursen. Det finns några områden där boken lämnar en del att önska, framför allt i kapitlet om "Bottom-up parsing". Den kritik som framkommer i enkäten handlar mest om att man vill ha en mer avancerad bok. Ett alternativ är i så fall den så kallade "drakboken" av Aho, Sethi och Ullman, men den är onödigt detaljerad och väl svårläst för många kursdeltagare, även om en del är mycket förtjusta i den.

De som använder exempelsamlingen tycker den är bra, men tyvärr är det många som inte öppnar den (28% av de som besvarat enkäten har inte använt den).

Studenternas arbetsbelastning

Någon tidsstudie har inte gjorts, men genom enskilda samtal har jag fått uppfattningen att den obligatoriska labbuppgiften kan vara ganska krävande -- ibland mer än än veckas arbete, men att kursen i övrigt inte är påtagligt tidskrävande. Uppgiftens omfattning verkar komma som en chock för en del. Det är dessutom ganska stor skillnad i svårighet på de föreslagna uppgifterna (studenten väljer själv en uppgift), och kanske bör det markeras tydligare vilka uppgifter som är rejält arbetskrävande.

Förkunskaper

Nästan alla studenter har full tillräckliga förkunskaper. Ett mycket litet antal har svårt att självständigt producera ett välskrivt och fungerande program, och några har svårt att föra ett teoretiskt resonemang, men på det stora hela är de som börjar på kursen väl förberedda.

Verkligt kursinnehåll

Vi har i stort sett hållit oss till föreläsningsplaneringen i kursbeskrivningen (se bilaga).

Följande saker kan de flesta studenterna bra efter genomgången kurs:

En del studenter lär sig även att bevisa att ett givet språk inte är reguljärt. En del kan också bevisa att vissa språk inte är kontextfria genom reduktioner. Pumping-lemmat för reguljära språk har behandlats som hastigast (vi har ofta använt skräddarsydda varianter för det lilla fåtal språk vi visat vara icke-reguljära), och motsvarande lemma för kontext-fria språk har inte berörts alls.

Kommande förändringar

I år var labbuppgifter och kursbunt anpassade till Java, men exempel och föreläsningar var i allmänhet baserade på C. Till nästa år finns aledning att övergå till Java som "förstaspråk".

Exempel på tentor finns på kursens hemsida.

Bilaga: Enkätsvar

Bilaga: Kursbeskrivning (pdf)

^ Upp till kurssidan.


Sidansvarig: <migo@nada.kth.se>
Senast ändrad 28 maj 2001
Tekniskt stöd: <webmaster@nada.kth.se>