Haskell Workshop
Vuosi | Lukukausi | Päivämäärä | Periodi | Kieli | Vastuuhenkilö |
---|---|---|---|---|---|
2012 | kesä | 18.05-08.06. | 5-5 | Suomi | Joel Kaasinen |
Luennot
Aika | Huone | Luennoija | Päivämäärä |
---|---|---|---|
Pe 12-16 | B221 | Joel Kaasinen | 18.05.2012-08.06.2012 |
Opetusajat sovitaan opiskelijoiden kanssa ennen kurssin alkua.
Teaching times will be agreed with the students before the course starts.
Information for international students
Contact me (joel dot kaasinen at cs.helsinki.fi) if you are interested in participating in English!
Yleistä
HUOM! tapaamisten sali onkin BK107!
Kurssi koostuu neljästä viikosta. Jokaisella viikolla on neljän tunnin tapaaminen, joka koostuu kevyestä luennoinnista ja tehtäviin tutustumisesta. Tämän jälkeen tehtävien tekemistä jatketaan itsenäisesti. Jokainen viikko käsittelee eri aihetta, ja viikot ovat suhteellisen itsenäisiä.
Alustava aihelistaus
- Profilointi ja optimointi
- Rinnakkaisuus
- Tehokas puhdas IO: Iteratee
- Funktionaalinen suunnittelu ja tyyppijärjestelmän edistynyt käyttö
Tapaamisajat
Kurssi tapaamiset ovat perjantaisin klo 12-16. Tapaamisia on neljä: 18.5., 25.5., 1.6. ja 8.6.
Tapaamisten sali ilmoitetaan myöhemmin.
Huom! Tapaamisajasta äänestäminen on auki täällä: http://www.doodle.com/as6g6vepk6t9yu2r . Olisi kiva jos äänestäisitte omilla nimillänne.
IRC-kanava
Kurssin IRC-kanava on #jfo2012 IRCNetissä. Kanavalla tarjolla tukea tehtävien tekemiseen ja keskustelua kurssin tiimoilta.
Kurssin suorittaminen
Kurssi suoritetaan harjoitustehtävillä. Kurssista saa opintopisteitä 1-4 tehtyjen tehtävien määrän mukaan.
Pisterajat
- 10-18 tehtävää
- 19-27 tehtävää
- 28-36 tehtävää
- 37-44 tehtävää
Tulokset
Kesälomista johtuen tulokset kirjautuvat Oodiin vasta heinäkuun loppupuolella. Tässä kuitenkin virallinen tuloslista: checklist-hw.txt
Kirjallisuus ja materiaali
Tapaamisten muistiinpanot
workshop.org
(tekstitiedosto)HW1.zip
(ensimmäisen tapaamisen koodiesimerkit)HW2.zip
(toisen tapaamisen koodiesimerkit)MyIteratee.hs
Enumerator.hs
(kolmannen tapaamisen koodiesimerkit)Contains.hs
Counter.hs
Interp.hs
Families.hs
NumFamily.hs
(neljännen tapaamisen koodiesimerkit)TreeTypes.hs
(neljännen tapaamisen Bonus-esimerkki)
Tehtävät
- Palautusjärjestelmä
- Viikko 1:
X1.hs
- Deadline 27.5. 23:59
- Korjattu countin paluutyyppi 18.5.
- Tarkennettu count-tehtävän huomautusta ja korjattu typo (foldr' => foldl') viimeisestä tehtävästä 24.5.
- Korjattu viimeisen tehtävän numero 11:ksi 24.5.
- Mallivastaus:
X1Sol.hs
- Viikko 2:
X2.hs
- Deadline 3.6. 23:59
- Viimeisen tehtävän syötteet
- Mallivastauksia:
X2Sol.hs
Sum.hs
ConcSum.hs
SetCover.hs
- Mallivastaus
X2Sol.hs
korjattu tehtävien 1 ja 2 osalta 9.6.
- Viikko 3:
X3.hs
- Deadline 10.6. 23:59
- Korjattu tehtävänantoon jäänyt XXX 4.6.
- Korjattu kasa typoja 4.6.
- Mallivastaus:
X3Sol.hs
- Viikko 4:
X4.hs
- Deadline 17.6. 23:59
- Lisätty MultiParamTypeClasses ja korjattu tehtävä 7&8 11.6.
- Korjattu Find String String muotoon Find [Char] [Char] 12.6.
- Mallivastaus:
X4Sol.hs
Linkkejä
- Real World Haskell
- CS240h: Functional Systems in Haskell (jokseenkin vastaava kurssi Stanfordissa)
- enumerator — eräs iteratee-tyyppinen kirjasto
- GHC:n manuaalin luku 7 käsittelee GHC:ssä toteutettuja laajennoksia Haskelliin