ADATBÁZISOK-1
GYAKORLAT [prog.inf: IP-08AB1G] ELTE, 2015/2016-os tanév II.félévében [2016.febr] |
|
Előadás: Hétfő 10:15-11:45 D.ép.0-821 Bolyai terem [link: AB1EA.html]
Gyakorlat: [1] Csüt. 8:30-10:00 [2] Csüt. 12:15-13:45 |2-124 MS-labor
A gyakorlat kötelező, katalógus van, legfeljebb 4 hiányzás lehetséges.
Ellenőrzésre jelenléti ív (név-> 4kar-kód) hallgato/[jelszóval] [itt:.pdf]
A gyakorlat célja: az előadáson szereplő alapfogalmak, algoritmusok, és
az adatbázisok-szemlélet gyakorlatban való elsajátítása. Az a cél, hogy
a hallgatók minél hatékonyabban tudjanak SQL és PL/SQL feladatokat
megoldani, és azt is értsék hogyan történik a lekérdezések kiértékelése.
Gyakorlatok anyaga és a dolgozatok időpontja:
| 1.GY: 02.11. | 2.GY: 02.18 | 3.GY: 02.25. | ZH1 - 4.GY: 03.03. |
| 5.GY: 03.10. | 6.GY: 03.17. |--| 7.GY: 03.31. | ZH2 - 8.GY: 04.07. |
| 9.GY: 04.14. | 10.GY: 04.21. | 11.GY: 04.28. | ZH3 - 12.GY: 05.05. |
| JavZH - 13.GY: 05.12. fenti 3 ZH közül az egyik pótolható/javítható |
| JavZH/GyakUV: 05.24. Kedd 12:15-13:45 Déli ép. 2-315 PC4 labor |
| JavZH/GyakUV: 05.27. Péntek 10:15-11:45 Déli ép. 2-315 PC4 labor |
| GyakUV: 05.31.[Neptun] Kedd 12:15-13:45 Déli ép. 2-315 PC4 labor |
A gyakorlatok gépes részéhez: Oracle adatbázisok elérése, SQL developer
Oracle Példatár feladatai: Feladatok.pdf (SQL: 1-6.fej., PL/SQL: 8-10.fej.)
-- Példatár feladataihoz scriptek: createEmpDept(en) vagy createDolg(hu)
Tankönyv feladatai: Termékek-feladatok.pdf, Csatahajók-feladatok.pdf
-- Tankönyv feladataihoz a scriptek: createTermékek, createCsatahajók
Oracle SQL segédanyagok: ebben az eduSQL mappában
-- lekérdezésekhez a scriptek: createHRsyn (elég szinonimákat használni)
-- később, DML-utasításokhoz: createHRtables (itt saját tábláink legyenek)
Oracle PL/SQL segédanyagok: ebben az eduPLSQL mappában
-- itt a plsql_ fájlok forrása: innen -- és a PL/SQL könyvhöz a scriptek: itt
-- Tankönyvtár: PL/SQL programozás Oracle 10g-ben (Gábor A.-Juhász I.)
Oracle 11gR2 Online Docu: -- Tanszéki szerveren -- Oracle oldalán --
-- SQL Language Reference: HTML PDF (2009.10) HTML PDF (2014.07)
-- PL/SQL Language Refer.: HTML PDF (2010.03) HTML PDF (2014.12)
1.GY: 2016.02.11. --- SQL előkészítés: create table, insert, egyszerű select
> Ismerkedés, Oracle adatbázisok elérése, SQL Developer használata
-- -- --
(1A) Relációséma, táblák létrehozása és táblák feltöltése adatsorokkal
> SQL DDL: relációséma, adattípusok, megszorítások: create table
> SQL DML: relációelőfordulás, táblák feltöltése adatsorokkal: insert
> Első feladat: Az OracleDoc Data Types fejezetének a segítségével
(vagy az ebből kivett oszloptípusok segédlettel) hozzunk létre táblákat!
-- -- --
(1B) Vetítés és kiválasztás művelete a relációs algebrában és SQL-ben
> Relációs algebra unér műveletei (vetítés, kiválasztás, átnevezés)
> Órai gyakorló feladatok: FeladatokDolg.txt, ehhez: createDolg (no constr)
dolgozo, osztaly táblákgépeljük be párhuzamosan az alábbi mintapéldákkal:
> Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn
>> Bevezetés (HR séma táblái), Sample Schemas: Fig.4-1 HR és OE sémák
>> 1/1.lecke (vetítés kiterjesztése, kifejezések)
>> 1/2.lecke (kiválasztás, kiválasztott sorok rendezése)
> Oracle Példatár: Feladatok.pdf
2.GY: 2016.02.18. --- Rel.alg. és SELECT: egy tábla lekérdezése
-- -- --
(2A) Feladatok relációs algebrai lekérdezésekre; Rel.Alg. -> SQL SELECT
> Relációs algebra alapműveletei: Termékek->lásd EA, Csatahajók->GYAK
> Szeret tábla és feladatok, ehhez a tábla létrehozása: create_szeret
> Tk.2.4. Relációs algebrai feladatok (Tk.2.4.1.feladat) Termékek feladatai
relációs algebrai kifejezésekkel, kifejezőfák átírása SQL lekérdezésekre
> Tankönyv feladatai: Termékek-feladatok.pdf, Csatahajók-feladatok.pdf
> Tankönyv feladataihoz a scriptek: create Termékek, create Csatahajók
-- -- --
(2B) Vetítés és kiválasztás kiterjesztése, kifejezések, függvények az SQL-ben
> Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn
>> 1/3.lecke (sorfüggvények használata a SELECT és WHERE záradékban)
> További példák, see Examples: SQL Language Reference >> 5 Functions:
Sorfüggvények: pl. Karakteres függvények: SUBSTR, RPAD, ..., INSTR, ...
pl. Dátum függvények: MONTHS_BETWEEN, ..., pl. Konverziós: TO_DATE, ...
pl. Null érték kezelése, helyettesítő érték megadása: NVL, COALESTE, ...
Figyelem! COALESTE példában: FROM product_information
mivel ez a tábla nem az HR, hanem OE sémában szerepel, ezért
itt ki kell írni a táblatulajdonost: FROM OE.product_information
(ugyanis csak a HR owner tábláihoz hoztuk létre a szinonimákat).
-- -- --
> Órai gyakorló feladatok: FeladatokDolg.txt, ehhez: createDolg (no constr)
> Feladatok: Oracle Példatár Feladatok.pdf 1.fejezet 1.1.-1.18. feladatok
Megj.: 1.14.feladatban foglalkozás szerint rendezve (nem csoportosítva)
> HF: befejezni az Oracle Példatár 1.1.-1.18. feladatokat!
3.GY: 2016.02.25. --- SELECT: kifejezések, összesítés, csoportosítás
-- -- --
(3A) Feladatok kiterjesztett relációs algebrai lekérdezésekre <->SQL SELECT
> Kiterjesztett relációs algebra egy relációra vonatkozó unér műveletei:
kiterjesztett vetítés, ismétlődő sorok megszüntetése, összesítések,
csoportosítási művelet, rendezési művelet (később: binér műveletek)
-- -- --
(3B) Egy táblára vonatkozó csoportosító lekérdezések, teljes SELECT utasítás
> SELECT DISTINCT, FROM, WHERE, GROUP BY, HAVING és ORDER BY záradékok
> Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn
>> 1/4.lecke (csoportosítás, group by és having záradékok)
-- -- --
> Órai gyakorló feladatok: FeladatokDolg.txt, ehhez: createDolg (no constr)
> Feladatok: Oracle Példatár Feladatok.pdf 2.fejezet 2.1-2.24 feladatok
> HF: befejezni az Oracle Példatár 2.1.-2.24. feladatokat!
4.GY: 2016.03.03. --- ZH1: Egy táblára vonatkozó lekérdezések
> I.ZH témaköre:
-- -- --
(4A) 1-3.előadások anyaga:
> Tk.2.4. Relációs algebra, Tk.5.1-5.2.Kiterjesztett relációs algebra,
> Tk.6.1. select, where, order by záradékok (SQL egytáblás lekérdezések)
> Tk.6.4. kifejezések használata, összesítések, group by, having záradékok
-- -- --
(4B) 1-3.gyakorlatok anyaga:
> Egy táblára vonatkozó egyszerű és csoportosító lekérdezések
> Oracle Példatár 1. és 2. fejezeteinek feladatai
-- -- --
> I.ZH feladatlapok hallgato/[jelszóval] 2016.03.03. zh1A, zh1B, zh1C, zh1D
> Eredmények: Az I.ZH-án elért részpontok hallgato/[jelszóval] [itt:.pdf]
5.GY: 2016.03.10. --- SELECT: többtáblás lekérdezések, alkérdések
-- -- -- --
(5A) Több táblára vonatkozó lekérdések, többféle megoldás joinnal, alkérdéssel
> Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn
>> 1/5.lecke (összekapcsolások, a külső join is)
> További példák: Példák összekapcsolásokra és outer join-okra
> Egy feladat kétoldali külső összekapcsolásra: Adjuk meg osztályonként
a dolgozók összfizetését (department_name, sum(salary)) formában
a hr.employees és hr.departments táblák adatai alapján, amelyekre
1. Azok az osztályok is jelenjenek meg ahol nem dolgozik senki,
ott az összfizetés 0 legyen.
2. Ha van olyan dolgozó, akinek nincs osztálya, azokat egy 'FIKTIV' nevű
osztályon gyűjtsük össze.
3. Csak azokat az osztályokat írjuk ki, amelyek nevében van 'B' betű,
plusz a FIKTIV osztályt.
--- Megoldás/ellenőrzésként: lásd itt
> Alkérdések használata (ezen a héten elsősorban a where záradékban)
>> 1/6.lecke és 2/6.lecke (alkérdések)
> Halmazműveletek (egyesítés, metszet és különbség az SQL-ben)
>> 1/7.lecke (halmaz- és multihalmaz műveletek)
> Megbeszéljük a teljes select utasítás szemantikáját és algebrai kiértékelését
-- -- --
> Órai gyakorló feladatok: FeladatokDolg.txt, ehhez: createDolg (no constr)
> Feladatok: Oracle Példatár Feladatok.pdf 3.fejezet feladatai
Összekapcsolások és alkérdések használatával többféle módon oldjuk meg!
> HF: befejezni az Oracle Példatár 3.1.-3.20. feladatokat!
6.GY: 2016.03.17. --- SELECT Kérdés/Válasz +SQL DML utasítások
-- -- -- --
(6A) DML (insert, delete, update), +Konzultáció: Példatár 3.fejezet feladataiból
> Oracle Példák: -- DML-utasításokhoz saját táblák létrehozása: createHRtables
>> 1/8.lecke SQL DML-utasítások (insert, update, delete) és a tranzakciók
-- -- -- --
(6B) DDL (create table) Táblák és megszorítások létrehozása
> Oracle Példák (Megj.: de a nézetek: köv.gyak, ill. indexek: AB2GY-on lesznek)
>> 1/9.lecke SQL DDL (táblák és megszorítások létrehozása)
>> 2/1.lecke SQL DDL (innen: csak a megszorítások létrehozása kell)
> További segédletek: create table, típusok, megszorítások (.txt)
-- -- --
> Órai gyakorló feladatok: DML_feladatok.txt, ehhez itt: createDolg (no constr)
> HF: Oracle Példatár 5-6.fejezet feladatai: DML-utasítások és DDL-utasítások
7.GY: 2016.03.31. --- Lekérdezések Datalogban, Rekurzió, WITH záradék
-- -- -- --
> II.ZH előtti összefoglalás, konzultáció, kérdés/válasz
> 1-6.előadások anyaga: Tankönyv 1-2., 5-7. és 10.2 fejezetei konzultáció
> Oracle Példatár 1-3. és 5.fejezet feladataiból konzultáció: kérdés/válasz
-- -- -- --
(7A) Tankönyv feladatai: Termékek-feladatok.pdf, Csatahajók-feladatok.pdf
A korábbi relációs algebrai kifejezőfákat írjuk át Datalog szabályokra is
>> Szeret tábla és feladatok, ehhez a tábla létrehozása: create_szeret
>> Segédanyag: 6.előadás.pdf >>>Rel.alg.kif.-> Datalog átírás.pdf
-- -- -- --
(7B) Rekurzió. Az Eljut feladat --- Ehhez: create_jaratok_tabla.txt
> Tk.10.2. Az Eljut-feladat. Rekurzió az SQL-ben: WITH RECURSIVE
>> Segédanyag: 6.előadás.pdf (papíron: Datalog -> SQL átírás)
> Oracle Példák (gépes kipróbálásra, papíros zárthelyin nem szerepel)
>> 2/6.lecke (WITH záradék -- alkérdések után 16-18.o.)
>> 2/7.lecke Hierarchikus lekérdezések -- hiera_lekerd.txt
> További példák az Oracle SQL Lang.Ref.11.2.pdf dokumentációban:
-- Hierarchikus lekérdezések: Chapter 9 - SQL Queries and Subqueries
innen Hierarchical Queries 9-3 és Hierarchical Query Examples 9-5
-- Rekurzió with-utasítással: itt 19-36 Subquery Factoring: Example
8.GY: 2016.04.07. --- Több táblára vonatkozó lekérdezések, és rekurzió
> II.ZH témaköre:
-- -- --
(8A) 1-6.előadások anyaga:
Tankönyv 1.fej. Alapok, 2.4. Rel.algebra, 5.1-5.2. Kiterj.rel.algebra,
6.1-6.4. SQL SELECT, 6.5. SQL DML, 7.1-7.5. és 8.1-8.2. SQL DDL
[5.3-]5.4. Datalog, innen csak ez: Rel.alg.kifejezést átírni Datalogba
10.2. Rekurzió a Datalogban és az SQL-1999-es szabványban
[Megj.: 7.EA anyagát a PL/SQL-t a 9-12. gyakorlatokon vesszük]
-- -- --
(8B) 1-7.gyakorlatok anyaga:
Több táblára vonatkozó lekérdezések
>> Oracle Példatár 1-3. fejezeteinek feladatai
SQL DML és DDL utasításai
>> Oracle Példatár 5-6. fejezeteinek feladatai
-- -- --
> II.ZH feladatlapok hallgato/[jelszóval] 2016.04.07. zh2A, zh2B, zh2C
> Eredmények: Az II.ZH-án elért részpontok hallgato/[jelszóval] [itt:.pdf]
9.GY: 2016.04.16. --- PL/SQL alapok, vezérlési szerkezetek, select into
-- -- -- --
(9A) PL/SQL 7EA anyagát a 9-11. gyakorlaton dolgozzuk fel, lásd PL/SQL--1/4
> PL/SQL feladatok: --- ehhez, mint a DML-hez volt: createDolg (no constraint)
-- A PL/SQL blokk előtt minden alkalommal állítsuk be: SET SERVEROUTPUT ON
1.) Az első feladat: Írjuk ki PL/SQL blokkból: 'Szia Világ!', majd egészítsük ki,
kérjen be egy nevet, számot, dátumot és ezeket is írassuk ki a programból!
2.) Írjuk ki KING fizetését (olvasás táblából változóba), abban az esetben,
ha ismert, hogy pontosan egy KING nevű dolgozó szerepel a táblában,
lásd példa-2-25 select-into (itt a 2-25 példában blokk: begin ... end; /
át kell tenni az end;-et a végére!) SELECT INTO-t akkor használjuk,
ha a lekérdezés pontosan egy sort ad, ha a lekérdezés több sorral
tér vissza, akkor kurzort kell használni, lásd köv.gyakorlat anyagát).
3.) Adjuk meg egy főnök azonosítóját, és töröljük a közvetlen beosztottjait, és
írassuk ki hány beosztottja volt, lásd példa-6-4 implicit kurzor attribútumok.
-- -- -- --
> További feladatok: Oracle Példatár Feladatok.pdf 8.fejezet 8.1.-8.9.feladatok
Változóhasználat, vezérlési szerkezetek a PL/SQL-ben --- Plusz segítség: itt
> HF: Befejezni az Oracle Példatár 8.fejezet 8.1-8.9 feladatait!
-- -- -- --
(9B) Az "Eljut feladat" megvalósítása PL/SQL-ben, lásd 7EA: PL/SQL--2/4
> Az Eljut-feladat a Tankönyv (Ullman-Widom kék könyv) 10.2 szakaszára épül
> Adott Jaratok(legitarsasag, honnan, hova, koltseg, indulas, erkezes) táblában
repülőjáratok adatait tároljuk (honnan-hova várospárok). Azt keressük, hogy
Dallasból mely városokba tudunk eljutni (közvetlenül vagy egy/több átszállással).
> Ezzel a scripttel jaratok_tabla.txt készítsünk saját táblát, ami alapján dolgozunk.
> Rek1.feladat: Mely (x, y) várospárokra lehetséges egy vagy több átszállással
eljutni x városból y városba? -- Ehhez készítsünk egy Eljut(honnan, hova) táblát,
a sorait a járatok tábla alapján PL/SQL programmal töltsük fel (ciklust szervezni,
az insert 2.alakja: több sor felvitele alkérdéssel/járatok és eljut táblák alapján).
>>> (csak ha kell, egy kis segítség, további ötletek és a megoldás vázlata: itt)
-- -- -- --
> Rek2.feladat: Mely (x,y) város párokra hány átszállással és milyen költségekkel
lehetséges egy vagy több átszállással eljutni x városból y városba? -- Ehhez is
készítsünk Eljut2(honnan, hova, atszallas, koltseg) táblát, a sorait programmal.
>> Papíron megoldandó feladat: Fejezzük ki az SQL-1999-es szabvány SELECT
WITH RECURSIVE utasítással, hogy mely mely városokba (hova) tudunk eljutni
'DAL' (Dallas)-ból legfeljebb 3 átszállással és legfeljebb 5000 költségből.
>>> (csak ha kell, egy kis segítség WITH RECURSIVE papíros részéhez itt)
> Rek3.feladat: Tegyük fel, hogy nemcsak az érdekel, hogy el tudunk-e jutni az
egyik városból a másikba, hanem az is, hogy utazásunk során az átszállások is
ésszerűek legyenek, ez azt jelenti, hogy ha több járattal utazunk, akkor nézni
kell átszálláskor az érkező járatnak legalább egy órával a rákövetkező indulás
előtt meg kell érkeznie. (Tegyük fel, hogy nincs egy napnál hosszabb utazás!)
> Rek4.feladat: A fenti feladatokat oldjuk meg PL/SQL-ben úgy is, hogy ne csak
a várospárokat, hanem a teljes útvonalat is listázzuk ki.
> HF: 11.gyakorlatra befejezni a Rek2 és Rek3 feladatokat (Rek4 feladat szorgalmi)
10.GY: 2016.04.21. --- PL/SQL Több sort visszaadó lekérdezések, kurzorok
-- -- -- --
(10) PL/SQL 7EA anyagát a 9-11. gyakorlaton dolgozzuk fel, a mai: PL/SQL--3/4
> PL/SQL feladatok: --- ehhez, mint a DML-hez volt: createDolg (no constraint)
-- A PL/SQL blokk előtt minden alkalommal állítsuk be: SET SERVEROUTPUT ON
1-4.) Lásd az előző heti gyakorlaton az első PL/SQL feladatokat!
5.) Írjuk ki a dolgozók nevét és fizetését!
-- több sort visszaadó lekérdezés, kurzor használata, lásd példa-6-7
6.) Írjuk ki a 3. 5. és 8. legnagyobb fizetésű dolgozó nevét, fizetését!
-- kurzor attribútumok, lásd példa-6-14
7.) Írjuk ki azon dolgozók nevét és fizetését, akik fizetése nagyobb mint
egy olyan szám, amelyet a felhasználó fog majd futás közben megadni!
-- felhasználói/helyettesítő változók: &numerikus_valt, '&karakteres_valt'
8.) Írjuk ki azon dolgozók nevét, fizetését és osztálykódját, akik a felhasználó
által megadott osztályon dolgoznak! A felhasználó által megadott betű
legyen A, R, S (Accounting ...) a 10, 20, 30-as osztály esetén.
-- paraméteres kurzor, lásd példa-6-17
9.) Növeljük meg a hivatalnokok (CLERK) fizetését a saját fizetésük 20%-ával!
-- for update kurzor módosításhoz, lásd ugyanez a feladat: példa-6-43
10.) Módosítsuk a dolgozók nevét írjuk át, hogy csak a kezdőbetű legyen nagy,
a többi betű kicsi, továbbá a dolgozók fizetését is növeljük meg 2 %-kal!
-- for update kurzor módosításhoz, lásd példa-6-43
-- -- -- --
> További feladatok: Oracle Példatár Feladatok.pdf 9.fejezet 9.1.-9.14.feladatok
Hivatkozási és összetett adattípusok, kurzor, ROWID" feladatai --- Segítség: itt
> HF: Befejezni az Oracle Példatár 9.fejezet 9.1-9.10 feladatait!
11.GY: 2016.04.28. --- PL/SQL: tárolt eljárások/függvények, kivételkezelés
-- -- -- --
(11) PL/SQL 7EA anyagát a 9-11. gyakorlaton dolgozzuk fel, a mai: PL/SQL--4/4
> PL/SQL feladatok: --- ehhez, mint a DML-hez volt: createDolg (no constraint)
-- A PL/SQL blokk előtt minden alkalommal állítsuk be: SET SERVEROUTPUT ON
1-10.) Lásd az előző heti gyakorlaton az első PL/SQL feladatokat: ezeket most
írjuk át eljárásokra/függvényekre, plusz legyen benne hiba- és kivételkezelés!
2.) Írjuk ki KING fizetését (olvasás táblából változóba és a képernyőre való kiíratás)
abban az esetben, ha pontosan egy KING nevű dolgozó szerepel a táblában,
viszont ha nincs ilyen nevű dolgozó vagy több ilyen is van, akkor azt írjuk ki!
Előre definiált kivételek: NO_DATA_FOUND, TOO_MANY_ROWS, lásd példa-11-5
(...) Előre definiált és felhasználói kivételek. Alprogramok (függvények, eljárások)
11.) a.) Írjunk meg egy függvényt, ami az azonosító alapján visszaadja a nevet!
b.) Írjunk meg egy eljárást, ami az azonosító alapján egy OUT változóban
visszaadja a nevet! (alprogramok: függvények és eljárások/procedúrák)
12.) Írjunk meg egy függvényt, ami visszaadja a paraméterében levő magánhangzók
számát. Majd módosítsuk a fizetéseket ennek a függvénynek a segítségével.
(itt most a módosítást az UPDATE utasítással végezzük, és nem plsql-ben)
-- -- -- --
> Gyakorló feladatok az Oracle Példatárból
> Feladatok: Oracle Példatár 10.fejezet példái/feladatai, pl. kivételkezelésre:
Írjunk egy olyan eljárást, amely kivételkezelést is tartalmaz és a jutalmat
az emp táblából létrehozott dolg tábla jutalék (comm) értékéhez adja hozzá!
A jutalom a dolgozó fizetésének 10%-a, ha a fizetés 3000 dollár alatt van,
egyébként csak egy "Boldog Karácsonyt!" üdvözletet kap. --- Segítség: itt:5a
-- -- -- --
A korábbi PL/SQL HF-feladatokat és a mai órai gyakorlást is próbaként töltsük fel
<Nev>.txt nevű szövegfájlban ebbe a zh mappába: \\nas2.inf.elte.hu\zh\sila
Köv.héten gépes ZH: teljes félév gyakorlati gépes részének anyaga (SQL, PL/SQL)
12.GY: 2016.05.05. --- III.ZH: SQL DDL és DML utasítások, és PL/SQL
-- ZH: Csütörtökön! (Az idei Neumann-nap kedden lesz, nem csütörtökön!)
> III.ZH témaköre: gépes ZH a teljes SQL nyelvből és az Oracle PL/SQL-ből
Tk.6.5. DML, 7-8.fej.DDL, 9.3-9.4.SQL/PSM (PL/SQL), 10.2.Rekurzió (WITH)
Eddigi gyakorlatok gépes anyaga: Oracle Példatár 1-10.fejezet feladatai
> Ellenőrzésre jelenléti ív (név-> 4kar-kód) hallgato/[jelszóval] [itt:.pdf]
> Eredmények: Az III.ZH-án elért részpontok hallgato/[jelszóval] [itt:.pdf]
13.GY: 2016.05.12. --- Konzultáció: A félév zárása, Kérdés/Válasz
> Konzultáció: Kérdés/Válasz,
> Gyakorlati jegyek zárása (név-> 4kar-kód) hallgato/[jelszóval] [itt:.pdf]
> JavZH - 13.GY: 05.12. fenti 3 ZH közül az egyik pótolható/javítható
| JavZH/GyakUV: 05.24. Kedd 12:15-13:45 Déli ép. 2-315 PC4 labor |
| JavZH/GyakUV: 05.27. Péntek 10:15-11:45 Déli ép. 2-315 PC4 labor |
| GyakUV: 05.31.[Neptun] Kedd 12:15-13:45 Déli ép. 2-315 PC4 labor |