„Objektumorientált programozás” változatai közötti eltérés
A VIK Wikiből
start |
→Előadás: Óra anyagának hozzáadása |
||
(55 közbenső módosítás, amit 8 másik szerkesztő végzett, nincs mutatva) | |||
1. sor: | 1. sor: | ||
{{Tantárgy | {{Tantárgy | ||
|nev=Objektumorientált programozás | |nev=Objektumorientált programozás | ||
|tárgykód= | |tárgykód=VIIIBA02 | ||
|szak=üzemmérnök | |szak=üzemmérnök | ||
|kredit=7 | |kredit=7 | ||
|felev=2 | |felev=2 | ||
|kereszt= | |kereszt= | ||
|tanszék=IIT | |tanszék=IIT | ||
| | |labor=14 db | ||
| | |kiszh=6 db | ||
|nagyzh= | |nagyzh=nincs | ||
|hf= | |hf=1 nagy | ||
|vizsga=nincs | |||
|tad=https://portal.vik.bme.hu/kepzes/targyak/VIIIBA02/ | |tad=https://portal.vik.bme.hu/kepzes/targyak/VIIIBA02/ | ||
|targyhonlap= | |targyhonlap=https://www.iit.bme.hu/oktatas/tanszeki_targyak/BMEVIIIBA02 | ||
|levlista= | |levlista= }} | ||
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 == | == Követelmények == | ||
=== | === Előtanulmányi rend === | ||
* A tárgy felvételéhez [[A programozás alapjai]] aláírás szükséges. | |||
=== | === 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 == | == 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 === | ||
=== | * [[Media:ooprog_1a_basics_v13_2023-tavasz.pdf | 1. hét]]: bevezetés, alapok (típusok, beolvasás, műveletek, vezérlési szerkezetek, elágazások, ciklusok, tömbök) | ||
* [[Media:ooprog_1b_basics_v13_2023-tavasz.pdf | 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 | |||
** A 22. dián a ''"p2[0] = 7;"'' helyesen ''"p2[1] = 7;"''. | |||
* [[Media:ooprog_2_classes_v6_2023-tavasz.pdf | 3. hét]]: osztályok: létrehozás, inicializálás láthatóság, egységbezárás, ''String'' | |||
* [[Media:ooprog_3_associations_v7_2023-tavasz.pdf | 4. hét]]: objektumok és kapcsolataik, kivételkezelés, ''wrapper'' osztályok ((''boxing'')), segédosztályok (''Math'', ''Random'', ''Arrays'') | |||
* [[Media:ooprog_4_inheritance_v8_2023-tavasz.pdf | 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 | |||
* [[Media:ooprog_5_polimorfizmus_v6_0_2023-tavasz.pdf | 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'' | |||
* [[Media:ooprog_6_collection_v4_2023-tavasz.pdf | 8. hét]]: ''interface''+''implements'', ''deep / shallow copy'', ''hash''; kollekciók: áttekintés, ''Interface Collection'', ''Iterator'', ''Set'', ''List'', ''Collections'' | |||
* [[Media:ooprog_7_io_v2_2023-tavasz.pdf | 9. hét]]: ''elmaradt, de videóval pótolva''; genericitás: sablon (''T'') és öröklése; kollekciók: ''SortedSet'', ''Map'', ''SortedMap''; ''for-each''; input-output: ''Reader'' és ''Writer'', ''InputStream(Reader)'' és ''OutputStream(Reader)'', ''File'' | |||
* 10. hét. ''szünet'' | |||
* [[Media:ooprog_8_serial_util_v2_2023-tavasz.pdf | 11. hét]]: (de)szerializálás: ''ObjectOutputStream'' és ''ObjectInputStream'', ''Properties'', ''StringBuffer'' és ''StringBuilder''; ''(Local)Time'', ''(Local)Date'', ''(Gregorian)Calendar''; ''Random'', ''(Strict)Math'', ''BigInteger'', ''BigDecimal''; ''Scanner'', ''enum''; ''varargs''; ''Arrays.asList''; annotációk | |||
* [[Media:ooprog_9_junit_v2-junit4_2023-tavasz.pdf | 12. hét]]: ''JUnit'': ''Fixture''-metódusok (''@BeforeAll'', ''@BeforeEach'', ''@AfterEach'', ''@AfterAll''), ''Assert''-metódusok, eredmények (''Success'', ''Faliure'', ''Error'', ''Ignore''), ''@Ignore'', ''@Parameters'', ''@Suite'', ''@Tag'', ''ExternalResource'', ''design by contract'', ''assert'' | |||
* 13. hét: ''fakultatív konzultáció'' | |||
* 14. hét: ''szünet'' | |||
=== | === Labor === | ||
* [[Media:ooprog_1_bev_tasks_20230228.pdf | 1. hét]]: alapok, Eclipse ([[Media:ooprog_1_bev_tutorial_20230228.pdf |tutorial]]) | |||
* [[Media:ooprog_2_fuggveny_tasks_20230307.pdf | 2. hét]]: (rekurzív) függvények, ''List'', ''ArrayList'' | |||
* [[Media:ooprog_3_objektum_tasks_20230314.pdf | 3. hét]]: '''''1. kisZH''' az 1–2. heti előadások anyagából''; osztályok készítése | |||
* 4. hét: ''szünet'' | |||
* [[Media:ooprog_4_asszocaciok_tasks_20230328.pdf | 5. hét]]: '''''2. kisZH''' az 1–3. heti előadások anyagából''; kivételkezelés, osztályok készítése (''setter'', ''getter'', konstruktorok) és azok közötti kapcsolatok létrehozása | |||
* [[Media:ooprog_5_orokles_tasks_20230404.pdf | 6. hét]]: (többszörös) öröklés, láthatóságok, kivételek (öröklés) | |||
* 7. hét: ''szünet'' | |||
* [[Media:ooprog_6_heterogen_tasks_20230418.pdf | 8. hét]]: '''''3. kisZH''' az 1–6. heti előadások anyagából''; heterogén kollekció, öröklés, statikus tagok, rekurzív tárolás | |||
* [[Media:Ooprog_7_kollekciok_tasks_20230425.pdf | 9. hét]]: '''''4. kisZH''' az 1–8. heti előadások anyagából''; ''split'', kollekciók, parancsok, ''switch-case'', ''Comparator'', ''iterator'' | |||
* [[Media:ooprog_8_io_tasks_20230502.pdf | 10. hét]]: parancsfeldolgozás, ''split'', ''System.getProperty()'', ''listFiles'', ''File'', ''getCanonicalPath()'', ''getParentFile()'', ''delete()'', ''mkdir()'', ''renameTo()'', ''FileInputStream'' és ''FileOutputStream'', ''FileReader'' és ''BufferedReader'', ''Scanner'', ''String.matches()'', ''run arguments'', ''java.util.zip'' | |||
* [[Media:ooprog_9_naptar_tasks_20230509.pdf | 11. hét]]: '''''5. kisZH''' az 1–9. heti előadások anyagából''; dátumok: ''LocalDate.now()'', ''plusDays()'' és ''minusDays()'', ''getDayOfMonth()'', ''getDayOfWeek()'', ''getValue()'', ''lengthOfMonth()'', ''LocalDate.parse(String)'', ''LocalTime.parse(String)'', tárolás ''TreeMap''ben; parancsfeldolgozás | |||
* [[Media:ooprog_a_junit_tasks_20230516.pdf | 12. hét]]: '''''6. kisZH''' az 1–10. heti előadások anyagából''; JUnit | |||
* 13. hét: HF-bemutatás | |||
* 14. hét: HF-pótlás | |||
== | == Ajánlott irodalom == | ||
* Kövesdán Gábor: Szoftverfejlesztés Java SE platformon (ISBN 978-615-00-2933-7, 2018., 2. magánkiadás) | |||
== Tippek == | == 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". | |||
{{Lábléc_-_Üzemmérnök-informatikus_alapszak}} | |||
A lap jelenlegi, 2023. május 16., 09:49-kori változata
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
- A tárgy felvételéhez A programozás alapjai aláírás szükséges.
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
- 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: elmaradt, de videóval pótolva; genericitás: sablon (T) és öröklése; kollekciók: SortedSet, Map, SortedMap; for-each; input-output: Reader és Writer, InputStream(Reader) és OutputStream(Reader), File
- 10. hét. szünet
- 11. hét: (de)szerializálás: ObjectOutputStream és ObjectInputStream, Properties, StringBuffer és StringBuilder; (Local)Time, (Local)Date, (Gregorian)Calendar; Random, (Strict)Math, BigInteger, BigDecimal; Scanner, enum; varargs; Arrays.asList; annotációk
- 12. hét: JUnit: Fixture-metódusok (@BeforeAll, @BeforeEach, @AfterEach, @AfterAll), Assert-metódusok, eredmények (Success, Faliure, Error, Ignore), @Ignore, @Parameters, @Suite, @Tag, ExternalResource, design by contract, assert
- 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. heti előadások anyagából; osztályok készítése
- 4. hét: szünet
- 5. hét: 2. kisZH az 1–3. heti előadások 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)
- 7. hét: szünet
- 8. hét: 3. kisZH az 1–6. heti előadások anyagából; heterogén kollekció, öröklés, statikus tagok, rekurzív tárolás
- 9. hét: 4. kisZH az 1–8. heti előadások anyagából; split, kollekciók, parancsok, switch-case, Comparator, iterator
- 10. hét: parancsfeldolgozás, split, System.getProperty(), listFiles, File, getCanonicalPath(), getParentFile(), delete(), mkdir(), renameTo(), FileInputStream és FileOutputStream, FileReader és BufferedReader, Scanner, String.matches(), run arguments, java.util.zip
- 11. hét: 5. kisZH az 1–9. heti előadások anyagából; dátumok: LocalDate.now(), plusDays() és minusDays(), getDayOfMonth(), getDayOfWeek(), getValue(), lengthOfMonth(), LocalDate.parse(String), LocalTime.parse(String), tárolás TreeMapben; parancsfeldolgozás
- 12. hét: 6. kisZH az 1–10. heti előadások anyagából; JUnit
- 13. hét: HF-bemutatás
- 14. hét: HF-pótlás
Ajánlott irodalom
- Kövesdán Gábor: Szoftverfejlesztés Java SE platformon (ISBN 978-615-00-2933-7, 2018., 2. magánkiadás)
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 |