Nada

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

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 ACE i WWW. Enkäten har hittills fyllts i av 23 personer.

Kursdata

Kurs 2D1373, Artificiella språk och syntaxanalys, 4p
Examination Tenta (2p), Lab (2p)
Kursen genomförd VT 2000
Föreläsningar 24 timmar (12 st)
Labb 16 timmar
Kurslitteratur Introduction to compiler construction (Parsons) + kursbunt
Antal studenter 57 (varav 3 ej gjort något utöver att registrera sig i res)
Kursansvarig Mikael Goldmann, som hållit 11 av föreläsningarna. En föreläsning har hållits av Lars Engebretsen.

Sammanfattning

De studenter som svarat på enkäten är nöjda med vad de betraktar som en medelsvår till ganska lätt kurs. Tentans utformning tillsammans med det bonussystem som tillämpats har bidragit till detta. 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.

Det finns utrymme att behandla mer inom ramen för kursen, exempelvis mer grundläggande teori.

Studenter

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

34 från D
12 från Matematisk-Datalogisk linje, SU
4 från M
3 från F
1 från E
1 fristående kurs, SU
1 gäststudent
1 doktorand

Nyckeltal

Totalt har 57 studenter registrerat sig genom att köra res. Av dessa hade tre sedan hoppat av och räknas inte med i statistiken nedan.

2000-03-25: 12 klara med labbkursen, 44 klara med tentan.
2000-06-06: 20 klara med labbkursen, 49 klara med tentan.
2000-06-06: 20 klara med hela kursen.

Prestationsgrad (2000-03-25): 52%
Prestationsgrad (2000-06-06): 64%
Examinationsgrad (2000-06-06): 37%

Labbredovisningar planeras i augusti, och förhoppningsvis kommer examinationsgraden då att förbättras rejält, eftersom över 90% redan har klarat tentan.

Mål

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

Nytt för i år

Ett bonussystem användes för att få fler studenter att göra de frivilliga labbarna. Detta ledde till att många gjorde dem, men även till att det blev väl lätt att klara tentan. För var och en av de fyra frivilliga uppgifterna fanns en deadline, och redovisade man senast då fick man en bonuspoäng per uppgift. Dessa poäng adderas till tentapoängen.

Undervisning

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

Kursen har inte några schemalagda övningar. Några studenter har sagt att det kunde vara bra med ett fåtal övningar, men absolut inte en per vecka.

Labhandledningen har varit ganska sparsam, men tillräcklig för labb 1 till 4. Däremot kan det behövas en större insats för att få igång arbetet med labb 5 ordentligt.

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.

Frivilliga labbar

Förutom den obligatoriska labbuppgiften finns fyre 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 bekrivning av de två verktygen Flex och Bison (Gnu-projektets versioner av Lex och Yacc).

De flesta gillar Parsons bok 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". Ett alternativ är 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.

Kursbunten fungerar bra även den, men den behöver kompletteras och förändras till nästa år eftersom kursen måste anpassas till att många deltagare läst Java istället för C eller Modula-3.

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. Tempot i undervisningen är snarare lågt än högt.

Förkunskaper

Eftersom så många klarat tentan och dessutom upplevt kursen som ganska lätt får man nog säga att studenternas förkunskaper varit fullt tillräckliga.

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 bara behandlats som hastigast (vi har istället 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

Från och med nästa år kommer många av studenterna att vilja göra labbuppgifterna i Java. Därför måste labbkursen och kursbunten anpassas därefter. Eventuellt kommer lite mer tid att ägnas åt kursens teoretiska del.

Exempel på tentor finns på kursens hemsida.

Bilaga: Enkätsvar

Bilaga: Kursbeskrivning (pdf)

^ Upp till kurssidan.


Sidansvarig: <migo@nada.kth.se>
Senast ändrad 14 juni 2000
Tekniskt stöd: <webmaster@nada.kth.se>