Funktionaalinen ohjelmointi (5op)
Opintojakson tunnus: TT00DA54
Opintojakson perustiedot
- Laajuus
- 5 op
- Opetuskieli
- suomi
- Vastuuhenkilö
- Jani Immonen
Osaamistavoitteet
Tämä kurssi esittelee funktionaalisen ohjelmoinnin keskeiset periaatteet ja antaa opiskelijoille valmiudet suunnitella ennakoitavaa, modulaarista ja koostettavaa ohjelmistoa puhtaiden funktioiden, muuttumattomuuden (immutability) ja korkeamman asteen abstraktioiden avulla.
EUR-ACE-kompetenssit:
Tieto ja ymmärrys
Insinöörikäytäntö
Viestintä- ja tiimityötaidot
Monialaiset kompetenssit
Tutkimus- ja tiedonhankintataidot
Oppimistulokset:
Kurssin suoritettuaan opiskelija osaa soveltaa funktionaalisen ohjelmoinnin käsitteitä kestävien ja ylläpidettävien ohjelmistojärjestelmien suunnitteluun, toteutukseen ja arviointiin.
Sisältö
Kurssi esittelee funktionaalisen ohjelmoinnin keskeiset peruskäsitteet, kuten puhtaat funktiot, muuttumattomuuden (immutability), korkeamman asteen funktiot, rekursion ja funktioiden koostamisen, painottaen deklaratiivista ongelmanratkaisua ja koodin päättelyä. Lisäksi kurssilla käsitellään edistyneempiä aiheita, kuten vahvat staattiset tyyppijärjestelmät, algebralliset tietotyypit, hahmonsovitus (pattern matching) sekä rinnakkaisuusmallit, ja tarkastellaan niiden käytännön toteutuksia moderneissa funktionaalisissa ohjelmointikielissä.
Esitietovaatimukset
Ohjelmoinnin perusteet
Käyttöjärjestelmät
Arviointikriteerit, tyydyttävä (1)
Välttävä (1): Opiskelija on perehtynyt kurssilla käsiteltyihin aiheisiin. Opiskelija pystyy ohjattuna kirjoittamaan yksinkertaisia funktioita funktionaaliseen tyyliin funktionaalista ohjelmointikieltä käyttäen.
Tyydyttävä (2): Opiskelija ymmärtää suurimman osan kurssilla käsitellyistä aiheista, mutta hänellä on vaikeuksia soveltaa tätä tietoa käytännössä. Opiskelija ei kykene itsenäisesti etsimään olennaista tietoa. Opiskelija pystyy ohjattuna kirjoittamaan yksinkertaisia ohjelmia funktionaaliseen tyyliin funktionaalista ohjelmointikieltä käyttäen.
Arviointikriteerit, hyvä (3)
Hyvä (3): Opiskelija osaa hyödyntää kurssilla hankittua tietoa kaikkein perustapauksissa. Opiskelija osaa käyttää kurssilla käsiteltyihin aiheisiin liittyvää tietoa. Opiskelija pystyy kirjoittamaan yksinkertaisia ohjelmia funktionaaliseen tyyliin funktionaalista ohjelmointikieltä käyttäen.
Erittäin hyvä (4): Opiskelija osaa hyödyntää kurssilla hankittua tietoa useimmissa tavanomaisissa tilanteissa. Opiskelija osaa itsenäisesti hakea ja ymmärtää kurssilla käsiteltyihin aiheisiin liittyvää tietoa. Opiskelija pystyy kirjoittamaan ohjelmia funktionaaliseen tyyliin funktionaalista ohjelmointikieltä käyttäen.
Arviointikriteerit, kiitettävä (5)
Erinomainen (5): Opiskelija ymmärtää kaikki kurssilla käsitellyt aiheet ja osaa soveltaa niitä innovatiivisesti myös vaativissa tilanteissa. Opiskelija pystyy itsenäisesti hakemaan ja hyödyntämään kurssilla käsiteltyihin aiheisiin liittyvää tietoa. Opiskelija osaa kirjoittaa monimutkaisia ohjelmia funktionaaliseen tyyliin funktionaalista ohjelmointikieltä käyttäen.