Objektumorientált programozás

A VIK Wikiből
A lap korábbi változatát látod, amilyen Gyöngyösi Máté (vitalap | szerkesztései) 2023. április 17., 11:15-kor történt szerkesztése után volt. (→‎Előadás: Óra anyagának hozzáadása)
Objektumorientált programozás
Tárgykód
VIIIBA02
Általános infók
Szak
üzemmérnök
Kredit
7
Ajánlott félév
2
Tanszék
IIT
Követelmények
Labor
14 db
KisZH
6 db + beugró
NagyZH
nincs
Házi feladat
1 nagyházi
Vizsga
nincs
Elérhetőségek

A tantárgy célkitűzése az objektumorientált gondolkodásmód és az OO programozási nyelvek lehetőségeinek kihasználására való készség kialakítása, amelyhez a Java nyelv ad szintaktikai és szemantikai keretet.


Követelmények

Előtanulmányi rend

Szorgalmi időszakban

Laborok

  • 70%-os részvétel.
    • A laboralkalmak és az ellenőrző mérések nem pótolhatóak.

Nagyházi

  • Kiválasztás a 6. hétig.
  • A dokumentáció leadása a 8. hétig.
  • Leadás a 13. hétig.
    • Ez pótolható a 14. héten.
  • A laborvezetővel előre egyeztett laboralkalmon be kell mutatni a házit, ki kell próbálni. Leteszteli (akár kérdésekkel), hogy tényleg a hallgató csinálta-e.

Vizsgafeltételek

  • A 4 legjobb kisZH átlaga eléri a kettest.
  • A nagyházi elfogadható.

Tematika

A számonkéréseken általában csak az itt felsorolt ((kivéve a duplazárójeleseket)) témakörök szerepelnek.

Előadás

  • 1. hét: bevezetés, alapok (típusok, beolvasás, műveletek, vezérlési szerkezetek, elágazások, ciklusok, tömbök)
  • 2. hét: metódusok (definiálás, paraméterezés), típus-kompatibilitás, memóriakezelés, lokális változók, tömbök, ArrayList, csomagok, konvenciók, kommentek
    • Hiba a 22. dián: a "p2[0] = 7;" helyesen "p2[1] = 7;".
  • 3. hét: osztályok: létrehozás, inicializálás láthatóság, egységbezárás, String
  • 4. hét: objektumok és kapcsolataik, kivételkezelés, wrapper osztályok ((boxing)), segédosztályok (Math, Random, Arrays)
  • 5. hét: változók, metódusok és kivételek öröklése ((Liskov Substitution Principle)); láthatóságok; statikus és dinamikus típusok, virtuális metódusok, metódushívás-szabály, kései kötés; absztrakt osztályok és metódusok
  • 6. hét: static változók, polimorfizmus, öröklés (OCP), heterogén kollekció, osztálykohézió és -csatolás, Object osztály, boolean equals()
  • 7. hét: szünet
  • 8. hét: interface+implements, deep / shallow copy, hash; kollekciók: áttekintés, Interface Collection, Iterator, Set, List, Collections
  • 9. hét: input-output
  • 10. hét. szünet
  • 11. hét: szövegfeldolgozás és utility-k
  • 12. hét: automatizált tesztelés
  • 13. hét: fakultatív konzultáció
  • 14. hét: szünet

Labor

  • 1. hét: alapok, Eclipse (tutorial)
  • 2. hét: (rekurzív) függvények, List, ArrayList
  • 3. hét: 1. kisZH az 1–2. előadás anyagából; osztályok készítése
  • 4. hét: szünet
  • 5. hét: 2. kisZH az 1–3. előadás anyagából; kivételkezelés, osztályok készítése (setter, getter, konstruktorok) és azok közötti kapcsolatok létrehozása
  • 6. hét: (többszörös) öröklés, láthatóságok, kivételek (öröklés)
  • 6. hét: heterogén kollekció
  • 7. hét: kollekció keretrendszer
  • 8. hét: filekezelés, IO
  • 9. hét: szövegfeldolgozás
  • 10. hét: JUnit
  • 11. hét: komplex feladat
  • 12. hét: elmaradt
  • 13. hét: HF bemutatás
  • 14. hét: HF bemutatás / pótlás

Ajánlott irodalom

Tippek

  • Érdemes az elején összeszedni a ketteshez szükséges pontszámot (1-2 ZH-ból lehetséges). A vége felé a ZH-k nehézsége exponenciálisan növekszik, és ez nem az a típusú tárgy, hogy "majd az utolsón megszerzem a maradék x pontot".


1. félév
2. félév
3. félév
4. félév
5. félév
6. félév