TIES341 Funktio-ongelmointi (3–5 op)
Avainteksti
Kuvaus
Tällä kurssilla käydään läpi funktio-ohjelmoinnin ja todistusteorian yhtymäkohdat, joihin lukeutuvat ainakin todistusrakenteet: määritelmät, esimerkit, teoreemat, lemmat, faktat, huomiot, seuraukset, väitteet ja ominaisuudet; todistaminen: sieventämällä, uudelleenkirjoittamalla, luetteloimalla ja induktiolla; todistukset: vapaamuotoiset ja muodolliset; tietorakenteet: parit, listat ja äärelliset kuvaukset; taktiikat: ohjelmia ja todistuksia etsivät ohjelmat; logiikka: klassinen ja konstruktivistinen; sekä uuttaminen: todistukset matemaattisina objekteina ja todistusten kääntäminen ohjelmiksi.
Osaamistavoitteet
Tällä kurssilla tutustumme siihen, miltä tyypitetty (eli staattisesti tyypitetty) funktio-ohjelmointi näyttää ja mihin sitä voi käyttää. Tämän kurssin tavoite ei ole kouluttaa teistä sovellusohjelmoinnin huippuosaajia, vaan tarjota teille syvällisempiä näkökulmia ohjelmoinnin perusasioihin ja muodostaa teille riittävät pohjatiedot siihen, että voitte myöhemmin tutustua muodolliseen todistamiseen ilman kyyneliä. Toisaalta tämä kurssi tarjoaa teille myös erinomaisen tekosyyn uudenlaisten työkalujen ja työtapojen kokeilemiseen.
Esitietojen kuvaus
Tällä kurssilla ei ole ehdottomia kurssimuotoisia esitietovaatimuksia. Osallistujilta kuitenkin edellytetään tietokoneen peruskäytön hallintaa, funktio-ohjelmoinnin perusosaamista, kohtuullista matemaattista kypsyyttä sekä tervettä asennetta työntekoon. Matemaattinen kypsyys ei ainoastaan tee kurssista mahdollista suorittaa, vaan auttaa sen lisäksi luomaan yhteyksiä sellaisiin asioihin, joita käsitellään syvällisemmin muilla kursseilla.
Suositellut esitiedot
- Esitietoryhmä 1
- TIEA341 Funktio-ohjelmointi (1–5 op)
- TIEP114 Tietokoneen rakenne ja arkkitehtuuri (1–5 op)
- ITKA201 Algoritmit 1 (5 op)
- TIEA211 Algoritmit 2 (4 op)Ei julkaistu tälle opetussuunnitelmakaudelle
- TIEP111 Ohjelmointi 2 (8 op)
- Esitietoryhmä 2