Ohjelmoinnin syventävät tekniikat (5 op)
Toteutuksen tunnus: 5G00EU62-3004
Toteutuksen perustiedot
Ilmoittautumisaika
22.11.2023 - 05.01.2024
Ajoitus
01.01.2024 - 05.05.2024
Laajuus
5 op
Toteutustapa
Lähiopetus
Yksikkö
Tietotekniikka
Toimipiste
TAMK Pääkampus
Opetuskielet
- Suomi
Koulutus
- Tietotekniikan tutkinto-ohjelma
Opettaja
- Jere Käpyaho
Vastuuhenkilö
Jere Käpyaho
Ryhmät
-
22I224Ohjelmistotekniikka
Tavoitteet (OJ)
Opiskelija tietää sisällössä kuvattujen ohjelmointiteknisten asioiden periaatteet, yleisimpien ohjelmistojen suunnittelumallien toteutusperiaatteet ja toteutuksen valituilla ohjelmointikielillä. Opiskelija osaa hyödyntää sisällössä mainittuja asioita käytännön ongelmanratkaisussa. Opiskelija tuntee sisällössä kuvattujen aihealueiden yleisimmät hyödyntämiskohteet erilaisissa ohjelmistoprojekteissa.
Sisältö (OJ)
Periytyminen, virtuaalifunktiot, staattiset metodit ja tietojäsenet, mallit, yleisimpiä ohjelmoinnin arkkitehtuuriratkaisuja, lambdat ja funktionaalisuus, ohjelmistokehyksen käsite ja käytännön esimerkit. Tutustuminen aihealueisiin eri ohjelmointikielten näkökulmasta.
Esitietovaatimukset (OJ)
Ohjelmonnin perustet, Ohjelmoinnin edistyneet piirteet
Arviointikriteerit, tyydyttävä (1-2) (OJ)
Opiskelija
-ymmärtää sisällössä kuvatut ohjelmoinnin syvempään osaamiseen liittyvät käsitteet
-osaa ratkoa ohjelmointiongelmia koodiesimerkkien ja malliratkaisujen pohjalta itsenäisesti
-tuottaa pääosin toimivaa ohjelmakoodia
-suorittaa tehtävät annettujen aikataulujen puitteissa
Arviointikriteerit, hyvä (3-4) (OJ)
Opiskelija
-ymmärtää sisällössä kuvatut ohjelmoinnin syvempään osaamiseen liittyvät käsitteet
-osaa em. asioita hyödyntäen ratkoa käytännön ohjelmointiongelmia monipuolisesti ja perustellusti
-tuottaa pääosin hyvää ja selkeää ohjelmakoodia
-osaa tunnistaa mahdollisia vaihtoehtoisia toteutustapoja
-suorittaa tehtävät annettujen aikataulujen puitteissa
Arviointikriteerit, kiitettävä (5) (OJ)
Opiskelija
-ymmärtää opintojakson sisällössä kuvatut ohjelmoinnin syvempään osaamiseen liittyvät käsitteet
-osaa ratkoa aihealueen käytännön ohjelmointiongelmia kekseliäästi ja monipuolisesti
-osaa käyttää hyviä ja optimaalisia ohjelmointirakenteita
-tuottaa hyvää ja selkeää ohjelmakoodia
-osaa tunnistaa mahdolliset vaihtoehtoiset toteutustavat
-hallitsee hyvin ja monipuolisesti opintojakson aihealueet
-osaa arvioida ja analysoida omaa ohjelmointityötään kriittisesti ja monipuolisesti
-suorittaa tehtävät annettujen aikataulujen puitteissa
Aika ja paikka
Kts. kurssin Moodle-sivut
Tenttien ja uusintatenttien ajankohdat
Ei tenttiä
Arviointimenetelmät ja arvioinnin perusteet
Kurssi suoritetaan viikkoharjoituksilla sekä projektityöllä. Katso tarkempi kuvaus arviointimenetelmistä kurssin Moodle-sivulta.
Arviointiasteikko
0-5
Opiskelumuodot ja opetusmenetelmät
Lähiopetus, teoriaa ja harjoittelua
Oppimateriaalit
John Ousterhout, A Philosophy of Software Design
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns
Paul Deitel, Harvey Deitel, C++20 for Programmers
Nick Samoylov, Learn Java 17 Programming Second Edition
Joseph Albahari, C# 10 in a Nutshell
Steve Klabnik, Carol Nichols, The Rust Programming Language
Opiskelijan ajankäyttö ja kuormitus
Kurssi vastaa laskennallisesti 5 x 27,5 h opiskelijan työtä, mistä lähiopetuksen osuus on 45 h. Kurssilla on viikottaiset harjoitustehtävät ja projektityö.
Sisällön jaksotus
Kts. kurssin Moodle-sivu
Toteutuksen valinnaiset suoritustavat
Kts. kurssin Moodle-sivut
Arviointikriteerit - hylätty (0) (Ei käytössä, kts Opintojakson Arviointikriteerit ylempänä)
Katso tarkemmat arviointikriteerit kurssin Moodle-sivulta.
Arviointikriteerit - tyydyttävä (1-2) (Ei käytössä, kts Opintojakson Arviointikriteerit ylempänä)
Katso tarkemmat arviointikriteerit kurssin Moodle-sivulta.
Arviointikriteerit - hyvä (3-4) (Ei käytössä, kts Opintojakson Arviointikriteerit ylempänä)
Katso tarkemmat arviointikriteerit kurssin Moodle-sivulta.
Arviointikriteerit - kiitettävä (5) (Ei käytössä, kts Opintojakson Arviointikriteerit ylempänä)
Katso tarkemmat arviointikriteerit kurssin Moodle-sivulta.