Prakside kava
Tavarühmade materjal
- Praks 1 (11.02)
- Lugeda Sissejuhatus (alates "Esimene Java programm")
- Lugeda Java põhikonstruktsioonid
- IDEA setup + run application
- Ülesanded: *
 
- Praks 2 (13.02)
- 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 (18.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 (20.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 (25.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 (27.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 (03.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 8 (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 9 (10.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
- scene graph, layouts
 
- Praks 10 (12.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 1 (11.02)
Edasijõudnute materjalid
- Praks 11 (17.03)
- Socket I/O https://github.com/mbakhoff/sockets-template juba tuttav materjal Echo Server kodutööst
- Praktikumidest oli mitu korda mainitud nio lähenemine https://examples.javacodegeeks.com/core-java/nio/java-nio-socket-example/ mis ei blokeeri thread-e ja võimaldab ühe threadi abil töödelda mitut requesti korraga.
- Harjutamise mõttes proovige muuta oma Echo Server v2 lahendus võttes kasutusele nio ja SocketChannel-eid. Kasutage näidiskoodi eespool olevast artiklist.
 
- Praks 12 (19.03)
- Packaging + maven https://github.com/Zukkari/maven-template
 
- Praks 13 (24.03)
- Classpath, resource loading https://github.com/mbakhoff/classpath-template
 
- Praks 14 (26.03)
- Serialization, JSON, XML https://github.com/Zukkari/java-serialization-template
 
- Praks 15 (31.03)
- Crypto basics 
 https://github.com/mbakhoff/crypto-template
 
- Crypto basics 
- Praks 16 (02.04)
- Inner classes, lambdas, method references
- Introduction https://github.com/mbakhoff/lambda-template
- Stream API, harjutused https://github.com/sim642/oop-lambda-template
 
- Praks 17 (07.04)
- JDBC: H2 embedded, prepared statement, transactions 
 https://github.com/mbakhoff/jdbc-template
 
- JDBC: H2 embedded, prepared statement, transactions 
- Praks 18 (09.04)
- JPA, Hibernate ORM 
 https://github.com/mbakhoff/jpa-template
 
- JPA, Hibernate ORM 
- Praks 19 (14.04)
- Visitor pattern 
 https://github.com/sim642/oop-visitor-template
 
- Visitor pattern 
- Praks 20 (16.04)
- Testing with JUnit; Mock objects, constructor injection 
 https://github.com/Zukkari/testing-template
 
- Testing with JUnit; Mock objects, constructor injection 
- Praks 21 (21.04)
- 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
- Nimede lühendamine
- veel üks KT näidisülesanne
 
 
- KT1 kordamine
- Praks 22 (23.04)
- 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 23 (28.04)
- KT2. 
- Ülesanded avalikustatakse kell 12:15 moodle-is.
- Esitada tuleb moodlisse! ja meiliga Dmitri ja Stanislavi aadressitele.
- Esitamine läheb moodle-is lukku kell 14:05. Palun jälgige aega!
- Tuleb kasutada ekraanisalvestust ja esitada ka videot. Kuna video on suur ja selle üleslaadimine võtab aega seda võib esitada hiljem, kuid informeerige meid meili teel kella 15-ks edusammudest.
- Tutvuge enne kontrolltööd ka KT reeglitega
 
 
- KT2. 
- Praks 24 (30.04)
- Praks 25 (05.05)
- Advanced synchronization 
 https://github.com/mbakhoff/synchronization-template
 
- Advanced synchronization 
- Praks 26 (07.05)
- Bitwise operators 
 https://github.com/mbakhoff/bitwise-template
 
- Bitwise operators 
- Praks 27 (12.05)
- KT1. 
- Ülesanded avalikustatakse moodle-is.
- Esitada tuleb moodlisse! ja meiliga Dmitri ja Stanislavi aadressitele.
- Tuleb kasutada ekraanisalvestust ja esitada ka videot.
- Tutvuge enne kontrolltööd ka KT reeglitega
 
 
- KT1. 
- Praks 28 (14.05)
- Profiling with VisualVM; Garbage collection 
 https://github.com/mbakhoff/profiling-template
 
- Profiling with VisualVM; Garbage collection 
- Praks 29 (19.05)
- Rühmatööde esitlused ZOOMis
 
- Praks 30 (21.05)
- Annotations + reflection 
 https://github.com/Zukkari/reflection-template
 
- Annotations + reflection 
- Praks 31 (26.05)
- Eksamiks kordamine
- Lõpusirge info (meil omad eksamile pääsemise tingimused, vaadake kindlasti oma punktiseisu üle ja esitage kõik kodutööd!
- eelmise aasta harjutused 
 https://drive.google.com/open?id=16_FWqBiTEl1yNPBaLymfdA452kiIjXFf
- eksami info moodle-is 
 https://moodle.ut.ee/mod/page/view.php?id=724207&inpopup=1
- eksami näidistest moodle-is 
 https://moodle.ut.ee/mod/quiz/view.php?id=725986
- proovige läbi lahendada ka loengute kohta käivaid teste, otsige "(kordamine eksamiks)" moodle-i lehel 
 https://moodle.ut.ee/course/view.php?id=5062
- Eksamieelne konsultatsioon esmaspäeval 25. mail kell 18:15 
 https://zoom.us/j/92298169895
- Eelmise aasta eksami näidisülesannete lahendamise video (eksamitesti viimane küsimus on seda tüüpi) 
 https://panopto.ut.ee/Panopto/Pages/Viewer.aspx?id=d86f224d-8d1a-4161-b00a-a9f001011395
 
 
- Praks 11 (17.03)