Arvutiteaduse instituut
  1. Kursused
  2. 2024/25 kevad
  3. Objektorienteeritud programmeerimine (LTAT.03.003)
EN
Logi sisse

Objektorienteeritud programmeerimine 2024/25 kevad

  • Kodutööd ja praktikumid
  • Loengud
  • Kursuse korraldus
  • IDE juhend
  • Süvendusrühm
  • Silumisest

Prakside kava

Tavarühmade materjal

Praktikum Kodus Praktikumis Harjutused
Praks 1 (11.02) 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

IDE tricks:
psvm, sout
Ülesanded: * (soovituslik)
praktikumi materjalist P5, P7

lisalugemist
Praks 2 (13.02) Lugeda Objektid. Klassid. koduste tööde esitamisest

IDE tricks:
alt+insert, rename symbol, ctrl+q, reformat code, reading javadoc, /**, reading source

class imports, Arrays.toString, cli-args
Ülesanded:
praktikumi materjalist P6
harjutustest H2, H4

lisalugemist
Praks 3 (18.02) Lugeda Sõned. Failid. Listid. code style: muutujate ja meetodite nimed oracle-i poolt soovitused
google-ilt
value vs reference

IDEA advanced:
iter, fori, debugging
Ülesanded:
praktikumi materjalist P1, P8 ning
harjutustest H3

silumisest
Praks 4 (20.02) Lugeda Polümorfism. Liidesed. 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
Ülesanded praktikumi materjalist P*
Võib alustada harjutustega, need tuleb kodus lõpetada ja esitada osana kodutööst.
Praks 5 (25.02) Lugeda Ülemklassid. Alamklassid. Abstraktsed klassid.

Loe üldist git sissejuhatust (algusest kuni "How GitHub fits in")
Huvilisetele, kuidas git toimib
IDE tricks: ctrl+i, ctrl+o
dynamic dispatch, super.m() vs this.m()

git intro, kodus lahenda ülesandekomplekt
Ülesanded praktikumi materjalist P* välja arvatud 4,5
Praks 6 (27.02) Lugeda Vood.
Lisaks lugeda primitiividest ja nende mälukasutusest
flatten datastreamide kirjutamine, writeUTF seletus
IDE tricks: thread dump, Files.readAllBytes, Files.readString

rühmatööde tutvustus
Ülesanded praktikumi materjalist P4, P8 ning harjutustest H5

tcp/ip, network protocols
https://github.com/mbakhoff/sockets-template
Praks 7 (04.03) Lugeda Lõimed. 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
Ülesanded praktikumi materjalist 2, 3, 4, 5, 8
Praks 8 (06.03) Lugeda Veahaldus. rethrow, runtime exceptionisse wrapimine

IDE tricks: conditional breakpoint, exception breakpoint, ctrl+tab/ctrl+e/ctrl+n
Ülesanded praktikumi materjalist P3, P6, P9 ning harjutustest H4, H8
Praks 9 (11.03) Lugeda Graafika.
Sündmused.
awt vs swing vs javafx (link)

scene graph, layouts
Ülesanded graafikast: P3, P6 ning harjutustest H2

Sündmustest P1, P4 ning harjutustest H1, H3
Praks 10 (13.03) Lugeda Andmestruktuurid. koduste ülesannete analüüs (bugid)

eksamil peab teadma: ArrayList, LinkedList, HashSet, TreeSet, LinkedHashSet, ArrayDeque, HashMap, TreeMap, LinkedHashMap
natural ordering.
"How does a hashmap work?" (link)
Collections framework (link) ja analoogid (link)
Ülesanded praktikumi materjalist P1, P2, P4, P5, P7
Praks 11 (18.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 Voogude harjutustest ülesanded 1, 3, 4

Üks KT näidisülesanne

Süvendusrühma materjalid

Praktikum Kodus Praktikumis Harjutused
Praks 12 (20.03) Lugeda Packaging + maven maven plugin creation guide
useful maven plugins
multimodule projects with maven
useful maven commands
artefacts repository
Ülesanded: materjalist
loome maven plugina juhendi järgi
Praks 13 (25.03) Lugeda Classpath, resource loading Ülesanded: materjalist
Praks 14 (27.03) KT1.
Tutvuge enne kontrolltööd ka KT reeglitega
Ülesanded avalikustatakse moodle-is.

Esitada tuleb moodlisse! ja igaks juhuks meiliga juhendaja aadressile.

Ärge unustage esitada ka lahenduse logid Moodle'i kaudu.
Praks 15 (01.04) Lugeda Serialization, JSON, XML Ülesanded: materjalist
Praks 16 (03.04) praktikumi ei toimu
Praks 17 (08.04) Lugeda Testing with JUnit; Mock objects, constructor injection Ülesanded: materjalist
Praks 18 (10.04) Inner classes, lambdas, method references

Lugeda Introduction
ning Stream API, harjutused
Hacking lambda expressions Ülesanded: materjalist
Praks 19 (15.04) Jätkame Stream-idega ja ülesannetega: Ülesanded: Stream API, harjutused
Praks 20 (17.04) Lugeda JDBC: H2 embedded, prepared statement, transactions JDBC: H2 embedded, prepared statement, transactions, SQL Ülesanded: materjalist
Praks 21 (22.04) Lugeda JPA, Hibernate ORM JPA, ORM Ülesanded: materjalist
Praks 22 (24.04) Lugeda Crypto basics Ülesanded: materjalist
Praks 23 (29.04) Lugeda Annotations + reflection Java Reflection API Ülesanded: materjalist
Praks 24 (01.05) Praktikumi ei toimu, kevadpüha
Praks 25 (06.05) Lugeda Visitor pattern Visitor pattern, GOF patterns Ülesanded: materjalist
Praks 26 (08.05) KT2 kordamine text vs binary streams, Files.readAllLines/write, list vs map vs set, File.exists vs Files.exists, exceptioni subclass loomine Ülesanded:
Voogude harjutustest ülesanne 6
Erindite harjutustest ülesanded 2, 7
veel üks KT näidisülesanne
Praks 27 (13.05) Lugeda Protsessidest Protsessid Ülesanded: materjalist
Praks 28 (15.05) KT2.
Tutvuge enne kontrolltööd ka KT reeglitega
Ülesanded avalikustatakse moodle-is.

Esitada tuleb moodlisse! ja igaks juhuks meiliga juhendaja aadressile.

Ärge unustage esitada ka lahenduse logid Moodle'i kaudu.
Praks 29 (20.05) Lugeda Profileerimisest Profiling with VisualVM; Garbage collection Ülesanded: materjalist
Praks 30 (22.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

Eksami näidistest

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!

Praks 31 (27.05) Praktikumi ei toimu, samal ajal on juba esimene eksamiaeg
Praks 32 (01.05) Rühmatööde esitlused Praktikumis on rühmatöö esitluseks aega 7-8 minutit

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
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused