Arvutiteaduse instituut
Courses.cs.ut.ee Arvutiteaduse instituut Tartu Ülikool
  1. Kursused
  2. 2025/26 kevad
  3. Objektorienteeritud programmeerimine (LTAT.03.003)
EN
Logi sisse

Objektorienteeritud programmeerimine 2025/26 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 (10.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 (12.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 (17.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 (19.02) Lugeda Polümorfism. Liidesed. Praktikumi ei toimu, teema on iseseisvaks harjutamiseks.

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 (26.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 (03.03) 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 (05.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, 6
Praks 8 (10.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 (12.03) Lugeda Graafika.
Sündmused.
awt vs swing vs javafx (link)

scene graph, layouts

Observer pattern, event driven programming
Ülesanded graafikast: P3, P6 ning harjutustest H2

Sündmustest P1, P4 ning harjutustest H1, H3
Praks 10 (17.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 (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 Voogude harjutustest ülesanded 1, 3, 4

Üks KT näidisülesanne

Süvendusrühma materjalid

Praktikum Kodus Praktikumis Harjutused
Praks 12 (24.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 (26.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 14 (31.03) Lugeda Classpath, resource loading Ülesanded: materjalist
Praks 15 (02.04) Lugeda Serialization, JSON, XML Ülesanded: materjalist
  • 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