bild
Skolan för
datavetenskap
och kommunikation
KTH / CSC / Kurser / DD1396 / pallinda13 / Kursanalys

Kursanalys: Parallellprogrammering i introduktion till datalogi, pallinda13

Kursdata

Tid: period 4 läsåret 2012-2013

Poängantal: 3hp

Examination: inlämningsuppgifter

Föreläsningar: 6 timmar

Kursledare och föreläsare: Stefan Nilsson

Övningsassistenter: Peter Boström, Jonas Carlsson, Stefan Nilsson, Marcus Dicander, Joakim Rasmuson, Oskar Segersvärd, Anders Ye, Ingemar Markström, Martin Frost, Lucas Taubert, Carl Björkman, Linus Enroth Hansson.

Antal registrerade på kursen: 311

Antal som gjort något synligt på kursen: 275

Godkända: 266 (2013-05-30)

Prestations- och examinationsgrad: 97%

Kurslitteratur

Mål

Efter fullgjord kurs ska kursdeltagare kunna

  • designa och implementera enkla parallella program,
  • lösa problem med hjälp av programmering,
  • analysera, välja, använda och implementera grundläggande algoritmer och datastrukturer

i syfte att

  • effektivt utnyttja datorer i sina fortsatta studier och i arbetslivet,
  • hitta och använda rätt teknik för ett givet problem,
  • gå fortsättningskurser inom datalogi och numerisk analys.

Planerade förändringar inför nästa kursomgång

Jag planerar att förbättra uppgifterna och kursmaterialet inför nästa år.

Kursenkät

  • Upplever du kursen som lätt eller svår?

    1. 10% (5 st) Mycket lätt.
    2. 48% (23 st) Lätt.
    3. 40% (19 st) Medel.
    4. 2% (1 st) Ganska svår.
    5. 0% (0 st) Mycket svår.


  • Tycker du att kursen är intressant?

    1. 71% (34 st) Ja, mycket.
    2. 27% (13 st) Ja.
    3. 2% (1 st) Neutral.
    4. 0% (0 st) Inte särskilt.
    5. 0% (0 st) Nej.


  • Förkunskapskraven för kursen är inda. Tycker du att dina förkunskaper var tillräckliga när kursen startade?

    1. 94% (45 st) Ja.
    2. 2% (1 st) Tveksam.
    3. 2% (1 st) Nej.


  • Vad tycker du om kursboken Fundamentals of Concurrent Programming?

    1. 48% (23 st) Mycket bra.
    2. 40% (19 st) Bra.
    3. 8% (4 st) Hyfsad.
    4. 2% (1 st) Mindre bra.
    5. 0% (0 st) Dålig.
    6. 2% (1 st) Har inte använt den.


    Ev. kommentarer om boken:

    Mer exempel är sällan dåligt, se http://learnyouahaskell.com/chapters
    ---
    Bra sammanfattning men lite mera information om anonyma funktioner och kanske några fler exempel vore bra.
    ---
    Har mest använt den som referens. Inte läst den speciellt aktivt
    ---
    Personligen lär jag mig bäst av att se mönster, för att göra detta är det bra för mig att se många exempel. I boken finns bara ett exempel för varje grej. Tror det skulle bli enklare att begripa parallell programmeringskoncept om det fanns mer än ett exempel för varje koncept.
    ---
    Lite förvirrande ibland då exemplena bara visar delar av den kod som används.
    ---
    Det innehållet som fanns var bra, men boken kändes lite tunn. Lite mer ingående beskrivningar och exempel av hur saker som kanaler och annat används vore trevligt.
    ---
    Kanske lite fler exempel, speciellt på sista avsnitten.
    ---
    Den saknar förklaringar av en del av de viktigare delarna kring ämnet. Till exempel, hur man delar upp data för beräkning i lagom stora mängder (convolve.go) i det närmaste obefintlig.
    ---
    Rakt på sak och går igenom alla moment tillräckligt bra för att förstå området.
    ---
    Bästa litteraturen om concurrency i go jag har sett.
    ---
    Lätt läst med bra exempel, läste igenom hela go introduction for java programers också. Även den mycket bra enligt mig.
    ---
    Välskriven och koncis, hade det mesta man behövde för uppgifterna.
    ---
    Mitt svar kan vara likgiltigt med tanke på att jag har (i början av kursen) läst flera kapitel från boken The Way to Go av Ivo Balbaert
    ---
    Det tog en liten stund att vänja sig vid författarens sätt att uttrycka sig. Men efter det flöt det på bra.
    ---
    Det var väll det som kursen innehöll så jag var nöjd :D lite mer googlande löste saker :)
    ---
    Förutsätter att man vet vad vad lokala variabler och cacheminnen är för nåt. Varför?
    ---
    Täcker väl in allt som kursen innehåller och har många bra exempel.
    ---
    Täckte precis det man behövde veta på ett enkelt sätt.
    ---
    Om tänket kring ämnet går att beskriva bättre skulle det i så fall kunna utvecklas. Buggletningen i uppgift tre tex.
    ---
    Jag skulle vilja att man går in mer på detaljer och ger lite fler avancerade exempel men den är bra som kom-igång bok.


  • Vad tycker du om föreläsningarna?

    1. 44% (21 st) Mycket bra.
    2. 35% (17 st) Bra.
    3. 6% (3 st) Acceptabelt.
    4. 0% (0 st) Mindre bra.
    5. 0% (0 st) Dåligt.
    6. 15% (7 st) Har inte deltagit.

    Ev. kommentarer (gärna konstruktiva):

    Ganska enkelt, men det kanske beror på att jag har läst allt material och gjort alla labbar före föreläsningen.
    ---
    Tyckte de gick igenom det som man behövde för att lösa uppgifterna och kompleterade literaturen på ett bra sätt.
    ---
    Har ibland varit för kort tid mellan föreläsningen och övningen för att det ska ge särskilt mycket.
    ---
    Lite för grundläggande med tanke på nivån på de som deltar i kursen, men innehållet är bra.
    ---
    Snilsson => bra
    ---
    Det kan vara bra att lyssna noggrannare på frågorna som ställs...
    ---
    Kan eventuellt bli lite djupare. Har man läst igenom veckans litteratur innan så känns väldigt mycket som samma sak igen. Däremot går jag fortfarande gärna på föreläsningarna därför jag tycker att Snilsson är en av de bästa föreläsningshållarna på KTH.
    ---
    Intressanta och välstrukturerade föreläsningar.
    ---
    Det är snilsson som håller de, vad behöver man säga mer?
    ---
    Jag missade de två första (tyvärr) så jag var bara på den sista. Detta gjorde att det blev betydligt mer arbete på labbarna.
    ---
    Dock var jag bara på en. Mycket roligt med delaktig publik.
    ---
    Har inte deltagit på ordinarie föreläsningar pga att det sett konstigt ut om en övningsassistent deltagit.
    Men har deltagit på handledarmöten vilka har fungerat som föresläsningar också.

    ---
    Jag var iofs bara på den första pga tidsbrist men den höll hög klass.
    ---
    Stefan är inspirenarnde att lyssna på. Bra upplägg med relevanta tips till övningarna och inte bara teori.
    ---
    Även om man redan kan det som föreläsningarna handlar om så går man dit ändå för Stefans föreläsningar är kul att lyssna på.


  • Hur många av föreläsningarna har du varit på?

    1. 13% (6 st) 0.
    2. 17% (8 st) 1.
    3. 31% (15 st) 2.
    4. 38% (18 st) 3.

  • Förbereder du dig till föreläsningarna (läser igenom relevanta avsnitt i boken/kompendiet etc)?

    1. 13% (6 st) Ja, alltid.
    2. 21% (10 st) Ofta.
    3. 27% (13 st) Ibland.
    4. 38% (18 st) Aldrig.


  • Vad tycker du om övning 1?

    1. 25% (12 st) Mycket bra.
    2. 60% (29 st) Bra.
    3. 10% (5 st) Hyfsat.
    4. 2% (1 st) Mindre bra.
    5. 0% (0 st) Dåligt.

    Ev. kommentarer om övning 1:

    A tour to go är en bra tutorial.
    ---
    För dålig återkoppling på övningarna, blir oftast bara en snabb redovisning av uppgiften utan vidare diskussion.
    ---
    Lärde mig om GO rutiner och var intressant reflektion
    ---
    I min mening alldeles för lätt och borde kunna ha lite högre nivå.
    ---
    Jättelätt
    ---
    Kan med fördel göras lite svårare.
    ---
    Missade den övningen. Dock var den interaktiva guiden väldigt bra som inkörsport.
    ---
    Är dålig på att uppskatta tiden uppgiften tog att göra.
    ---
    Min assistent var väldigt opedagogisk och man märkte att han var ovan att förklara saker.
    ---
    Man lärde sig skaer som man missade och det var kul.
    ---
    bra introduktion till go ganska låg nivå, men samtidigt nyttigt att testa runt lite i början


  • Hur mycket tid ägnade du åt övning 1?

    1. 25% (12 st) Mindre än 2 tim.
    2. 38% (18 st) 2-4 tim.
    3. 25% (12 st) 4-8 tim.
    4. 13% (6 st) 8-12 tim.
    5. 0% (0 st) Mer än 12 tim.

  • Vad tycker du om övning 2?

    1. 42% (20 st) Mycket bra.
    2. 50% (24 st) Bra.
    3. 8% (4 st) Hyfsat.
    4. 0% (0 st) Mindre bra.
    5. 0% (0 st) Dåligt.

    Ev. kommentarer om övning 2:

    Bra upplägg för att förstå channels och enklare koncept. Lite väl enkel lab.
    ---
    För dålig återkoppling på övningarna, blir oftast bara en snabb redovisning av uppgiften utan vidare diskussion.
    ---
    Samma som ovanför
    ---
    Också lätt
    ---
    Buggletandet var kul, Oraklet kändes lite meh dock, att skapa sin egen orakelfunktion kan visserligen vara kul, men då det i sig har relativt lite med parallellprogrammering att göra och kräver väldigt mycket tid samt ej var obligatoriskt så blev det ett hafsverk istället.
    ---
    Väldigt bra att få se vanliga buggar. Oraclet var en kul uppgift.
    ---
    Är dålig på att uppskatta tiden uppgiften tog att göra, kanske runt 8h eller längre?
    ---
    Missade övning 2
    ---
    Det var inte så mycket att vissa up denna gång dock mer diskution än gången innan som uppsklattades :)
    ---
    Intressant gav en djupare förståelse
    ---
    Väldigt rolig och lärorik uppgift med oraklet, bra med en friare uppgift för inda-eleverna då det kommer många uppgifter senare med mindre specifikationer.


  • Hur mycket tid ägnade du åt övning 2?

    1. 8% (4 st) Mindre än 2 tim.
    2. 46% (22 st) 2-4 tim.
    3. 33% (16 st) 4-8 tim.
    4. 13% (6 st) 8-12 tim.
    5. 0% (0 st) Mer än 12 tim.

  • Vad tycker du om övning 3?

    1. 40% (19 st) Mycket bra.
    2. 56% (27 st) Bra.
    3. 2% (1 st) Hyfsat.
    4. 2% (1 st) Mindre bra.
    5. 0% (0 st) Dåligt.

    Ev. kommentarer om övning 3:

    Bra med lite svårare uppgifter
    ---
    För dålig återkoppling på övningarna, blir oftast bara en snabb redovisning av uppgiften utan vidare diskussion.
    ---
    Inte varit på den men kommer vara nog detsamma som innan.
    ---
    Klart mycket klurigare än de andra två.
    ---
    Intressant och svårt! Speciellt buggletandet.
    ---
    Jag hittade båda buggarna, men jag har vänner som inte var på föreläsningen och inte hittade båda buggarna och de blev väldigt stressade av den "hårda formuleringen på hemsidan om att de skulle hittas"
    ---
    Är dålig på att uppskatta tiden uppgiften tog att göra, kanske runt 8h eller längre?
    ---
    Min assistent var väldigt opedagogisk och man märkte att han var ovan att förklara saker.
    ---
    Lite klurigare än andra, dock så kan det vara bra att förtydliga hur skräpsamlaren dödar kanaler så att man och att "Get" är blockande (det är omöjligt att komma runt att den är blockande)
    ---
    Mer diskution mer grejer om hur språkets restriktioner och så vidare.
    ---
    Oväntat tidskrävande. Började försent och missade den
    ---
    Klurig bugg i sista uppgiften
    ---
    Bugletningen var lite frustrerande svårt att veta om man tänkt rätt. kanske kunde teorin behandla mer av detta "tänket"
    ---
    Kunde försöka få in en liten kodsnutt där mutex är nödvändigt. Som det är nu går allt att lösa på bra sätt utan mutex, behövs ett typexempel.


  • Hur mycket tid ägnade du åt övning 3?

    1. 6% (3 st) Mindre än 2 tim.
    2. 33% (16 st) 2-4 tim.
    3. 35% (17 st) 4-8 tim.
    4. 21% (10 st) 8-12 tim.
    5. 2% (1 st) Mer än 12 tim.


  • Hur stor del av din totala studietid under period 4 har du ägnat åt den här kursen?

    1. 33% (16 st) Mindre än 10%.
    2. 52% (25 st) 10-25%.
    3. 10% (5 st) 25-40%.
    4. 4% (2 st) Mer än 40%.


  • Kursen är på 3 hp. Vad tycker du om det jämfört med andra kursers poängantal?

    1. 71% (34 st) Lagom med 3 hp.
    2. 8% (4 st) Borde vara mer.
    3. 21% (10 st) Borde vara mindre.


  • Förslag till förbättringar av kursen:

    Svårt att komma med förslag då den har bra upplägg, det skulle vara att försöka ha avstånd mellan övning och föreläsning särskilt situationen den 26-27 mars.
    ---
    Lite djupare/utförligare diskussioner på övningarna, annars väl genomförd och intressant.
    ---
    Ha gärna fler övningar.
    ---
    Större kurs, fler moment, fler övningar.
    ---
    Kursen överlag känns som att man skrapar på ytan i ämnet, lite mer avancerade grejer vore roligt.
    ---
    Mer magi och mer kakor.
    ---
    -
    ---
    Väldigt väldigt intressant, hade gärna sett en utökning av kursen. För dom som går indan hade det varit bra med ett krav att slutprojektet innehöll krav på någon form av parallellitet!
    ---
    Knyt gärna föreläsningarna mer till de andra "kursbökerna" om go för C/Java också och visa gärna tydligt var det står om saker.
    ---
    I förhållande till kursens längd så vet jag inte så mycket man skulle kunna förbättra, upplägget med kontinuerliga inlämningsuppgifter som examination fungerar mycket väl.
    ---
    -Första förslaget som jag kom på var "fler övningar", men om man tänker lite djupare så har de nuvarande övningarna redan täckt ~90 % av ämnet.

    -Poängantalet borde vara mindre, om man tänker relativt andra kurser, så som diskmatten till exempel: där är poängantalet för B-delen 3 och täcks av 12 föreläsningar 6 övningar. Men om man sänker poängantalet så tror jag knappt att någon kommer att välja den :(

    -Frivilliga uppgifter på Kattis? ...för att kompensera för poängantalet? På så sätt kan man bekanta sig med språket på ett roligt/intressant sätt :)

    ---
    Om man har en kurs på 1,5 poäng känns lite som den ska ligga i en annan kurs nu men jag tycker att lite mer skulle man kunnat stoppa i kursen. Dock är kursen på grundnivån och förkunskaperna skilde sig avsevärt mellan individer.
    ---
    Det är lätt och helt riskfritt att fuska tyvärr,
    ---
    Se till så det blir mindre grupper. 26 personer är för många.
    ---
    kanske något slags visuellt hjälpmedel för att se hur det skulle kunna gå till likt animeringar som finns då man vill lära sig sorterings algoritmer tex.
    ---
    Gör den längre och utöka med mer material. Denna kurs gav mig mycket inspiration och intresse för parallellprogrammering. Men kursen tog slut för snabbt. Jag skulle vilja veta mer om parallellprogrammering än bara dess grunder.
    ---
    Kanske kort kan gå igenom hur man startar trådar med pthread.h i c/c ung. http://ramcdougal.com/threads.html.
    ---
    Övningarna låg jobbigt till i schemat.


  • Ytterligare kommentarer om kursen:

    Bra kurs, rätt format.
    ---
    Kursen borde utvidgas och göras större då det är en intressant och lärorik kurs.
    ---
    Mycket kul kurs, du är ett föredöme! :)
    ---
    Väldigt vettigt att lära sig tidigt! Bra inlägg!
    ---
    -
    ---
    Mycket rolig och lärorik
    ---
    En kort men bra kurs som introducerar begreppen kring parallellprogrammering. Språket Go har varit särskilt intressant att lära sig.
    ---
    Pedagogik då den är som bäst!
    ---
    Trevlig kurs, man lärde sig en hel del (ett nytt språk) :)

    -Kommentar för alla övningar: Diskutera, gå igenom intressanta ämnen istället för att sluta tidigt :(

    Inga fler kommentarer...

    ---
    Mycket Roligt med GO hoppas du har samma kurs igen :)
    ---
    Synd att det inte fanns en extrachans.
    ---
    Nice!
    ---
    Väldigt bra och genomtänkta labbar. Ingen uppgift kändes onödig.
    ---
    Tiden går fort när man har roligt.
    ---
    Synd att alla inte hade möjligt att ta kursen, som ville göra det.

  • Copyright © Sidansvarig: Stefan Nilsson <snilsson@nada.kth.se>
    Uppdaterad 2013-05-30