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)