„A programozás alapjai II.” változatai közötti eltérés

Csia Klaudia Kitti (vitalap | szerkesztései)
aNincs szerkesztési összefoglaló
Nincs szerkesztési összefoglaló
 
(5 közbenső módosítás, amit 4 másik szerkesztő végzett, nincs mutatva)
15. sor: 15. sor:
|tad=https://www.vik.bme.hu/kepzes/targyak/VIIIAA03
|tad=https://www.vik.bme.hu/kepzes/targyak/VIIIAA03
|targyhonlap=http://infocpp.iit.bme.hu/
|targyhonlap=http://infocpp.iit.bme.hu/
|levlista=prog2{{kukac}}sch.bme.hu }}
|levlista=prog2{{kukac}}sch.bme.hu
}}
{{Egyértelműsítő|programozás alapjai|A programozás alapjai (egyértelműsítő lap)}}


A tárgy fő célkitűzése, hogy bevezessen az objektum-orientált programozásba a C++ nyelv megismertetésével. Ennek alapjául az előző félévben megszerzett C nyelvi tudás szükséges. További cél, hogy megismertessen néhány alapvető operációsrendszer-használati fogalommal, valamint hordozható programok írásának szabályaival.
A tárgy fő célkitűzése, hogy bevezessen az objektum-orientált programozásba a C++ nyelv megismertetésével. Ennek alapjául az előző félévben megszerzett C nyelvi tudás szükséges. További cél, hogy megismertessen néhány alapvető operációsrendszer-használati fogalommal, valamint hordozható programok írásának szabályaival.


A tárgyak felelőse és előadója Dr. Szeberényi Imre és Somogyi Péter. A laborgyakorlatokat az IIT vezetésével az AAIT, EET, ETT, HIT és a VET tanszékek oktatói tartják. Gyakorlat nincs a tárgyból.
A tárgyak felelőse és előadója Dr. Szeberényi Imre és Somogyi Péter. A laborgyakorlatokat az IIT vezetésével az AAIT, EET, ETT, HIT és a VET tanszékek oktatói tartják. Gyakorlat nincs a tárgyból.


== Követelmények ==
== Követelmények ==
===Előtanulmányi rend===
: ''További részletek és aktuális információk a tárgyhonlapon: [https://infocpp.iit.bme.hu/node/171 infocpp.iit.bme.hu]''
*Az új tanterv [[A programozás alapjai I.|A programozás alapjai 1.]] tárgyából kredit megszerzése, vagy a régi tanterv [[A programozás alapjai I. (régi)|A programozás alapjai 1.]] tárgyából kredit megszerzése szükséges a tárgy felvételéhez.


===A szorgalmi időszakban===
=== Előtanulmányi rend ===
*A min. elégséges '''félévvégi jegy''' feltételei:
* Az új tanterv [[A programozás alapjai I.|A programozás alapjai 1.]] tárgyából kredit megszerzése, vagy a régi tanterv [[A programozás alapjai I. (régi)|A programozás alapjai 1.]] tárgyából kredit megszerzése szükséges a tárgy felvételéhez.
**A '''laborok''' legalább 70%-án való részvétel.
**A laborokon írt "beugrók" és jporta ellenőrző feladatokból összegezve min. 16 darab sikeres megoldása.
**A '''kisZH'''-k sikeres megírása. Ehhez a 3db kisZH-ból a legjobb 2-nek külön-külön el kell hogy érje a 40%-ot.
**A 2 '''nagyZH''' sikeres megírása. Ehhez a két ZH összpontszámának kell elérnie az összesen elérhető pontok 50%-át, tehát 40 pontot.
**A nagy '''házi feladat''' sikeres megoldása, bemutatása.
*'''Pótlási lehetőségek''':
**A '''kisZH-k''' pótlólagos megírására nincs lehetőség, viszont 3 kisZH-ból csak 2 számít, így a maradék egyet felhasználhatod javításra, és a két legjobb számít majd bele.
**A '''nagyZH'''-k közül az egyik, mégpedig amelyik rosszabbul sikerült elsőre, a pótlási héten pótolható. Azonos pontszám esetén a második anyagrészből. A pótZH felülírja a korábbi ZH eredményét.
**A nagy '''házi feladat''' pótlólagos beadására csak a szorgalmi időszak végéig (utolsó tanítási napon, 12.00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem pótolható. A megoldások apróbb hibáinak javítására – a laborvezető oktatóval egyeztetett időpontban – a pótlási hét végéig (utolsó napon 12:00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem javítható. A pótlási héten már csak olyan feladatok és/vagy dokumentációk javíthatók, amelyek hiányosság, vagy működési hiba miatt kerültek elutasításra.


===Félévvégi jegy===
=== A szorgalmi időszakban ===
<code>Pontszám = NZH1 (40 pont) + NZH2 (40 pont) + legjobb 2 kisZH (20 pont) + pluszpontok (14 pont)</code>
* A min. elégséges '''félévvégi jegy''' feltételei:
* Pluszpont kétféleképpen szerezhető:
** A '''laborok''' legalább 70%-án való részvétel. (max 4 hiányzás)
** Házi feladat: a négy részfeladat időben leadására összesen 6 (1,1,2,2) pluszpont kapható, ha egyik leadásával is csúszunk vagy nem adjuk le, akkor minden előző pontunk elveszett.  
** A laborokon írt beugrókból, jporta ellenőrző feladatokból, illetve jportára leadott laborfeladatokból összegezve min. 22 pont szerzése.
** Szorgalmi feladatok: jporta - ural-on kiadott feladatok, 1-1 pont kapható rájuk. Csak akkor számítanak, ha a két ZH-ból és a kisZH-kból a pontszámod megüti az elégséges alsó határát.
*** Ezek mind egyesével 1 pontot érnek, ez összesen 3x11 a félév során.
*** Amennyiben a labor alkalmon kisZH van, labor beugró pontnak a sikeres (>40%) kisZH számít.
** A '''kisZH'''-k sikeres megírása. Ehhez a 3db kisZH-ból a legjobb 2-nek külön-külön el kell hogy érje a 40%-ot, azaz 4 pontot.
** A 2 '''nagyZH''' sikeres megírása. Ehhez a két ZH ''összpontszámának'' kell elérnie az összesen elérhető pontok 50%-át, tehát 40 pontot.
** A nagy '''házi feladat''' sikeres megoldása, bemutatása.
* '''Pótlási lehetőségek''':
** A '''kisZH-k''' pótlólagos megírására nincs lehetőség, viszont 3 kisZH-ból csak 2 számít, így a maradék egyet felhasználhatod javításra, és a két legjobb számít majd bele.
** A '''nagyZH'''-k közül az egyik, mégpedig amelyik rosszabbul sikerült elsőre, a pótlási héten pótolható. Azonos pontszám esetén a második anyagrészből. A pótZH felülírja a korábbi ZH eredményét.
** A nagy '''házi feladat''' pótlólagos beadására csak a szorgalmi időszak végéig (utolsó tanítási napon, 12.00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem pótolható. A megoldások apróbb hibáinak javítására – a laborvezető oktatóval egyeztetett időpontban – a pótlási hét végéig (utolsó napon 12:00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem javítható. A pótlási héten már csak olyan feladatok és/vagy dokumentációk javíthatók, amelyek hiányosság, vagy működési hiba miatt kerültek elutasításra.


* Ponthatárok:
=== Félévvégi jegy ===
:{| class="wikitable" style="text-align: center; width: 120px; height: 40px;"
A félév végi pontszám az alábbiak összege:
!Pont !! Jegy
* NZH1 (40 pont)
|-
* NZH2 (40 pont)
|0 - 47|| 1
* Két legjobb kisZH szummája (20 pont)
|-
* Laborfeladatok (33 pont)
|48 - 60|| 2
** Előfeladatok (11 pont)
|-
** "Beugró" ellenőrző kérdések (11 pont)
|61 - 73|| 3
** Sikeres labor feladatok (11 pont)
|-
* HF pont (40 pont)
|74 - 86|| 4
* Plusz pontok (20 pont)
|-
** HF plusz pont (6 pont)
|87 - || 5
*** Részfeladatok időben leadása (1+1+2+2=6 pont)
|}
** Szorgalmik (14 pont)


== Segédanyagok ==
==== Ponthatárok ====
{{Jegykonvertálás
|1 = 0 - 85
|2 = 86 - 107
|3 = 108 - 129
|4 = 130 - 151
|5 = 152+
}}


=== Jegyzet ===
==== iMSc pontok ====
* Dobra Gábor [http://cppftw.org/jegyzet/ Prog2 jegyzete]
* '''Elérhető pontszám''': 30 pont
* Siroki Péter HaT-os öregtag által készített C++ jegyzet: [[Media:Prog2_jegyzet.pdf|pdf]] - [http://psiroki.github.io/ccjegyzet/ online]. A villanyos tematikát követi, de itt is jól használható. Az esetleges hibákat a wiki@sch.bme.hu címre várjuk.
* Az extra pontokkal (HF és szorgalmi pontok), továbbá a nagy zárthelyiken megoldott iMSc feladatokkal többlet pontok szerezhetőek. Ezek hozzáadódnak az össz. pontszámhoz (P), ha a minimális (elégséges) követelmények teljesülnek.
* Minden jeles érdemjegyet meghaladó pontot iMSc ponttá alakítunk, de az nem haladhatja meg a 30 pontot:
* iMSc pont = <math> min ( max ( P - 152, 0) , 30) </math>


=== Általános segédletek ===
== Segédanyagok ==
* [http://www.eet.bme.hu/~czirkos/cpp.php Czirkos Zoltán honlapja]
* [https://infocpp.iit.bme.hu/tananyag infocpp] diasorok, laborfeladatok
* [https://infocpp.ddns.me InfoC++2 nem hivatalos, de hasznos honlap]
* [[ProgUnixon]]
* [[Prog2ShellScriptTutorial|ShellScriptTutorial]]
* [[Prog2Vi|A vi szövegszerkesztőről]]
* [http://www.cppreference.com/ C és C++ referencia oldal]
* [http://www.iit.bme.hu/~szebi/proga2/cppsummary.pdf 2 oldalas C++ összefoglaló]
* [http://www.iit.bme.hu/~szebi/proga2/stlsummary.pdf 2 oldalas STL összefoglaló]
* [http://duramecho.com/ComputerInformation/WhyHowCppConst.html Mire jó a konstans referencia?] Ha végigolvasod megvilágosodsz.
* [https://sites.google.com/site/czirjakzoltan91/programozas/c-programozas-1 Czirják Zoltán 2012 tavaszi félévben tartott konzultációinak megoldásai és feladatsorai.] Jól jön a zh-hoz, beugrókhoz.
* [http://www.aut.bme.hu/CppPeldatar/Tags/El%C5%91sz%C3%B3 c++] Villanyos c++ példatár.
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty] ural2 eléréshez.
* [https://tortoisesvn.net/ TortoiseSVN] laborok anyagainak letöltéséhez.


=== Előadások diái ===
=== Előadások diái ===
98. sor: 94. sor:
** [[Media:Prog2 hfhez ea.pdf | Házi feladathoz előadás]]
** [[Media:Prog2 hfhez ea.pdf | Házi feladathoz előadás]]
** [[Media:Prog2 bonusz ea.pdf | Bónusz előadás]]
** [[Media:Prog2 bonusz ea.pdf | Bónusz előadás]]
=== Jegyzet ===
* Dobra Gábor [http://cppftw.org/jegyzet/ Prog2 jegyzete]
* Siroki Péter HaT-os öregtag által készített C++ jegyzet: [[Media:Prog2_jegyzet.pdf|pdf]] - [http://psiroki.github.io/ccjegyzet/ online]. A villanyos tematikát követi, de itt is jól használható. Az esetleges hibákat a wiki@sch.bme.hu címre várjuk.
* [[Media:Tomor_prog2_2020.pdf | Tömör Prog2 jegyzet - 2020]]
=== Általános segédletek ===
* [http://www.eet.bme.hu/~czirkos/cpp.php Czirkos Zoltán honlapja]
* [https://infocpp.ddns.me InfoC++2 nem hivatalos, de hasznos honlap]
* [[ProgUnixon]]
* [[Prog2ShellScriptTutorial|ShellScriptTutorial]]
* [[Prog2Vi|A vi szövegszerkesztőről]]
* [http://www.cppreference.com/ C és C++ referencia oldal]
* [http://www.iit.bme.hu/~szebi/proga2/cppsummary.pdf 2 oldalas C++ összefoglaló]
* [http://www.iit.bme.hu/~szebi/proga2/stlsummary.pdf 2 oldalas STL összefoglaló]
* [http://duramecho.com/ComputerInformation/WhyHowCppConst.html Mire jó a konstans referencia?] Ha végigolvasod megvilágosodsz.
* [https://sites.google.com/site/czirjakzoltan91/programozas/c-programozas-1 Czirják Zoltán 2012 tavaszi félévben tartott konzultációinak megoldásai és feladatsorai.] Jól jön a zh-hoz, beugrókhoz.
* [http://www.aut.bme.hu/CppPeldatar/Tags/El%C5%91sz%C3%B3 c++] Villanyos c++ példatár.
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty] ural2 eléréshez.
* [https://tortoisesvn.net/ TortoiseSVN] laborok anyagainak letöltéséhez.


=== Online hozzáférhető könyvek ===
=== Online hozzáférhető könyvek ===
118. sor: 134. sor:
==  Házi ==
==  Házi ==
* A házi feladat négy nagy lépésre osztható szét +  a szóbeli bemutatás.
* A házi feladat négy nagy lépésre osztható szét +  a szóbeli bemutatás.
** 1) SPECIFIKÁCIÓ: Be kell adni egy kis, belső lefutások nélküli (fekete doboz) specifikációt a feladatról PDF-ben, amit elkészítesz majd. (1 pont)
** 1) SPECIFIKÁCIÓ: Be kell adni egy kis, belső lefutások nélküli (fekete doboz) specifikációt a feladatról PDF-ben, amit elkészítesz majd.
** 2) TERV: Előző specifikációt bővítve el kell készíteni egy doksit, ami tartalmaz egy kibővített feladatspecifikációt (pl. várható bemenetek kimenetek, program használata, hogyan tárolod majd az adatokat... stb) + egy objektumtervet, tehát egy UML rajz a függvényekről, osztályok kapcsolatáról (inheritance, use...stb). Ehhez érdemes használni a Creatly oldalán lévő UML drawert (https://app.creately.com), nem kell letölteni hozzá semmit, és tudod egyből exportálni is. Ezen kívül a fájlnak tartalmaznia kell a fontosabb algoritmusok leírását pszeduo-kódban, pl hogy működik a fájlikiírás, fájlbeolvasás, adatbázis adatainak feldolgozása stb. (1 pont)
** 2) TERV: Előző specifikációt bővítve el kell készíteni egy doksit, ami tartalmaz egy kibővített feladatspecifikációt (pl. várható bemenetek kimenetek, program használata, hogyan tárolod majd az adatokat... stb) + egy objektumtervet, tehát egy UML rajz a függvényekről, osztályok kapcsolatáról (inheritance, use...stb). Ehhez érdemes használni a Creatly oldalán lévő UML drawert (https://app.creately.com), nem kell letölteni hozzá semmit, és tudod egyből exportálni is. Ezen kívül a fájlnak tartalmaznia kell a fontosabb algoritmusok leírását pszeduo-kódban, pl hogy működik a fájlikiírás, fájlbeolvasás, adatbázis adatainak feldolgozása stb.
** 3) SKELETON: Itt már a kódodat adod be, viszont nem kell mindennek működnie. Elég ha a felhasználói felület kész, de pl. a fájlműveletek nem működnek. A lényeg, hogy objektumorientáltan legyenek csoportosítva a függvények, és legyen már logikus felépítésű. Nem kötelező a végső programnak egy az egyben így kinéznie, lehet ezután is változtatni még rajta. (2 pont)
** 3) SKELETON: Itt már a kódodat adod be, viszont nem kell mindennek működnie. Elég ha a felhasználói felület kész, de pl. a fájlműveletek nem működnek. A lényeg, hogy objektumorientáltan legyenek csoportosítva a függvények, és legyen már logikus felépítésű. Nem kötelező a végső programnak egy az egyben így kinéznie, lehet ezután is változtatni még rajta.
** 4) KÉSZ: A kész és teljes feladat több részletből áll, így érdemes mindig időben elkészíteni a felette lévő dolgokat, mert sokat segít az időmenedzsmentben, ha nem az utolsó hetekben kell mindezt kitalálni. (2 pont)
** 4) KÉSZ: A kész és teljes feladat több részletből áll, így érdemes mindig időben elkészíteni a felette lévő dolgokat, mert sokat segít az időmenedzsmentben, ha nem az utolsó hetekben kell mindezt kitalálni.


== KisZH ==
== KisZH ==
138. sor: 154. sor:


=== 2. ZH ===
=== 2. ZH ===
* [[Prog2 2. ZH kikérdező]]
*2015
*2015
** [[Media:prog2_zh2_2015.pdf | ZH megoldásokkal]]  
** [[Media:prog2_zh2_2015.pdf | ZH megoldásokkal]]  
172. sor: 189. sor:




{{Lábléc_-_Mérnök_informatikus_alapszak_2014}}
{{Lábléc - Mérnök informatikus alapszak 2022}}
{{Lábléc - Mérnök informatikus alapszak 2014}}