Nada

Kursanalys för 2D1372, Artificiella språk och syntaxanalys, våren 1997

Kursdata

Tid: period 3 läsåret 1996/97 dvs januari-februari 1997.
Poängantal: 3 (varav labb 1 poäng, tenta 2 poäng).
Tenta: ordinarietenta efter period 3 (1 mars), omtenta i påskperioden (10 april).
Föreläsningar: 24 timmar.
Övningar: 12 timmar.
Labbar: 4 små och en större, 12 timmar schemalagd tid.
Kursledare och föreläsare: Viggo Kann
Övningsassistenter: Viggo Kann och Lars Engebretsen
Antal elever: 60, varav 36 från D, 11 från F, 2 från E, 5 från M, en från T, 4 från SU och en systemvetare.
Kurslitteratur: Introduction to compiler construction av T W Parsons.

Avklarade moment vid ordinarietentan 1997-03-01:

Tenta          44 av 51 (86% G av tentander, 73% av alla)
Labb 1-4       47  (78%)
Labb 5         28  (47%)
Prestationsgrad:    64%
Examinationsgrad:   43%
Avklarade moment 1997-05-21:
Tenta          46  (77%)
Labb 1-4       52  (87%)
Labb 5         36  (60%)
Prestationsgrad:    71%
Examinationsgrad:   52%
Avklarade moment efter nästföljande läsår 1998-05-28:
Prestationsgrad:    78%
Examinationsgrad:   70%

Mål

Kursens mål är att för att eleverna

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

Eftersom kursen gick så bra förra året har jag inte gjort så många förändringar. I förra årets kursanalys gjorde jag en lista på följande förändringar, som också har genomförts. Förutom allmän finputsning av labbar och undervisning har jag också genomfört några ytterligare förändringar.

Sammanfattning

Jag tycker det är mycket trevligt att hålla kursen eftersom kursinnehållet känns relevant och sammanhängande och eftersom eleverna är intresserade och kommer ifrån så många olika håll (bara 60% är D-elever). Dessutom har kursen en lagom blandning av teori och programmeringstillämpning.

Nästan alla elever är mycket positiva till kursen och jag har uppfattningen att dom flesta har lärt sig mycket utan att behöva lägga ner särskilt mycket tid på kursen.

Faktiskt innehåll i kursen

Jag har gjort en beskrivning av kursens faktiska innehåll, som överensstämde nästintill perfekt med det planerade.

Omfattande dokumentation av kursen finns också tillgänglig på kursomgångens hemsida.

Elevernas synpunkter och kursledarens kommentarer

En enkät (22 svar, 37%) gjordes med ACE. Enkätens utformning diskuterades med vice-SNO på D. Fullständigt resultat finns i WWW. Här följer en sammanfattning av enkätsvaren.

Kursinnehåll

Kursen ansågs vara medelsvår (69%), på gränsen till lätt (23%). Alla (100%) fick i början av kursen klart för sig vad kursens mål var. 95% tyckte kursen var intressant och meningsfull, varav 73% tyckte den var mycket intressant och meningsfull. Förkunskaperna (Inda eller Tilda) var tillräckliga för i stort sett alla.

Det var intressant att ha elever med olika förkunskaper (D- och SU-elever med flera års datastudier bakom sig, E- och F-elever som läst Inda samt M- och T-elever som läst Tilda (och därför bara programmerat lite i C). Detta gick förvånansvärt bra. Det märktes att D-eleverna hade lättare än övriga för första labben, men i övriga labbar märktes inga skillnader mellan olika elevgrupper.

Kurslitteratur

Kursboken fick ett gott omdöme (78% av dom som använt den tyckte bra eller mycket bra om den). Några kommentarer:
"Äntligen en lättläst kursbok!", "Lite buggig men lättläst och lättfattlig."

Föreläsningsanteckningarna (ca 60 sidor) med kopior på alla stordiabilder som visades ansågs vara mycket bra (55%) eller bra (36%). Veckans föreläsningsanteckningar delades ut i början av första föreläsningen varje vecka.
"Mycket bra. Fler lärare borde ha liknande", "Genialiskt med 1/4 anteckningsyta per blad. Borde vara obligatoriskt på alla kurser!"

Exempelsamlingen (62 sidor) innehöll fullständigt lösta uppgifter på hela kursinnehållet och ansågs bra eller mycket bra av 67% av dom som läst den.
"Hade hellre velat ha fler småövningar", "Gillar inte att ha frågor och svar i direkt
anslutning till varandra", "Mycket bra pga, kursen var upplagd med möjlighet till självstudier", "Minst lika bra som föreläsningsanteckningarna. Övningar på svenska med fullständiga lösningar. Kan det bli bättre?"

Undervisningen

Kursen är upplagd så att den som vill läsa in den själv ska kunna göra det. Trots detta gick 64% på i stort sett alla föreläsningarna. Lika många ansåg att föreläsningarna var mycket bra och resten att dom var bra. Några kommentarer:
"Stordiaanvändningen är bra, eftersom allt finns uppkopierat. Det gör att man kan använda tiden till att förstå istället för att skriva av.", "Impressiv tajming. Mycket bra att dela ut anteckningar, strängt taget en nödvändighet när man använder stordia.", "Viggo är den absolut bästa föreläsaren jag har haft.", "Förklarar allt pedagogiskt och grundligt. Ibland lite för grundligt, men hellre det än att gå för fort fram."

Hälften gick på nästan alla övningarna och hälften gick knappt på några övningar alls. Nästan alla ansåg att övningarna pedagogiskt sett var bra eller mycket bra.

Nästa år vill nya kursledaren Lars Engebretsen ta bort salsövningarna och införa fler exempel på föreläsningarna. På kursenkäten frågade vi eleverna om vad dom tycker om en sån kursuppläggning. Ungefär lika många tyckte att det var bättre som sämre som att det går på ett ut.

Med ledning av detta föreslår vi att övningarna inte tas bort utan ersätts av räknestuga och frågestund.

Labbarna

  1. Simulering av NFA Ansågs medelsvår eller lätt.
  2. Flex Ansågs lätt eller mycket lätt.
  3. Rekursiv medåkning Ansågs lätt eller medelsvår.
  4. Reguljära uttryck med Yacc Ansågs medelsvår.
  5. En valfri översättare Ansågs medelsvår.
Labb 4 och 5 ansågs mest givande. Några blandade kommentarer:
Labb 2: "Det var kul att se hur man kunde göra ganska mycket roligt med ganska lite ansträngning. Den var också bra som förberedelse till senare labbar."
Labb 3: "Bra att det räckte med att modifiera ett program; det gav möjlighet att inrikta sig på de intressanta problemen."
Labb 4: "Mycket bra idé att knyta samman labbkursen på det viset som denna labb gjorde."
Labb 5: "Öka labbkursen så att man kan skriva färdigt programmet. På 20 timmar blir inte programmet fullständigt.", "Bra idé. Kan bli så kul man vill. Valde väl lite fel själv."

Nedlagd studietid

Dom flesta la ner mellan 15% och 30% av sin totala studietid på kursen. 59% läste fyra eller fler kurser parallellt med kursen! Detta är uppseendeväckande mycket. Det är märkligt att resultatet på kursen ändå är så pass gott.

Statistik för labbtid:

Labb   Medel    10%   25%   40%   50%   60%   75%   90%

1        4.8    2.0   3.0   3.5   4.0   5.0   6.0   8.0
2        2.8    1.0   2.0   2.0   2.0   2.0   3.0   6.0
3        3.4    2.0   2.0   3.0   3.0   3.0   4.0   6.0
4        4.4    2.0   3.0   3.0   4.0   4.0   6.0   7.5
5       19.0    6.0  10.0  12.0  15.0  19.0  20.0  45.0

Tot     34.3   13.0  20.0  23.5  28.0  33.0  39.0  72.5
Labbdelen är 1 studiemedelspoäng, så labbarna borde ta 40 timmar. Som synes kommer minst 75% av eleverna inom den tiden.

Tentan

Tentan ansågs medelsvår (55%), ganska lätt (18%) eller ganska svår (18%). Den ansågs spegla kursinnehållet bra eller mycket bra (69%).
"Två svåra uppgifter, i övrigt inte *så* svårt hoppas/tror jag." "Det känns lite meningsläst att sitta och skriva LR(0) konfigurationsmängder och tabeller för hand, det ar inte speciellt svårt men mycket pilligt. Jag tycker inte att det är en vettig tentauppgift."

Tentan rättades på en dag och resultatet var mycket bra (7 blev underkända, 10 fick betyg 3 eller G, 7 betyg 4 och 24 betyg 5 eller VG).

Allmänna elevkommentarer

Anpassning till andra kurser

Närliggande kurser är Programmeringsparadigm (vad gäller beskrivning av syntax och kompilering), Algoritmer, datastrukturer och komplexitet och Algoritmer och komplexitet (vad gäller teoretisk datalogi och Turingmaskiner) och Digital elektronik (vad gäller ändliga automater). Enda överlappet är med paradigmkursen i första årskursen, men det överlappet kommer att minska i paradigmkursens nya skepnad nästa år.

Det finns två kurser som bygger på Artificiella språk och syntaxanalys: Programspråksimplementation och Språkteknologi. Den första bygger på syntaxanalysen till en hel kompilator och den andra utvidgar syntaxanalysen till analys av naturliga språk. Jag håller mitt vakande öga på båda dessa kurser så att dom ska passa väl ihop med syntaxkursen.

Jämförelse med liknande kurser

Automater, formella språk och syntaxanalys tillhör standardstoffet i datalogi och undervisas därför vid varje universitet i världen som har en D-utbildning. Uppläggningen verkar dock variera. På en del ställen tas allt upp i en kurs i kompilatorkonstruktion, och då blir teoridelen ofta lidande. På andra ställen finns det en separat teorikurs där automater och formella språk ingår och dessutom en praktiskt inriktad kompilatorkurs. När kurserna är uppdelade på detta sätt (t ex på MIT och i Linköping) verkar dom ha liten kontakt med varandra, och den teoretiska kursen borde kännas ganska torr.

Roms universitet La Sapienza är det enda universitet jag känner till som har ungefär samma uppdelning av kursen som vi. Jag känner läraren Pierluigi Crescenzi som hade den motsvarande kursen där i år. Han använder samma kursbok som vi (Parsons), vilket styrker min uppfattning om att det är den bok som bäst passar kursen. Jag är övertygad om att den uppdelning vi har valt är den rätta: att dom flesta elever bara behöver läsa syntaxkursen och bara dom extra intresserade läsa fortsättningskursen Programspråksimplementation.

Planerade förändringar

^ Upp till kursomgångar.


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