Kompilatorkonstruktion, våren 2001

CTH: TDA 280 (4.0p)
GU: INN 300 (5p)

Välkommen Lärare Kurslitteratur Veckoschema Kompilatorprojekt Elrapport Leksaker Länkar

Enkätresultat

Under tentan delades en kursenkät i pappersform ut. På den fanns också anvisningar om hur man skulle göra för att fylla i enkäten på webben.

11 svar inkom, alla på webben, inget på papper. Nedan visas en sammanställning av dessa svar. För frågor med textsvar har svaren endast räknas upp. För flervalsfrågor har histogram skapats.

Du kan också titta på själva enkäten. Viss förklarande text på enkäten finns inte med i sammanställningen nedan.


Linje (e.d.) och inskr.år?

  • MDS 98
  • Datavetenskap 97
  • d99
  • z-97
  • CTH, F, 1998. (Varför inte ge namnet direkt?)
  • enstaka kurs
  • GU 97
  • 00
  • GU 99
  • GU 1997
  • D

Hur var dina förkunskaper?

dåliga22
godkända22
bra11
mkt.bra55

Vad tycker du om kursens omfattning?

för liten11
bra88
för stor22

Vad tycker du om kursens svårighetsgrad?

för lätt33
bra77
för svår11

Fördelning av tid på de olika avsnitten?

dåligt22
godkänt33
bra55
mkt.bra0

Några delar som var speciellt svåra/lätta?

  • Reguljära uttryck, NFA, DFA, Typcheckning, eftersom de ingår i programspråk och diskmatten
  • relativt jämn-svårt
  • -
  • Det svåraste gavs mycket tid i kursens början. BRA!

Några delar som borde utgå/fördjupas?

  • Fördjupa själva back-end-konstrueringen. Det är den som är roligast.
  • nej, det verkar bra som det är.
  • tentan bör utgå. Det är nog med arbete ändå
  • -
  • skräpsamling

Kommentarer - kursinnehåll:

  • Bort med dravlet i början, och lägg mer tid på back-end-konstruktionen. Annars en trevlig kurs...
  • Mer exempel på hur kompletta delar av en fungerande kompilator kan se ut, speciellt för C/Java eftersom det då blir något annorlunda än Haskell. Boken (C versionen) hade inte några kompletta exempel utan endast snuttar vilka man förväntades fylla ut själv. Det hade varit bra om detta kompletterats med en komplett kompilator för exempelvis ett mycket enkelt språk, så att man lättare förstod det övergripande upplägget och sedan kunde utöka programmet till att hantera ett fullständigt språk. Men det är ju bokens fel och inte kursen som sådan. C koden var lite knepigt skriven, väldigt funktionellt influerad (inte konstigt med tanke på författaren) vilket troligtvis ligger en bit ifrån hur existerande kompilatorer i C är skrivna. Boken var annars ok.
  • Ev skulle det vara intressant med en starkare anknytning till semantik -- ett av argumenten för formella semantiker är ju att hjälpa kompilatorkonstruktörer att skriva korrekta kompilatorer. Förtydligande: Jag vet inte om kursen egentligen är för lätt. Jag vet bara att nästan alla fysik- och mattekurser jag läst har varit en klass svårare än de flesta datakurser, och då har jag ändå tagit ca 40 poäng på datavetenskap/datorteknik. Vad det beror på vet jag inte. Hypoteser: - Datavetenskap är ett i grunden enklare ämne. - Jag har enklare för datavetenskap. - Kurserna på F görs snäppet svårare än på övriga sektioner. Jag kan i alla fall säga att kursen skulle kunna göras ganska mycket svårare utan att den blev omänskligt tuff.
  • jag tycker att det var väldigt mycket som behandlades gansk ytligt och jag tycker kanske att det blir roligare om man tar några saker lite djupare det är ju klart att man kan läsa mera själv har man tid med det kan det bli jätte bra. jag tycker första delen av labben inte gav så mycket det är roligare att skriva egna verktyg. andra delen var jätte rolig!
  • Det kanske låter töntigt, men det skulle säkert bespara möda om man lade till som introduktion till projektet: Ditt uppdrag är att implementera Javalette åt en kund. Kunden har laggt allt på en god specifikation och vill inte ha ändringar eller extra funktionalitet. Om något inte framgår kan kundfrågor ställas till kursens handledare. Ditt företags duktiga testgrupp simuleras av ett program (testlab). En annan grupp gör felmeddelanden, så det räcker att ge felmedelandet OK eller ERROR. Det finns säkert starka kognitiva själ att utnytja elevens fantasi för att ge lite verklighetsförankring.

På hur föreläsningar många har du varit?

0-211
3-622
7-1044
11-1333

Föreläsarens kunskaper i ämnet var:

dåliga0
godkända0
bra33
mkt.bra66

Föreläsningstakten var:

för långsam11
bra88
för snabb0

Användningen av exempel och illustrationer var:

dåligt11
godkänt22
bra44
mkt.bra22

Förmågan/viljan att svara på frågor var:

dålig0
godkänd11
bra22
mkt.bra55

Hantering av visuella hjälpmedel som tavla, OH?

dålig0
godkänd44
bra44
mkt.bra11

Kommentarer - föreläsningar:

  • Trevliga små timmar... Synd att de första var så repeterande...
  • Mera skisser på tavlan. Om kod ska visas på OH så visa med pekpinne eller hand, tankegångar och om vad i koden man pratar om. Bra om varje lektion inleds med frågor på förra lektion istf: "Om ni inte har några frågor så får ni gå hem"

På hur många övningar har du varit?

044
1-233
3-422
5-722

Förmåga att förklara och motivera lösningar?

dålig0
godkänd22
bra55
mkt.bra22

Skall det vara mer eller mindre övningar?

mindre11
lagom55
mer11

Helhetsbedömning av övningarna?

dåliga0
godkända44
bra22
mkt.bra0

Kommentarer - övningar:

  • Bra för att ge en uppfattning om vad som skulle komma på tentan...:)
  • Lite fler övningsuppgifter som täcker en större del av kursinnehållet. Alla behöver inte tas upp på övningslektionerna.
  • Jag är rädd om mitt unika sätt att tänka, och är därför försiktig med att gå på övning. Först när jag har förstått så kan jag börja öva upp korrektheten.

Kursboken (Appel, Modern Compiler Construction...)

ej läst0
dålig55
godkänd44
bra22
mkt.bra0

Övningsmaterial

ej läst0
dålig0
godkänd66
bra44
mkt.bra11

Lab-PM:

ej läst0
dålig0
godkänd77
bra22
mkt.bra22

Webbsidor:

ej läst11
dålig0
godkänd11
bra33
mkt.bra66

Hur var samspelet mellan kursmtrl. och fö/övn?

dåligt11
godkänt11
bra77
mkt.bra0

Kommentarer - kursmaterial:

  • Slopa kursboken för dem som vill göra allt i Haskell, eftersom det ändå är det språk alla exempel på föreläsningsanteckningarna finns i. Att köpa en bok för ML var ett mycket dåligt förslag...:( Däremot kan den vara bra att ha för dem som vill göra labbarna i något annat språk.
  • Boken är ok. Lite mer kompletta kodexempel hade inte skadat. C koden som sagt lite annorlunda. Lab PM bra för Lab1 - lite tunt för Lab2.
  • Kunde utöka lab-PM rörande register kompilator. Det var lite oklart vad som gällde och hur "maskinvaran" fungerade.
  • Appels bok var bra, men den kändes lite trög ibland. Samma stoff går nog att få in på färre sidor. Dessutom gick han in i lite väl stor detalj på implementationen av Tigerkompilatorn. Ett plus är att boken kändes riktigt bred, den går nog att använda fler gånger. Övningsmaterialet kändes lite tunt, det skulle vara bra om övningarna täckte kursområdet bättre. De räckte i o f s till till den enkla tentan. Vad kommer det sig förresten att övningarna till Datavetenskaps kurser ofta (men inte alltid) är bra mycket enklare än de som finns i kursböckerna? Är datakurser på andra ställen svårare än på Chalmers? Varför det? Jag vill ha kurser av samma kvalitet som på de bästa skolorna.
  • jag tycker att en del avsnitt i boken var ganska svårlästa enkla saker framställdes så att de blev väldigt krångliga detta gäller ml varianten
  • Att den informella Javalette specifikationen inte räcker, utan man också ska tänka på att syntaxen ska matcha testfilerna i katalogen good måste poängteras. Då hinner man nog få in första labben i tid.
  • Föreläsningsanteckningar var mkt. bra. Lab-PM var lite bristfälligt i syntaxen för den genererade koden, bl.a. skulle paramentern till Return i stackmachine delen kunna förklaras lite tydligare.

Hur mycket tid lade du ner?

väldigt lite11
lagom33
mycket44
väldigt mycket33

Vad tyckte du om labbarnas svårighetsgrad?

lätt11
lagom77
svår33

Hur stort utbyte fick du av labbarna?

dåligt0
godkänt33
stort22
mkt. stort55

Var det tillräckligt med handledning?

Nej11
Ja99

Vad tyckte du om labbhandledarna? (Kunde de svara på frågor, var de insatt i labben/kursens innehåll osv)

  • Öh... Vilka var de?? :)
  • Har inte frågat något, så jag vet ej.
  • Mycket bra labhandledning.
  • Vet ej.
  • jag tycker att det var en inte jätte trevlig ton i svaren vi fick från våran labbrättare.Dock inte de svaren vi fick på frågor ställda till Thomas Hallgren.
  • Tyvärr var det happys precedenser som jag har lagt ned mest tankemöda på, mest pga bristande förståelse. Hela kompilatorn i en monad å ena sidan besparade mig nog en del tid. Det här med modularisering kanske bör ifrågasättas???
  • Bra!

Fungerade labinlämning/labrättning bra? (Var rättningen snabb/långsam, för hård/snäll, fick du bra kommentarer o s v)

  • Snabb rättning, lagom hård, och med bra förklaringar när man bad om dem.
  • Snabb och bra.
  • Labinlämning och rättning fungerade bra, dock tog det lite lång tid att få reda på lab2 - första inlämning. Det blir helt enkelt lite snävt att lyckas få den godkänd före 16/3.
  • Jag skulle vilja få mer kommentarer. Bara ett "Exemplarisk inlämning" e d känns som lite lite efter att jag slitit ett antal timmar med ett program. Det finns ju alltid något att anmärka på en inlämning.
  • Jag har inte lämnat in än.
  • Bra

Kommentarer - labbarna:

  • Trevlig sysselsättning...
  • Lite tunt med beskrivningar för Lab 2. Kanske ett kompletterande häfte med exempel på hur enklare kod genereras för stack och 3-op maskiner.
  • Tung lab, bra men det vore bättre om tentan utgick och vi istället skulle behövt göra monadisk parser.
  • Sätt sista gödkänningsdag till måndag i läsvecka två eller liknande, så man har helgen på sig att göra klart labben. Det är svårt att hitta en tid som funkar för både mig och min labkompis att göra klart den till fredag. Man vill gå på de första föreläsningarna i varje ämne den första veckan.
  • Det råkade bli väldigt mycket tid eftersom jag implementerade en graffärgande registerallokator med coalescing, och det var kanske inte riktigt meningen. Annars var labben bra. Jag fick äntligen en spark i baken som gjorde att jag orkade ge mig på monader. (Jag har läst mycket om dem, men knappt använt dem förut.) På sätt och vis skulle det vara kul om man fick implementera optimeringar och testa att kompilera olika sorters språk, men i en sådan här kurs bör man väl ge sig på de grundläggande bitarna. De bitarna gav labben/kursen också stor insikt i.
  • Väldigt underhållande, speciellt den andra delen.
  • Jag förstår att ni hemsk gjärna vill ge labbhandledning, men jag hinner varken eller vill inte få avrådan på mina ideer. Mina lösningar måste få ta den tid det tar. De kanske blir godkända till slut på något sätt. Jag förutsätter att jag får upplysning om allt som brukar gå fel, på lektionen och teorin.
  • Bra

Motsvarade den kursens innehåll?

Nej0
Ja1111

Vad tyckte du om tentans svårighetsgrad?

mkt. lätt0
lätt22
lagom66
svår22

Var tentan väl avpassad till tentamenstiden?

dåligt33
godkänt22
bra55
mkt.bra11

Kommentarer - examination:

  • Precis som jag trodde var det mycket som egentligen hade mer med diskmatte och programspråk än kompilatorkonstruktion... Men eftersom kursen innehöll de delarna, så...
  • Hann som vanligt inte helt klart med tentan. I förhållande till andra tentor var det dock bättre än det brukar. Om man kan nästan alla uppgifter och försöker beskriva utförligt med exempel o dyl så blir det dock väl ont om tid med 4 timmar.
  • Behövs inte. Vi lärde oss det ändå.
  • Skulle vilja haft mer register och mindre stack på tentan. Det känns inte som om det lönade sig att försöka sig på register varianten av kompilatorn, utan snarare att man skulle tagit stackmaskinen. Annars var tentan bra.
  • Tentan kändes nästan lite väl lätt. Tiden var helt OK, men det tar ju lite tid att göra LR(0)-tabeller, t ex. Egentligen känns det helt meningslöst att sitta och ta fram tabeller på en tenta. Man kan ju lära sig de där algoritmerna utan att egentligen förstå hur de fungerar. På en tenta tycker jag att man ska testa förståelse, inte mekaniska kunskaper. Exempel på förändrad fråga (antagligen lite väl svår): Beskriv algoritmen för att ta fram LR(0)-tabeller, och bevisa att den är korrekt. (Ja, jag tycker om att göra bevis. Det får man ju en större kick av än att göra program. :)
  • Kort tid på tentan

Var detta en användbar kurs som du kan rekommendera?

nej0
javars44
absolut77

Hur var denna kurs jämfört med andra kurser du läst?

dålig0
godkänd33
bra77
mkt.bra11

Beskriv med egna ord vad som var extra bra respektive extra dåligt med kursen.

  • För mycket repetition och för lite konstruktion... Men när man aldrig gjort någon back-end del tidigare, så var det väldigt trevligt när vi väl kom dit.
  • Svårt att säga vad som var bäst. Helhetsintrycket dock mycket bra, klart över förväntan!
  • Denna kurs hade det i särklass jobbigaste projektet jag stött på under hela min tid på Chalmers. Detta medför såväl positiva som negativa saker, jag hade svårt att hinna med andra ämnen över huvud taget men samtidigt lärde jag mig väldigt mycket. Dock hade jag önskat att kunskaperna från projektet skulle hjälpa till mer på tentamen.
  • Se ovan.
  • den har gett mig en bild av hur en kompilator fungerar när man gjjorde stackkods delen förstod man mer om varför språk ser ut som de gör.
  • Enkäten var för stor.

Var detta en vettig kursenkät?

dålig0
godkänd22
bra44
mkt.bra55

Bifoga gärna UTFÖRLIGA KOMMENTARER

  • Öhhh.... Behåll föreläsaren, iaf!!! Thomas, Thomas, Thomas!!!!!!!
  • Thomas och Josef var mycket bra och, perfekta lab handledare. Sådana labhandledare med så bra extra tips var en lyx.
  • Ett förslag från min sida är faktiskt att skippa tentamen och köra examinationen enbart på projektet, eftersom det är så stort. Det kan hända att vi var den enda gruppen som var tvugna att lägga ner så mycket tid på projektet och i sådana fall är denna kommentar helt irrelevant.
  • En bra kursenkät ska få svararen att tänka till, och det gjorde den. Det skulle vara bra om man kunde få feedback på sina svar p%E
Ändrad senast Wednesday 2001-04-25 kl 17:53

Thomas Hallgren
Institutionen för Datavetenskap
Chalmers Tekniska Högskola
[ Valid HTML? | Check Links ]