- Aloitus
- Suorittaminen
- Työkalut ja asentaminen
- Tuki ja palaute
- Harjoitustyö
- Tentti
- Luennot
- 1. Java-kielen perusteet
- 1.1. Hei, Java!
- 1.2. Muuttujat ja tietotyypit
- 1.3. Ohjausrakenteet
- 1.4. Aliohjelmat
- 1.5. Osan kaikki tehtävät
- 2. Olio-ohjelmoinnin perusteet
- 2.1. Kohti olio-ohjelmointia
- 2.2. Luokka ja olio
- 2.3. Kapselointi
- 2.4. Osan kaikki tehtävät
- 3. Perintä ja rajapinnat
- 3.1. Perintä
- 3.2. Rajapinnat ja abstraktit luokat
- 3.3. Polymorfismi
- 3.4. Perintä tai rajapinta?
- 3.5. Osan kaikki tehtävät
- 4. Hyödyllisiä menetelmiä olio-ohjelmoinnissa
- 4.1. Geneeriset luokat
- 4.2. Tyyppitarkistukset ja tyyppimuunnokset
- 4.3. Muita hyödyllisiä rajapintoja Javassa
- 4.4. Osan kaikki tehtävät
- 5. Tietorakenteita ja algoritmeja
- 5.1. Kokoelmarajapinnat
- 5.2. Valmiit kokoelmat Javassa
- 5.3. Esimerkki: oma ArrayList-toteutus
- 5.4. Rekursio
- 5.5. Osan kaikki tehtävät
- 6. Hyödyllisiä menetelmiä Javassa
- 6.1. Funktiorajapinnat ja lambda-lausekkeet
- 6.2. Kokoelmien käsittely: Stream API
- 6.3. Poikkeusten hallinta
- 6.4. Ulkoiset kirjastot ja Java-projektien hallintatyökalut
- 6.5. Tiedostojen käsittely
- 6.6. Osan kaikki tehtävät
7. Viikko 7 (WIP)
8. Viikko 8 (WIP)
9. Viikko 9 (WIP)
10. Viikko 10 (WIP)
11. Viikko 11 (WIP)
12. Viikko 12 (WIP)