check_circleYleistä opintojaksosta

Olio-ohjelmointi

  • Opintojakso alkaa tammikuussa 2017 viikolla 2.

Opintojakson tilanne

  • Alkukysely @Socrative - opettaja antaa huonetunnuksen (room number) ensimmäisellä tunnilla; tee kysely vain kerran
  • Tenttitulokset: tulevat tähän myöhemmin...
Yleistä
check_circleLabra 01

Opintojakson aloitus

TTV16S3, TTV16S4 Sormiharjoitus

Ohjelmoinnin kertaus:

Opintojakson ensimmäinen kontaktikerta. Käydään läpi opintojakson tavoitteet ja pelisäännöt. Kerrataan ohjelmoinnin perusteita, tutustutaan Microsoft Visual Studioon ja tehdään ohjelmointiin liittyviä perustehtäviä.
TTV16S3: Viikko 2/2017
TTV16S4: Viikko 2/2017
check_circleLabra 02

Versiohallinnan käyttöönotto ja ohjelmoinnin kertaus

GitHub-versiohallinta ja Visual Studion projektien versiohallinta. Kerrataan ohjelmoinnin perusteita, tutustuminen Microsoft Visual Studioon jatkuu ja tehdään ohjelmointiin liittyviä perustehtäviä (jatkoa demoista 01). Tämän kerran jälkeen ohjelmointiin liittyvät perusrutiinit pitää olla hyvin hallussa.
TTV16S3: Viikko 2/2017
TTV16S4: Viikko 3/2017
check_circleLabra 03

Johdanto olio-ohjelmointiin

Labrakerran tarkoitus on nostattaa innostusta olio-ohjelmointiin. Tutustutaan olio-ohjelmoinnin peruskäsitteistä olio- ja luokkarakenteisiin. Tehdään yhdessä ja itsenäisesti olio-ohjelmointiin liittyviä perustehtäviä. Kotitehtävät tehdään itsenäisesti, ne esitellään seuraavalla kerralla GitHub-palvelun kautta.
TTV16S3: Viikko 3/2017
TTV16S4: Viikko 4/2017
check_circleLabra 04

Olio-ohjelmointi

Labrakerran tarkoitus on ymmärtää kuinka olion tilaa voidaa suojata sen ulkopuoliselta mahdollisesti vaaralliselta käytöltä. Peruskäsitteiden osalta tutustutaan perintään, jonka tarkoitus on toteuttaa ohjelmointia käyttämällä apuna jo aikaisemmin määriteltyjä luokkia ja vähentää samanlaisen koodin esiintymissä useissa luokissa. Tehdään olio-ohjelmointiin liittyviä perustehtäviä.
TTV16S3: Viikko 3/2017
TTV16S4: Viikko 5/2017
check_circleLabra 05

Olio-ohjelmointi

Suuremmat ohjelmat koostuvat useista eri reaalimaailman asioista. Käsitteiden abstraktio, rajapinta ja koostaminen läpikäynti. Labraissa harjoitellaan luokan koostamista useista eri olioista ja sitä miten oliot voivat käyttää toisia olioita. Tehdään yhdessä ja itsenäisesti edellä mainittuja olio-ohjelmointiin liittyviä perustehtäviä.
TTV16S3: Viikko 4/2017
TTV16S4: Viikko 6/2017
check_circleLabra 06

Olio-ohjelmointi

Ohjelmoinnissa tulee useasti eteen tilanne, että ohjelmassa tulee pystyä käyttämään paljon tietoa. Tällöin on kätevämpää sijoittaa tiedot tietorakenteisiin, kuin käyttää esimerkiksi taulukkoa tai hirveää määrää muuttujia. Labroissa esitellään muutamia yleisiä tietorakenteita, joita voidaan käyttää apuna esim. kurssin harkkatyössä.
TTV16S3: Viikko 4/2017
TTV16S4: Viikko 7/2017
check_circleLabra 07

Olio-ohjelmointi

Ohjelmoinnin suorituksen aikana pääsee aina välillä tapahtumaan poikkeuksellisia tilanteita, joihin ohjelmoijan tulee ennakolta jo reagoida ohjelmoinnissa. Näillä tempuilla tehdään ohjelmoinnista vielä toimivampaa. Labraissa opetellaan myös perusrutiineja tiedostojen käsittelyyn konsoliohjelmasta käsin.
TTV16S3: Viikko 5/2017
TTV16S4: Viikko 8/2017
check_circleLabra 08

Testaaminen ja kertaustehtäviä

Yksikkötestauksen tarkoituksena on tarkistaa, ettei ohjelmointikoodeihin jää virheitä ja samalla kehittää ohjelmointikokonaisuuksia vielä paremmaksi kokonaisuutena. Yksikkötestaus on yksi tehokkaimmista ja helpoimmista tavoista parantaa ohjelmakoodin laatua ja sen avulla saadaan laadullisesti parempia ja luotettavampia ohjelmia. Labroissa opetellaan testaamaan omaa koodia, luokkia,olioita, metodeja. Lisäksi kerrataan keskeisiä olio-ohjelmointitapoja kertaustehtävien avulla.
TTV16S3: Viikko 5/2017
TTV16S4: Viikko 10/2017
check_circleLabra 09

Windows Presentation Foundation (WPF) ja Universal Windows Platform (UWP)

Tutustuminen WPF:ään (Windows Presentation Foundation) ja UWP:hen (Universal Windows Platformiin) sekä XAML-merkintäkieleen. UWP on erittäin laaja, opintojaksolla toteutetaan Windows-ohjelmia 13' kokoisina (ellei opiskelija halua tutustua muihin mahdollisuuksiin). Sovelluksien adaptiivisuutta eri näyttökokoon tutkitaan opintojaksolla, jos siihen jää aikaa.
TTV16S3: Viikko 6/2017
TTV16S4: Viikko 12/2017
check_circleLabra 10

GUI-ohjelmointi: XAML ja kontrollit

Labrakerralla tutustutaan muutamiin XAML:n layout-kontrolleihin, joilla voidaan ryhmitellä muita XAML:n kontrolleja. Tehdään muutamia layout-harjoitteita yhdessä ja opiskelijalle on tarjolla mukavia kotitehtäviä.
TTV16S3: Viikko 6/2017
TTV16S4: Viikko 13/2017
check_circleLabra 11

GUI ja tiedon sidonta

Tiedon sidonta on erittäin tärkeä osa käyttöliittymien ohjelmointia. Sovellukset lataavat ja esittävät paljon tietoa loppukäyttäjälle. On siis tärkeä oppia kuinka tietoa sidotaan tehokkaasti käyttöliittymään ja kuinka esitettyä tietoa voidaan muuttaa.
TTV16S3: Viikko 7/2017
TTV16S4: Viikko 14/2017
check_circleLabra 12

GUI ja tiedon sidonta jatkuu

Jatketaan edellisen demon merkeissä tiedon sidonnan opettelua. Opetellaan kuinka oliot ja oliokokoelmat voivat ilmoittaa tilansa ja ominaisuuksiensa muutoksista niin että GUI datasidonnan avulla reagoi automaattisesti. Tutustutaan MVVM-toteutusmalliin.
TTV16S3: Viikko 7/2017
TTV16S4: Viikko 14/2017
check_circleLabra 13

Tietokannat KickStart ja harjoitustyöt alulle

Tehdään pieni yksinkertainen demo miten voidaan lukea Labranetin Mysql-tietokannasta tietoja, ja esittää ne WPF-sovelluksessa.
Harjoitustyön suunnitelman sisällölliset tavoitteet. Ryhmäytyminen ja aiheen valinta. Opiskelija alkaa suunnitella oman harjoitustyön sisältöjä oman ryhmän kesken.
TTV16S3: Viikko 8/2017
check_circleHarjoitustyösuunnitelma

Harjoitustyösuunnitelma valmiiksi

Harjoitustyötä varten tehkää vain harjoitustyötä varten oma repository GitHubiin. Harjoitustyösuunnitelman voi tehdä joko Word-dokumenttina tai wiki-sivuna. Molemmissa tapauksissa suunnitelman on löydyttävä GitHubista annettuun määräaikaan 5.3 klo 23.59 mennessä!
TTV16S3: Viikko 9/2017
TTV16S4: ei koske
check_circleHarjoitustyösuunnitelma

Harjoitustyösuunnitelma katselmointi

Harjoitustöiden suunnitelmien esittely ja tenttiin valmistautuminen.
Kunkin htyöryhmän harjoitustyösuunnitelma katselmoidaan, ja siitä annetaan palautetta. Jos aikaa jää niin tehdään yhdessä kertaustehtäviä keskiviikon koetta varten.
TTV16S3: Viikko 10/2017
TTV16S4: ei koske
check_circleOlio-ohjelmointikoe
  • Kokeessa on sekä Teoriatehtäviä, joiden aikana EI saa käyttää apuna mitään materiaalia, että Ohjelmointitehtäviä, joiden aikana saa käyttää materiaalia apuna.
  • Luokassa puhuminen kielletty ja kaikki vuorovaikutteinen kommunikointi on kielletty.
  • Tehtävien ratkaisut eivät saa olla kenenkään muun kuin opettajan saatavilla.
Koe tehdään koneella, valmistaudu tekemään olio-ohjelmointiin liittyviä perustehtäviä.

TTV16S3: Viikko 10/2017
check_circleOhjelmointikokeen palautus
  • Tulokset: opettaja kertoo linkin
  • Mallivastausten läpikäynti.
Uusintakoe perjantaina 17.3. Uusintakokeeseen voivat osallistua hylätyn saaneet mutta myös hyväksytyn kokeen suorittaneet, jolloin parempi tulos jää voimaan.

Koetulokset ja opintojakson TTOS0200 tulokset opettajan antaman linkin takaa.
TTV16S3: Viikko 11/2017
Labra 14

Säikeet ja asynkroninen ohjelmointi

Tietokoneiden ohjelmien suorittamat toimenpiteet eivät aina ole suoraviivaisia, vaan tarvitaan erilaisia ajastimia ja taustaprosesseja esim. aikaavievien tehtävien suorittamiseen. Labraissa tutustutaan ajastimiin ja asynkroniseen ohjelmointiin. Erillisiä kotitehtäviä ei enää tule, vaan ryhmäläiset työstävät harkkatyötä eteenpäin suunnitellusti.
TTV16S3: Viikko 12/2017
Labra 15

XAML/C#-peli

Tutustutaan DispatcherTimer -luokkaan ja sen tapahtumankäsittelijään timer_Click. Peliin lisätään myös pienimuotoinen animaatio.
Erillisiä kotitehtäviä ei enää tule, vaan ryhmäläiset työstävät harkkatyötä eteenpäin suunnitellusti.
TTV16S3: Viikko 12/2017
Harjoitustyö

Harjoitustyön toteutusta

Opiskelijat jatkavat ryhmissä harjoitustöiden toteutustakontaktaktikerroilla. Opettaja on paikalla auttamassa ja antamassa palautetta. Toteuttakaa alkuperäiset toiminnalliset vaatimukset, testatkaa sovellustanne huolellisesti ja dokumentoikaa tekemänne.
Harjoitustyö ohjeistus.

Viikot 13-15/2017
Harjoitustyö

Harjoitustyön katselmointi, palautus ja seminaari

Opettaja katselmoi kunkin ryhmän harjoitustyön joko ke 19.4 tai ma 24.4 Opiskelijat esittelevät harjoitustyön. Harjoitustyö palautetaan kaikkine materiaaleineen (loppuraportti, kuvakaappaukset, seminaariesitelmä, ...) GitHubin repositoryyn. Seminaarit ke 26.4 klo 12:15 alkaen - kaikkien läsnäolo pakollinen.
Harjoitustyö ohjeistus.
Viikot 16-17/2017

...