Siirry suoraan sisältöön

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.

Siirry alkuun