The referenced paragraph does not exist.

C/C++ -kurssi:| TIEP112 | C ja C++ | Aallon C-kurssi | Demot: C1 C2 | Luennot: C1 C2 C3 C4

Ohjelmointi 2, Java, kevät 2016

Luennot ovat alempana käännetyssä aikajärjestyksessä. Yleensä kaksi tulevaa odottamassa ja sen alapuolella tänä vuonna pidetyt luennot.

Linkkejä:

Kevään 2016 aikataulu ja aiheet sekä videot

  • tarkista että videon osoitteessa on 2016k (ei siis 2015k), silloin video on päivittynyt uudeksi. Yleensä aikaisintaan 2 tuntia ko. tapahtuman jälkeen. Siihen asti kullakin luennolla on edellisen vuoden video.
  • JOS luennon jälkeen en ole muistanut vaihtaa luennon linkkiä, niin vaihda se viimeiseen luentoon vuodella 2016 (ks mallia edellisen luennon linkit)
  • videon nimi on muotoa luentoXXy.mp4, jossa XX on luennon numero, esim 01 ja y=a jos ensimmäinen luennon puolisko (tai luento pidetty kokonaan yhteen) ja y=b jos luennon toinen puolisko. Videon mobiiliversion on nimellä luentoXXy_m.mp4.
  • Pääsiäisloma 21.3.- 28.3.2016 (eli luentoja ei ole ma 21.3- ma 28.3)
  • Opetuksen pääsiäistauko on 10.4.- 17.4.2017

Tulossa olevat luennot:

# LC4

C4. ti 26.04.2016 klo 14:15-16:00: Aihe: C++ - tietorakenteet, STL

# LC3

C3. ma 25.04.2016 klo 10:15-12:00: Aihe: C++ - oliot, automaattiset muuttujat

# LC2

C2. ti 19.04.2016 klo 14:15-16:00: Aihe: C/C++ - osoittimet, taulukot, merkkijonot

# LC1

C1. ma 18.04.2016 klo 10:15-12:00: Aihe: C/C++ -alkeet, makrot, viitteet, osoittimet

# V1

Kevät 2016 Pidetyt luennot:

25. Itse videolta katsottavaksi: Aihe: W8 kehitys, Yleistämistä, Mobiili: Java vastaan Windows Phone 7

# T01

T1. Java ja tietokannat ti 5.4.2016 klo 16:15-17:45

Tentin palautus ti 5.4.2016 klo 15:45-16:15

24. ti 05.04.2016 klo 14:15-15:45:

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]

23. ma 04.04.2016 klo 10:15-14:00:

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]

22. ke 30.03.2015 klo 12:15-14:00:

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]

21. ti 29.03.2016 klo 14:15-16:00:

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]

20. ti 17.03.2015 klo 14:15-16:00:

Aihe: Funktio-oliot {#L20}

19. ma 14.03.2016 klo 10:00-12:00:

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ä

18. ti 08.03.2015 klo 14:15-16:00:

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]

17. ma 07.03.2016 klo 10:15-12:00:

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ä

# L16

16. ti 03.03.2015 klo 14:15-16:00: Aihe: Dynaamiset taulukot ja Javan valmiit tietorakenteet

15. ma 02.03.2015 klo 10:15-12:00:

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ä

14. ti 23.02.2015 klo 14:15-16:00:

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

13. ma 22.02.2015 klo 10:15-12:00:

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ä

12. ti 16.02.2016 klo 14:15-16:00:

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]

11. ma 15.02.2016 klo 10:15-12:00:

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]

Luento 10. ti 09.02.2016 klo 14:15-16:00:

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.

14 Feb 16 (edited 14 Feb 16)

Luento 9. ma 08.02.2016 klo 10:15-12:00:

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

Luento 8. ti 02.02.2016 klo 14:15-16:00

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ä

Luento 7. ma 01.02.2016 klo 10:15-12:00:

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ä

LUENTO 6 - TI 27.01.2015 (klo 14:15-16:00)

Aihe: viitteet, perintä, graafinen käyttöliittymä {#L06}

  • (2010 L6: [.mp4] kohdasta 48:13 Matka-ohjelman komentoriviversion tekeminen, vertaa luennon graafiseen versioon)
  • luentoseinä

LUENTO 5 - MA 25.01.2016 (klo 10:15-12:00)

Aihe: Kvanttitietokoneet, DNA-tietokoneet, Ohjelmointikielet, kääntäminen ja linkittäminen, vakiot, aliohjelmat, testaaminen, oliot {#L05}

LUENTO 4 - TI 19.01.2016 (klo 14:15-15:45)

Aihe: Taulukot, totuustaulut, Eclipse, debuggaus

LUENTO 3 - MA 18.01.2016 (klo 10:15-11:45)

Aihe: Algoritmit

Kevään 2015 luennot

W4. ti 12.05.2015 klo 14:15-16:00: Aihe: synkronoinnista, Ajax, Vaadin

W3. ma 11.05.2015 klo 10:15-12:00: Aihe: Kerho-ohjelma JSP:llä

W2. ma 4.05.2015 klo 16:15-18:00: Aihe: Omien komponenttien käyttö JSP-sivuilla

W1. ma 4.5.2015 klo 10:15-12:00: Aihe: TCP/IP, Servlet, JSP

Pidetyt luennot


Ohjelmointi 1 kurssien aiheet

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.