Ero sivun ”Funktionaalinen ohjelmointi” versioiden välillä

[katsottu versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
ei suoria linkkejä internetiin: poisto; hyväksyntä lopuille
Lisätty miten Imperial College opettaa Haskellia. Lisätty lähteisiin Niemelän, Vuorisen ja Partasen teokset ja muutama sana näistä.
Rivi 50:
Tietojenkäsittelytieteen perusteita opetettiin funktionaalisella [[Scheme]]-kielellä noin sadassa oppilaitoksessa vuonna 2007. Tällöin lähes poikkeuksetta oppikirja on kehuttu ''Structure and Interpretation of Computer Programs''. Kirjan verkkoversio ja videoluennot ovat saatavilla verkosta.
 
Yleensä funktionaalisia kieliä ei käytetä perusopetuksessa, mutta tästä on nähtävissä yhä enemmän poikkeuksia, myös Suomessa. Esimerkkinä tästä on Tiina Partasen kirjoittama Racket-ohjelmoinnin oppimateriaali. Yliopistoissa funktionaalista ohjelmointia opetetaan usein syventävällä kurssilla esimerkiksi [[Haskell]]- tai [[Scheme]]-ohjelmointikielellä. Tästä on kuitenkin poikkeuksia. Imperial College Lontoossa aloittaa ohjelmoinnin opetuksen kuuden viikon mittaisella Haskell-kurssilla, siinä missä esimerkiksi Suomessa Haskell-kieltä opiskellaan yleensä vasta toisena tai kolmantena opiskeluvuonna tai syventävissä opinnoissa.
 
Koska suomenkielistä oppimateriaalia on hyvin vähän tarjolla, ovat jotkin yksityishenkilöt päätyneet tarjoamaan ilmaista oppimateriaalia Haskell-kielen ideoiden opiskeluun. Haskell-kielen oppiminen tukee hyvin minkä tahansa funktionaalisen tai funktionaalisia piirteitä sisältävän ohjelmointikielen oppimista. Tästä on esimerkkinä Juuso Vuorisen kirjoittama teos Kanaherkun tuoksuinen johdatus funktionaaliseen ohjelmointiin. Teos korostaa tiedon käsittelyn näkökulmaa ja siinä tutkitaan jo moniin muihinkin ohjelmointikieliin tiensä löytäneet funktionaalista ohjelmointiparadigmaa edustavat funktiot map, filter ja fold (reduce). Edellä mainitut funktiot ovat käytössä myös lukuisissa ei-funktionaalisissa kielissä, joten niiden oppimisesta on hyötyä monen eri ohjelmointikielen ymmärtämisessä.
 
On myös huomattu, että funktionaalinen ohjelmointi tukee matematiikan oppimista - esimerkkinä algebran ja funktionaalisen ohjelmoinnin välillä havaittu positiivinen siirtovaikutus. Ohjelmointiajattelua väitöskirjassaan ruotinut TkT Pia Niemelä totetaa, että "erityisesti funktionaaliset kielet tuottavat vastavuoroisia hyötyjä matematiikan opetuksen kanssa".
 
== Lähteet ==
Rivi 61:
* [http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ Hal Abelsonin & Gerald Jay Sussmanin videoluennot]
* Hughes, John: [http://www.cse.chalmers.se/~rjmh/Papers/whyfp.pdf Why Functional Programming Matters]
*Niemelä, Pia: [https://tutcris.tut.fi/portal/files/16515265/niemela_1565.pdf From Legos and Logos to Lambda A Hypothetical Learning Trajectory for Computational Thinking]
*Vuorinen, Juuso: [http://www.ideallearning.fi/index.php/blogi/68-kanaherkun-tuoksuinen-johdatus-funktionaaliseen-ohjelmointiin Kanaherkun tuoksuinen johdatus funktionaaliseen ohjelmointiin]
*Partanen, Tiina: [https://racket.koodiaapinen.fi/esittely.html Racket koodiaapinen]
*Koh, Amanda: [https://wwwf.imperial.ac.uk/blog/student-blogs/2016/03/05/haskell-driving-test/ Imperial College Student Blogs]
 
[[Luokka:Funktionaalinen ohjelmointi]]