Johdatus funktionaaliseen ohjelmointiin
Year | Semester | Date | Period | Language | In charge |
---|---|---|---|---|---|
2012 | spring | 13.03-26.04. | 4-4 | Finnish | Joel Kaasinen |
Lectures
Time | Room | Lecturer | Date |
---|---|---|---|
Thu 16-18 | B123 | Joel Kaasinen | 15.03.2012-15.03.2012 |
Thu 16-18 | D122 | Joel Kaasinen | 22.03.2012-22.03.2012 |
Thu 16-18 | CK112 | Joel Kaasinen | 29.03.2012-26.04.2012 |
Huom! Luento TO 22.3. salissa D122 ja luennot TO 29.3. alkaen auditoriossa CK112!
The lecture on THU 22.3. in room D122 and the lectures starting from THU 29.3. in auditorium CK112!
Information for international students
Contact me (joel dot kaasinen at cs dot helsinki dot fi) if you want to participate in English!
General
HUOM! Kesällä järjestetään kurssi Haskell Workshop!
Completing the course
Harjoitustehtävät
Kurssi suoritetaan harjoitustehtävillä. Harjoitustehtävät ovat lyhyitä ohjelmointitehtäviä joita on n. 20 / viikko.
Harjoitustehtäviin saa pajamuotoista ohjausta.
Harjoitustehtävät palautetaan palautusjärjestelmään. Ks. alla.
Harjoitustehtäville on saatavilla yksikkötestit.
Arvostelu
Viimeinen harjoitustehtäväsetti toimii "leikkurina": siitä on suoritettava vähintään 80% päästäkseen kurssista läpi. Kurssin arvosana määräytyy lineaarisesti tehtyjen tehtävien kokonaismäärästä siten että 40% = 1 ja 90%=5.
- Tehtävien kokonaismäärä: 126
- Pisterajat:
- 0-65 tehtävää
- 66-80 tehtävää
- 81-96 tehtävää
- 97-112 tehtävää
- 113-126 tehtävää
Viikkoaikataulu
- Ti 14-18 Pajaohjausta (BK107)
- To 12-16 Pajaohjausta (BK107)
- To 16-18 Luento
- To 23:59 Edellisen viikon tehtävien deadline
- Tehtävät julkaistaan väh. viikkoa ennen deadlinea.
Huom! Pajaohjausta vasta toisesta luentoviikosta alkaen sillä ensimmäiset tehtävät julkaistaan torstaina 15.3.!
Huom! Pajaohjaukset jatkuvat 10.5 asti!
Literature and material
Luennot
Saatavilla kaksi versiota. Päivittyvät sitä mukaa kun tulevat valmiiksi.
- Puhdas html
- Html-kalvot
- Toisen luennon virheet korjattu 22.3.
- opc-esimerkki korjattu 12.4.
- kolmannen luennon virheet korjattu 13.4.
- neljännen luennon typot korjattu ja viimeinen esimerkki päivitetty 19.4.
- kuudennen luennon virheet korjattu (toivottavasti) 27.4.
Harjoitukset
Kalvot sisältävät lyhyen ohjeen tehtävätiedostojen käytöstä.
- Viikko 1:
W1.hs
W1Test.hs
- Deadline 22.3
- korjattu tehtävänantoja 15.3.
- lisätty huomio smallestDivisor-tehtävään 16.3.
- Mallivastaus:
W1Sol.hs
- Viikko 2:
W2.hs
W2Test.hs
- Deadline 29.3
- Vaihtoehtoinen testitiedosto:
W2TestSansHT.hs
. Käytä tätä jos törmäät mystisiin ongelmiinW2Test.hs
:n kanssa. - lisätty tehtäväpohjaan argumentit 21.3.
- korjattu powersin esimerkit 21.3.
- korjattu fromTo-testin virheviesti 22.3.
- lisätty esimerkki search-tehtävään 23.3.
- selvennetty quicksort-tehtävänantoa 28.3.
- parempi squares-esimerkki 28.3.
- korjattu searchin esimerkki 29.3.
- Mallivastaus:
W2Sol.hs
- Viikko 3:
W3.hs
W3Test.hs
- Deadline 12.4 (välissä pääsiäisloma)
- debug-tehtävän testi korjattu 29.3. Katsothan että ratkaisusi menee uudesta testistä läpi!
- printFibs-testiä pienennetty 10.4.
- pieni selvennys interact'-tehtävän tekstiin 12.4.
- selvennetty debug-tehtävän tehtävänantoa ja lisätty esimerkkejä 12.4.
- Lisätty esimerkki mkCounter-tehtävään 12.4.
- Mallivastaus:
W3Sol.hs
- Viikko 4:
W4.hs
W4Test.hs
- Deadline 19.4
- Korjattu puutestit testaamaan pienet tapaukset ensin 12.4.
- Lisätty esimerkkejä rgb-tehtävänantoon 12.4.
- Korjattu tehtävänantoihin jääneet TODO-merkkinnät, eli selvennetty tehtäviä 15 ja 16 13.4.
- Selvennetty tehtävää 16 lisää 16.4.
- Mallivastaus:
W4Sol.hs
- Viikko 5:
W5.hs
W5Test.hs
- Deadline 26.4
- Korjattu tehtävän 3 testi ja parannettu tehtävän 2 testiä 19.4.
- Korjattu tehtävän 3 tehtävänantoa 19.4.
- Korjattu tehtävän 2 testi 24.4.
- Mallivastaus:
W5Sol.hs
- Mallivastaukseen lisätty selitys Fun-tehtävän ratkaisusta 2.5.
- Viikko 6:
W6.hs
W6Test.hs
- Deadline 10.5.
- Parannettu tehtävän 9 testejä 28.4.
- Tehtävästä 13&14 oli unohtunut syöteformaatin kuvaus. Lisätty 29.4.
- Tehtävien 19&20 testejä laajennettu 3.5.
- Tehtävän 16 testejä löysennetty 6.5.
- Tehtävien 19&20 eräs esimerkki korjattu 7.5.
- Mallivastaus:
W6Sol.hs
- Viimeinen viikko:
W7.hs
W7Test.hs
- Deadline 10.5.
- Tämä on se setti josta täytyy saada vähintään 80% (eli väh. 8 tehtävää!) päästäkseen kurssista läpi
- Tehtävän 6 tehtävänanto korjattu 3.5.
- Mallivastaus:
W7Sol.hs
- Pistetilasto
Palutusjärjestelmä
Palautusjärjestelmä on osoitteessa http://joamaki.users.cs.helsinki.fi/jfo/ . Kirjaudu sisään opiskelijanumerollasi ja sukunimelläsi. Palveluun on luotu tunnukset niille, jotka olivat ilmoittautuneet kurssille ilmo-järjestelmässä 19.3.
Jos et pääse kirjautumaan, ota yhteyttä Joel Kaasiseen (joel dot kaasinen at cs dot helsinki dot fi)!
Palautusjärjestelmään ladataan tehtävätiedostot (W1.hs
jne). Voit palauttaa monta versiota, viimeinen ennen deadlineä palautettu arvostellaan.
Palautusjärjestelmästä näet myös palautuksiisi annetut kommentit!
QuickCheckin asentaminen
Jos kohtaat seuraavannäköisen virheilmoituksen:
W1Test.hs:8:7: Could not find module `Test.QuickCheck.All':
täytyy sinun asentaa QuickCheck
-kirjasto. Se käy usemmilla järjestelmillä näin:
cabal update cabal install quickcheck
Tämä asentaa kirjaston kotihakemistoosi hakemiston .cabal
alle, josta runhaskell
ja ghc
sen löytävät.