Prakside kava
Tavarühmade materjal
- Praks 1 (13.02) Sissejuhatus. Java põhikonstruktsioonid.
- Lugeda Sissejuhatus (alates "Esimene Java programm")
- Lugeda Java põhikonstruktsioonid
- Abiks on ka 1. ja 2. loengu slaidid ja videod
- IDEA setup + run application
- Aine korraldus. Tutvumisring.
- Ülesanded: *
- Praks 2 (15.02) Objektid. Klassid.
- Enne praktikumi lugeda Objektid. Klassid.
- Praktikumi ajal lahendada ülesanded praktikumi materjalist P4, P6 ning harjutustest H2, H4
- IDE tricks: psvm, sout, alt+insert, rename symbol, ctrl+q, reformat code, reading javadoc, /**, reading source
- class imports, Arrays.toString, cli-args
- koduste tööde esitamisest
- Praks 3 (20.02)
- Enne praktikumi lugeda Sõned. Failid. Listid.
- Praktikumi ajal lahendada ülesanded praktikumi materjalist P1, P8 ning harjutustest H3
- IDEA advanced: iter, fori, debugging
- code style: muutujate ja meetodite nimed oracle-i poolt soovitused
- value vs reference
- Praks 4 (22.02)
- Enne praktikumi lugeda Polümorfism. Liidesed.
- Praktikumi ajal lahendada ülesanded praktikumi materjalist P*
- Kes jõuab võite alustada ka harjutustega, need tuleb kodus lõpetada ja esitada osana kodutööst.
- List vs ArrayList? List.of, Arrays.asList, Collections.emptyList
- IDE tricks: extract method/var, ctrl+b/ctrl+alt+b, show usages, ctrl+alt+left/right, debugger eval expression
- Praks 5 (27.02)
- Enne praktikumi lugeda Ülemklassid. Alamklassid. Abstraktsed klassid.
- Praktikumi ajal lahendada ülesanded praktikumi materjalist P* välja arvatud 4,5
- IDE tricks: ctrl+i, ctrl+o
- dynamic dispatch, super.m() vs this.m()
- git intro
- Git (kodus)
- Loe üldist git sissejuhatust (algusest kuni "How GitHub fits in")
https://guides.github.com/introduction/git-handbook/ - Lahenda ülesandekomplekt HelloGit
- Huvilisetele pikem jutt, kuidas git toimib
https://tom.preston-werner.com/2009/05/19/the-git-parable.html
- Loe üldist git sissejuhatust (algusest kuni "How GitHub fits in")
- Praks 6 (29.02)
- TODO flatten datastreamide kirjutamine, writeUTF seletus
- Enne praktikumi lugeda Vood.
- Lisaks lugeda primitiividest ja nende mälukasutusest
- Praktikumi ajal lahendada ülesanded praktikumi materjalist P4, P8 ning harjutustest H5
- edasijõudnud: tcp/ip, network protocols
https://github.com/mbakhoff/sockets-template - IDE tricks: thread dump, Files.readAllBytes, Files.readString
- rühmatööde tutvustus
- Praks 7 (05.03)
- Enne praktikumi lugeda Lõimed.
- Praktikumi ajal lahendada ülesanded praktikumi materjalist 2, 3, 4, 5, 8
- final fields
- deadlock näide, thread dump
https://gist.github.com/mbakhoff/0fd51bfd653b778fcabc - Executors fixedpool näide
- Item 66: Synchronize access to shared mutable data
- Praks 8 (07.03)
- Enne praktikumi lugeda Veahaldus.
- Praktikumi ajal lahendada ülesanded praktikumi materjalist P3, P6, P9 ning harjutustest H4, H8
- rethrow, runtime exceptionisse wrapimine
- IDE tricks: conditional breakpoint, exception breakpoint, ctrl+tab/ctrl+e/ctrl+n
- Praks 9 (12.03)
- Enne praktikumi lugeda Graafika.
- Enne praktikumi lugeda Sündmused.
- Praktikumi ajal lahendada ülesanded graafikast: P3, P6 ning harjutustest H2
- Praktikumi ajal lahendada ülesanded sündmustest P1, P4 ning harjutustest H1, H3
- awt vs swing vs javafx https://www.geeksforgeeks.org/java-awt-vs-java-swing-vs-java-fx/
- scene graph, layouts
- Praks 10 (14.03)
- Enne praktikumi lugeda Andmestruktuurid.
- koduste ülesannete analüüs (bugid)
https://github.com/mbakhoff/oop-samples/tree/master/bugs - natural ordering. eksamil peab teadma: ArrayList, LinkedList, HashSet, TreeSet, LinkedHashSet, ArrayDeque, HashMap, TreeMap, LinkedHashMap
- Praktikumi ajal lahendada ülesanded praktikumi materjalist P2, P4, P7
- edasijõudnud: "How does a hashmap work?"
https://github.com/mbakhoff/hashmap-template
- Praks 11 (19.03)
- KT1 kordamine
- fori vs iter, extract variable/parameter, täisarvudega jagamine, static fields, string equals vs ==, generics / raw types, instance vs static methods, dynamic dispatch, this.m() vs super.m(), twr, catch algoritm, Files.readAllLines, Files.write
- harjutused
- Voogude harjutustest ülesanded 1, 3, 4
- veel üks KT näidisülesanne
- KT1 kordamine
- Praks 1 (13.02) Sissejuhatus. Java põhikonstruktsioonid.
Edasijõudnute materjalid
- Praks 12 (21.03)
- Packaging + maven https://github.com/Zukkari/maven-template
- maven plugin creation guide https://www.baeldung.com/maven-plugin
- useful maven plugins https://javarevisited.blogspot.com/2016/08/top-10-maven-plugins-every-java-developer-know.html
- multimodule projects with maven https://www.baeldung.com/maven-multi-module
- useful maven commands https://www.journaldev.com/33645/maven-commands-options-cheat-sheet
- artefacts repository https://www.eficode.com/blog/artifactory-nexus-proget
- Praks 13 (26.03)
- Classpath, resource loading https://github.com/mbakhoff/classpath-template
- Praks 14 (28.03)
- KT1.
- Ülesanded avalikustatakse moodle-is.
- Esitada tuleb moodlisse! ja igaks juhuks meiliga juhendaja aadressile.
- Ärge unustage esitada ka lahenduse logid Moodle'i kaudu.
- Tutvuge enne kontrolltööd ka KT reeglitega
- KT1.
- Praks 15 (02.04)
- Serialization, JSON, XML https://github.com/Zukkari/java-serialization-template
- Praks 16 (04.04)
- Testing with JUnit; Mock objects, constructor injection
https://github.com/Zukkari/testing-template
- Testing with JUnit; Mock objects, constructor injection
- Praks 17 (09.04)
- Inner classes, lambdas, method references
- Introduction https://github.com/mbakhoff/lambda-template
- Stream API, harjutused https://github.com/sim642/oop-lambda-template
- Hacking lambda expressions
https://dzone.com/articles/hacking-lambda-expressions-in-java
- Praks 18 (11.04)
- Jätkame Stream-idega ja ülesannetega:
- Stream API, harjutused https://github.com/sim642/oop-lambda-template
- Praks 19 (16.04)
- praktikumi ei toimu. võite kasutada aega et arendada rühmatöö projekte ja arutada neid omavahel praktikumi ajal
- Praks 20 (18.04)
- JDBC: H2 embedded, prepared statement, transactions
https://github.com/mbakhoff/jdbc-template
- JDBC: H2 embedded, prepared statement, transactions
- Praks 21 (23.04)
- JPA, Hibernate ORM
https://github.com/mbakhoff/jpa-template
- JPA, Hibernate ORM
- Praks 22 (25.04)
- Crypto basics
https://github.com/mbakhoff/crypto-template
- Crypto basics
- Praks 23 (30.04)
- Annotations + reflection
https://github.com/Zukkari/reflection-template
- Annotations + reflection
- Praks 24 (02.05)
- KT2 kordamine
- text vs binary streams, Files.readAllLines/write, list vs map vs set, File.exists vs Files.exists, exceptioni subclass loomine
- harjutused
- Voogude harjutustest ülesanne 6
- Erindite harjutustest ülesanded 2, 7
- veel üks KT näidisülesanne
- KT2 kordamine
- Praks 25 (07.05)
- Visitor pattern
https://github.com/sim642/oop-visitor-template
- Visitor pattern
- Praks 26 (09.05)
- KT2.
- Esitada tuleb moodlisse! ja meiliga juhendaja aadressile.
- Esitamine läheb moodle-is lukku kell 16:05. Palun jälgige aega!
- Tutvuge enne kontrolltööd ka KT reeglitega
- KT2.
- Praks 26 (14.05)
- Praks 27 (16.05)
- Profiling with VisualVM; Garbage collection
https://github.com/mbakhoff/profiling-template
- Profiling with VisualVM; Garbage collection
- Praks 28 (21.05)
- Eksamiks kordamine
- Lõpusirge info (meil omad eksamile pääsemise tingimused, vaadake kindlasti oma punktiseisu üle ja esitage kõik kodutööd!)
- Tutvuge eksami juhendiga
https://moodle.ut.ee/mod/page/view.php?id=1156648 - Eksami näidistest
https://moodle.ut.ee/mod/quiz/view.php?id=725986- Soovitame näidistesti lahendada mitu korda (küsimused varieeruvad).
- Kordamiseks on avatud ka kõik loengutestid (punktid arvesse enam ei lähe).
- Palun registreeruge ÕISis sobivale eksamiajale!
- Eksamiks kordamine
- Praks 29 (23.05)
- Rühmatööde esitlused
- Praktikumis on rühmatöö esitluseks aega 7-8 minutit.
- Esitlus võiks katta näiteks sellised teemad:
- programmi ja rühmaliikmete tutvustus
- tööjaotus meeskonnas
- ülevaate arendusprotsessist, tööde jaotus etappide vahel
- kogetud rõõmud ja mured ning nende ületamised
- tehnikad, komponendid, raamistikud, keerulisemad algoritmid, mida õppisite ja katsetasite.
- Abiks võiks olla enne koostatud esitluse fail (nt. PowerPoint või pdf).
- Esitluses võiksid osaleda kõik meeskonnaliikmed
- Lisaks õppejõule on hindamises oma roll ka teistel rühmadel. Valmistame praktikumiks küsitluse, kus oleks kõikide rühmade info.
- Kõik esinenud rühmaliikmed saavad esitluse eest võrdse hinde.
- Hindamise ankeet
https://forms.gle/5GG7mFYfutJjFHoH9
- Rühmatööde esitlused
- Praks 12 (21.03)