Luennot ovat alempana käännetyssä aikajärjestyksessä. Yleensä kaksi tulevaa odottamassa ja sen alapuolella tänä vuonna pidetyt luennot.
Linkkejä:
Aihe: Virheistä selviäminen, yleistämistä {#L24} * Luennon aluksi opiskelijat rikkoivat koodia 15 min ja sitten näytetään millä strategioilla virheistä selvitään * debuggeri (breakpoint kohtaan, jossa virhettä epäillään ja sitten steppailemaan välillä Step Over ja välillä Step Into) * testit (onneksi kukaan ei rikkonut testejä, se olisi hankaloittanut hommaa) * versionhallinta (näyttää missä tiedostoissa muutoksia ja mitä muutoksia) * yleistämistä, * KerhonNimiController.java - dialogi, jolla kysytään kerhon nimi * TietueDialogController.java - dialogi, jolla voidaan muokata jäseniä, harrastuksia tms. * vaihe 8.1 - tietueen ja tietueiden yleistäminen * Perintä vs. rajapinta * StringGrid lajittelu kuntoon * ks. JasenStringGrid.java - malli miteb StringGridiä voi käyttää. Tietuessa on oma getAvain(k) jolloin lajittelu menee oikein. * Luennolla tehdyt Java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
Aihe: Yhteistyö, Oikeellisuustarkistukset. Etsiminen, lajittelu {#L23} * Jäsenen ja harrastusten välinen yhteistyö * etsiminen ja lajittelu * 16.6 Oikeellisuustarkistukset * 16.7 Kentät graafiseen käyttöliittymään * 16.8 Etsiminen * 16.9 Lajittelu avaimen kentän mukaan * 22. Etsiminen ja lajittelu - C++ monisteesta
* 22.3 Lajittelu - C++ monisteesta
* yksinkertainenvaihe 7.5 - etsiminen toteutettu * KerhoGuiController.java - ks. hae * Jasenet.java * yksinkertainenvaihe 7.6 - lajittelu toteutettu * Jasen.java * Jasenet.java * kuvaamuunnokset * ks: 3D ja linkku ja sieltä joku videoista (ehkä marraskuu on parempi?) * Luennolla tehdyt Java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
Aihe: Päätesyöttö, Tietue-rajapinta {#L22} * Rekursio, ks Ohj1 luento * 16. Kerho-ohjelman rakenne
* HT vaiheet yksinkertaistettuna * yksinkertainen vaihe 7.3 (muutokset yv7.2 -> yv7.3) - tietojen syöttö päätteltä. Harrastukset mukaan * Harrastus.java
* KerhoGUIController.java
* varsinainen vaihe 7 (muutokset 7.3 -> 7) - viilausta, mm harrastukset kenttätaulukolla. (ei käytetty StringGridiä, Harrastukset hieman eri tavalla). * Piirtäminen: * PiirtoMalliAWT.java - esimerkki piirtämisestä Javalla (AWT) * PiirtoMalliSwing.java - esimerkki piirtämisestä Javalla (Swing) * PiirtoMalliGraphics.java - sama esimerkki Graphics-luokalla * KolmioPiirtoAWT.java - esimerkki piirtämisestä ja rekursiosta (AWT) * KolmioPiirtoSwing.java - esimerkki piirtämisestä ja rekursiosta (Swing) * KolmioPiirtoSWT.java - esimerkki piirtämisestä ja rekursiosta (SWT) * Luennolla tehdyt Java-koodit
* Muutokset harrastusten näyttämiseksi * Muutokset harrastusten muokkaamiseksi * 1. luentotunti videona [.mp4] [.mp4-mobiili]
Aihe: Käyttöliittymä {#L21} * Tapahtuman käsittely Swing-ikkunoissa (ulko, sisä- ja nimettömät luokat, adapterit, perusajatus toimii myös JavaFX:lle) * Katso itsenäisesti väliltä 1:36 - 45:10 * FrameMalliKutsuista.java - frame josta kutsutaan eri tavoin tehtyjä käsittelijöitä * NappulaPainettuUlko.java - esimerkki ulkoisesta käsittelijä-luokasta * HiiriUlko.java - esimerkki ulkoisesta käsittelijä-luokasta jossa monta toteutettavaa metodia * Tentit ja viivakoodit * Yleistäminen * HT vaiheet yksinkertaistettuna * vaihe 6 muutokset 5 -> 6 - Tiedostojen käsittely
* Kerho.java
* Jasenet.java
* Jasen.java
* 16. Kerho-ohjelman rakenne * Yksinkertaiset vaiheet TIMissä * Vaihe 7.1 6 -> 7.1 TIMissä * “Tyhmä” versio tietojen lukemisesta päätteeltä * Vaihe 7.2 6 -> 7.2 - dialogilla * Jasen.java - tietojen hakeminen indeksin avulla * KerhoGUIController.java - Käyttöliittymä-luokkaan jäsenen käsittelyä * JasenDialogController.java - Käyttöliittymä-luokkaan jäsenen käsittelyä * Luennolle tehdyt valmiit java-koodit
* Luennolla tehdyt Java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
Aihe: Funktio-oliot {#L20}
Aihe: Kertaus olioista, pidetään käyttäen TIMin luentokysymyksiä {#L19} * HUOM! Ajoissa paikalle klo 10 TASAN * Ottakaan laitteet (kannettava, tabletti tai älykänny) mukaan * Kortti.java * Luennolla tehdyt Java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili] * luentoseinä
Aihe: Kertausta tiedostoista, oliosta ja dynaamisuudesta, linkitetty lista, Kerho {#L18} * Luku 15 Tiedostot
* Kertotaulu.java - esimerkki tiedostoon kirjoittamisesta * Kertotaulu7.java - esimerkki tiedostoon kirjoittamisesta (Java 1.7 try-lauseella + ComTest testit) * Linkitetyt listat * Kuva linkitetystä listasta
* Muuteltava kuva linkitetystä listasta * LinLista.java - esimerkki linkitetystä listasta * LinListaGen.java - esimerkki linkitetystä listasta * Java-harjoituksia linkitetyistä listoista (englanniksi, vaatii Java-applettien suorittamisoikeuden) * C++ -harjoituksia linkitetyistä listoista (suomeksi, vaatii Java-applettien suorittamisoikeuden)) * HT5 - aloitettu luokkien välisen yhteistyön tekeminen
* vaihe5 - osaa lisätä vakioharrastuksen ja etsiä tietyn jäsenen harrastukset * Harrastukset.java - osaa etsiä tietyn jäsenen harrastukset * Erot versio 5.1 ja 5 välillä * HT6 - tiedostot
* Luennolla tehdyt Java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
Aihe: Tiedostot. {#L17} * TaulukkoIter.java - dynaaminen taulukko yksinkertaisimmillaan, jossa iteraattori * Luku 15: Tiedostot
* Kovalevy * Monisteen Tiedosto-luvun esimerkkien lähdekoodit * luvut.dat - esimerkkitiedosto jota seuraavat ohjelmat lukevat * TiedKaLista.java - esimerkki tiedoston lukemisesta listaan yhdellä kertaa, huono jos tiedosto on iso * TiedKa.java - esimerkki tiedoston lukemisesta * TiedKa7.java - esimerkki tiedoston lukemisesta (Java 1.7 try-lauseella + ComTest testit) * TiedKaScanner.java - esimerkki tiedoston lukemisesta Scanner-luokan avulla * TiedKaScanner7.java - esimerkki tiedoston lukemisesta Scanner-luokan avulla (Java 1.7 try-lauseella + ComTestit) * TiedKaScannerI7.java - esimerkki tiedoston lukemisesta ForEach -silmukalla (Java 1.7 try-lauseella) * Kertotaulu.java - esimerkki tiedostoon kirjoittamisesta * Kertotaulu7.java - esimerkki tiedostoon kirjoittamisesta (Java 1.7 try-lauseella + ComTest testit) * Suoritusnopeus * Nopeustesti.java - esimerkki suoritusnopeuden testaamisesta tietorakenneluokille * ajat.txt - esimerkkiajoja edellisellä testillä * Luennolla tehdyt Java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
* luentoseinä
Aihe: Javan taulukot ja merkkijonot, Dynaamiset taulukot {#L15} * Luku 12: Java-kielen taulukoista
* taulukot - esimerkkejä Javan taulukoista * Kuut.java - esimerkki 1-ulotteisesta taulukosta ja sen läpikäynnistä * Mat2.java - esimerkki 2-ulotteisesta taulukosta ja sen käymisestä kokonaan lävitse * Mat3.java - esimerkki 2-ulotteisesta taulukosta ja sen käymisestä osittain lävitse * Argv.java - esimerkki pääohjelman argumenttien käytöstä * Luku 13: Dynaaminen muistinkäyttö
* dynaaminen - esimerkkejä dynaamisesta muistinkäytöstä * Taulukko.java - dynaaminen taulukko yksinkertaisimmillaan * TaulukkoGen.java - dynaaminen taulukko yksinkertaisimmillaan Java 1.5:n geneerisyyttä käyttäen * Luennolla tehdyt Java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
* luentoseinä
Aihe: Käyttöliittymän ja tietorakenteen yhteistyö {#L14} * Menusta rungoksi - kuinka etenen HT3 vaiheen muuttamisessa HT5 vaiheeseen * HT5 vaiheen alku, yksi tietorakenne
* KerhoGUIController.java - käyttöliittymän ulkoasusta riippumaton osa, perustuu kuitenkin JavaFX-kirjastoon * käyttöliitymä mukaan * KerhoGUI.java - Super-yksinkertaistettu malli Kerhon käyttöliittymästä * KerhoSwing.java - Super-yksinkertaistettu malli Kerhon GUI:in tulostavasta luokasta * ht 5.1 - käyttöliittymä mukaan * Versio jossa kysytään dialogilla * KerhoGUIController.java - käyttöliittymäkoodista ulkoasusta riippumaton osa, perustuu kuitenkin JavaFX-kirjastoon * JasenDialogController.java - jäsenen tietojen “kysyminen”, toistaiseki vain tulostaa
Aihe: Kuvasta toimivaksi ohjelmaksi {#L13} * Menusta rungoksi - kuinka etenen HT3 vaiheen muuttamisessa HT5 vaiheeseen * HT5 vaiheen alku, yksi tietorakenne
* yksinkertaistettu versio * Jasen.java - lisätty luokka Jasen ja testattu * Jasenet.java - lisätty luokka Jasenet ja testattu * Kerho.java - lisätty Kerho ja testattu * Luennolla tehdyt Java-koodit
* kehitysaskeleet versionhallinnasta * 1. luentotunti videona [.mp4] [.mp4-mobiili]
* Oheislukemistoa: * Esimerkki TDD:stä, Keilailu. - aja se PPT-tiedosto tuolta * JUnit Ohjelmointi 2-kurssilla
* ComTest Ohjelmointi 2-kurssilla
* luentoseinä
Aihe: , Polymorfismi, rajapinnat {#L12} * Luku 8.5 Rajapinta ja monimuotoisuus
* AikaRajapinta.java - esimerkki rajapinnasta * Aika.java - rajapinnan toteuttava luokka * AikaSek.java - - esimerkki rajapinnan toteuttavasta luokasta * AikaSekunteina.java - - esimerkki rajapinnan toteuttavasta luokasta, toteutus pelkillä sekunneilla * AikaSekMin.java - esimerkki rajapinnan toteuttavasta luokasta, minimaalinen versio * AstiaPeliTaikaAstialla.java - esimerkki TaikaAstiasta * Mikroluokkien koneiden etäkäyttö
* Luennon etukäteen tehdyt Java-koodit
* Luennolla tehdyt Java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
Aihe: Luokkien suunnittelu ja tietorakenteet, modaalit dialogit {#L11} * CRC-kortit * Luku 10: Oliosuunnittelu
* crc.html - tyhjä CRC-kortti HTML-muodossa * crc.txt - tyhjä CRC-kortti ASCII-tekstinä * CRC_kortit Wikiin
* Anaalyysi- ja toteutusvaiheen UML-kaaviot
* Jonne I:n näkemys UML:nä
* Olio-kaavio: * Luku 11: Jäsenrekisterin runko - oliokaavio * kerhohar.png - esimerkki oliokaaviosta * kerhoharvika.png - yleisimmät virheet oliokaaviossa * kerhohar.vsd - edellisen Visio -pohja * Ohjeita MS-ohjelmien hakemiseen
* Harjoitustyön 4. vaihe * Luennolla tehdyt java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
Aihe: Luokat ja oliot {#L10} * Ajettavan Jar-tiedoston tekeminen * Esimerkki olioista jotka “keskustelevat keskenään”. Astia: * astia1/Astia.java - esimerkki yksinkertaisesta luokasta, joka kommunikoi toisen saman luokan edustajan kanssa ( astia8l.kaada(astia5l) ) * astia/Astia.java - edelliseen enemmän toimintoja ja tarkastuksia sekä oliotaulukko + lisätehtävä demo 5:een * GraafinenAstiaPeli.jar - “pelin” graafinen versio Javalla * Kuva graafisesta versiosta * astia - “pelin” graafinen versio Delphillä tehtynä. * Harjoitustyön 3. vaihe
* KerhoGUIController.java - Käyttöliittymäluokka jäsenrekisteriin * Luennolla tehdyt java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
* luentoseinä
Eikö olisi järkevä laittaa joku "aloita tehtävän teko" -nappi, joka tois sen tehtävän tekstin näkyviin ja aloittaisi ajan oton. Siitä saisitte varmaan tosi hyvin tilastoa, miten paljon ihmisillä kuluu aikaa tehtävien tekoon.
—Aihe: Luokat ja oliot, RadioButton, switch {#L09} * USA top 100 ammatit * Eri kieliä TIMissä * Ohj 1 -kurssin grafiikkakirjasto (ks. mm Line, Circle, Marker, RPoint, Drawable) * Lumiukot.java - Esimerkki Graphics-kirjaston käytöstä. * Luku 6.3.2 Kääntäminen ja ajaminen komentoriviltä:
javac -cp \kurssit\ohj1\graphics\Graphics.jar lumiukkoCmd\Lumiukot.java
java -cp \kurssit\ohj1\graphics\Graphics.jar;. lumiukkoCmd.Lumiukot
tai
set classpath=\kurssit\ohj1\graphics\Graphics.jar;.
javac lumiukkoCmd\Lumiukot.java
java lumiukkoCmd.Lumiukot
Aihe: pöytätesti, tavukoodi, oliot {#L08} * Luku 7.6.4 Muuttujien lokaalisuus * Luku 7.6.5 Parametrinvälitysmekanismi
* Tavukoodista
* Aikalisa.java.pdf - Esimerkki Java-virtuaalikoneen “konekielestä” * Luku 7.6.7 Luokkamuuttujat ja suhde lokaaleihin muuttujiin (pöytätesti) * Luku 8. Kohti olio-ohjelmointia
* Aika.java - * Älä luule, että aikojen kanssa toiminen on helppoa - katso video Yksinkertainen olio-esimerkki * Luennolla tehdyt java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
* luentoseinä
Aihe: aliohjelmat, testaaminen, oliot ja perintä, HT3 {#L07} * Luku 7: Java- kielen muuttujista ja aliohjelmista
* Testaaminen: * Luku 7.7 Testipääohjelmat * Luku 7.8 Yksikkötestaus * Luku 7.9 JUnit * Luku 7.10 ComTest * Poista.java - esimerkki ComTest- testaamisesta * PoistaTest.java - esimerkki JUnit testaamisesta * JUnit Ohjelmointi 2-kurssilla
* ComTest Ohjelmointi 2-kurssilla
* Kalvot JUnitista
* Luku 8. Kohti olio-ohjelmointia * Kissa.java - yksinkertainen olio * Elain.java - kantaluokka kaikille eläimille * Kissa.java - peritty Kissa * Koira.java - peritty Koira * Luennolla tehdyt java-koodit
* 1. luentotunti videona [.mp4] [.mp4-mobiili]
* luentoseinä
Aihe: viitteet, perintä, graafinen käyttöliittymä {#L06}
Aihe: Kvanttitietokoneet, DNA-tietokoneet, Ohjelmointikielet, kääntäminen ja linkittäminen, vakiot, aliohjelmat, testaaminen, oliot {#L05}
Aihe: Taulukot, totuustaulut, Eclipse, debuggaus
Aihe: Algoritmit
Aihe: Ohjelman suunnittelu, algoritmit, nyky-IDEt
Aihe: Alkubyrokratia, ohjelman suunnittelu
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.