The page has been modified since the last reload. Refresh now?

There are {{ $ctrl.pendingUpdatesCount() }} pending paragraph updates.

{}

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

{"classes": ["linkit"], "ra": "clinkit2", "rd": "113991", "rl": "no"}

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:

{}
#

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

{}
#

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

{}
#

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

{}
#

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

#

Kevät 2016 Pidetyt luennot:

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

#

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ä

#

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.