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

A VIK Wikiből
Steindani (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
Nincs szerkesztési összefoglaló
 
(88 közbenső módosítás, amit 37 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{Tantargy|nev=A programozás alapjai II.|kredit=4|felev=2|kereszt=nincs|kiszh=5 db|vizsga=nincs|nagyzh=1 db|hf=szorgalmi hftest|szak=info|tad=https://www.vik.bme.hu/kepzes/targyak/VIIIA114|targyhonlap=http://infoc.iit.bme.hu/|levlista=prog2ATsch.bme.hu }}
{{Tantárgy
|nev=A programozás alapjai 2.
|tárgykód=VIIIAA03
|régitárgykód=VIIIAA00
|szak=info
|kredit=6 (régi: 7)
|felev=2
|kereszt=nincs
|tanszék=IIT
|labor=14 db
|kiszh=3 db
|vizsga=nincs
|nagyzh=2 db
|hf=1 nagyházi + szorgalmi
|tad=https://www.vik.bme.hu/kepzes/targyak/VIIIAA03
|targyhonlap=http://infocpp.iit.bme.hu/
|levlista=prog2{{kukac}}sch.bme.hu
}}
{{Egyértelműsítő|programozás alapjai|A programozás alapjai (egyértelműsítő lap)}}


= Követelmények =
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 gyakorlatain az előre meghirdetett ütemterv szerinti alkalmakkor, összesen 5 darab kis zárthelyit írunk.
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 gyakorlatokon a részvétel kötelező, ezt a gyakorlatvezetők ellenőrzik.
*    A félév végén nagy zárthelyit írunk.
*    A félév során hftest néven gyakorló feladatokat adunk ki. Az összes feladat helyes megoldásával 1 jeggyel lehet javítani a megszerzett (enélkül is legalább elégséges) jegyet.


A tárgy sikeres teljesítéseinek feltételei:
== Követelmények ==
: ''További részletek és aktuális információk a tárgyhonlapon: [https://infocpp.iit.bme.hu/node/171 infocpp.iit.bme.hu]''


*   A hallgató legfeljebb 4 gyakorlaton nem vett részt.
=== Előtanulmányi rend ===
*    A nagy zárthelyi pontszáma legalább 8.
* 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 3 legjobb kis zárthelyi pontösszege legalább 7.2.


= Segédanyagok =
=== A szorgalmi időszakban ===
* A min. elégséges '''félévvégi jegy''' feltételei:
** A '''laborok''' legalább 70%-án való részvétel. (max 4 hiányzás)
** A laborokon írt beugrókból, jporta ellenőrző feladatokból, illetve jportára leadott laborfeladatokból összegezve min. 22 pont szerzése.
*** 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.


[[Media:jegyzet1| megjelenítendő jegyzetnév]]
=== Félévvégi jegy ===
A félév végi pontszám az alábbiak összege:
* NZH1 (40 pont)
* NZH2 (40 pont)
* Két legjobb kisZH szummája (20 pont)
* Laborfeladatok (33 pont)
** Előfeladatok (11 pont)
** "Beugró" ellenőrző kérdések (11 pont)
** Sikeres labor feladatok (11 pont)
* HF pont (40 pont)
* Plusz pontok (20 pont)
** HF plusz pont (6 pont)
*** Részfeladatok időben leadása (1+1+2+2=6 pont)
** Szorgalmik (14 pont)


[https://wiki.test.sch.bme.hu/index.php?title=Speci%C3%A1lis:Felt%C3%B6lt%C3%A9s Feltöltés]
==== Ponthatárok ====
{{Jegykonvertálás
|1 = 0 - 85
|2 = 86 - 107
|3 = 108 - 129
|4 = 130 - 151
|5 = 152+
}}


Értelmes néven töltsétek fel, így: tantárgyrövidítése_fájltípus_dátum_csoport
==== iMSc pontok ====
*tantárgy rövidítése: [https://wiki.test.sch.bme.hu/index.php?title=TargynevAjanlas itt] nézzétek meg, de ált. amilyen néven levlistája is van a tárgynak
* '''Elérhető pontszám''': 30 pont
*fájltípus: ZH, vizsga, jegyzet, beugró..
* 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.
*dátum: értelemszerűen..pl:20100405
* Minden jeles érdemjegyet meghaladó pontot iMSc ponttá alakítunk, de az nem haladhatja meg a 30 pontot:  
*csoport: zh-hoz, vizsgához..stb..ahol van, ez is evidens
* iMSc pont = <math> min ( max ( P - 152, 0) , 30) </math>


== Videó ==
== Segédanyagok ==
(ha van fent, linkeljétek ki mindenképp)
* [https://infocpp.iit.bme.hu/tananyag infocpp] diasorok, laborfeladatok
http://video.bme.hu/


= KisZH-k, beugrók =
=== Előadások diái ===
* 2020:
** [[Media:Prog2 bevezeto ea.pdf | Beveztő előadás]]
** [[Media:Prog2_1_ea.pdf | 1. előadás - C++ kialakulás]]
** [[Media:Prog2 2 ea.pdf | 2. előadás - Névterek, memóriakezelés]]
** [[Media:Prog2 3 ea.pdf | 3. előadás - OO paradigmák, class, operátorok]]
** [[Media:Prog2 4 ea.pdf | 4. előadás - Konstruktor, dinamikus szerkezetek]]
** [[Media:Prog2 5 ea.pdf | 5. előadás - Objektummodell, öröklés, virtual]]
** [[Media:Prog2 6 ea.pdf | 6. előadás - Mutatókonverziók, heterogén kollekció]]
** [[Media:Prog2 7 ea.pdf | 7. előadás - Generikus szerkezet]]
** [[Media:Prog2 8 ea.pdf | 8. előadás - Bejárók, tervezési példa]]
** [[Media:Prog2 9 ea.pdf | 9. előadás - Többszörös öröklés, cast]]
** [[Media:Prog2 10 ea.pdf | 10. előadás - Hibakezelés, STL]]
** [[Media:Prog2 11 ea.pdf | 11. előadás - STL algoritmusok]]
** [[Media:Prog2 12 ea.pdf | 12. előadás - Backtrack algoritmusok]]
** [[Media:Prog2 13 ea.pdf | 13. előadás - OO tervezési megfontolások]]
** [[Media:Prog2 hfhez ea.pdf | Házi feladathoz előadás]]
** [[Media:Prog2 bonusz ea.pdf | Bónusz előadás]]


(ha van)
=== Jegyzet ===
 
* Dobra Gábor [http://cppftw.org/jegyzet/ Prog2 jegyzete]
= Házi =
* 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]]
(ha van)
 
= ZH =
 
* 2012
** [[Media:prog2_zh_20120517a_mo.pdf| prog2_zh_20120517a_mo.pdf]]  – [[infoC++]]
** [[Media:prog2_zh_20120510a_mo.pdf| prog2_zh_20120510a_mo.pdf]]  – [[infoC++]]
* 2011
** [[Media:prog2_zh_20110512a_mo.pdf| prog2_zh_20110512a_mo.pdf]]  – [[infoC++]]
** [[Media:prog2_zh_20110519a_mo.pdf| prog2_zh_20110519a_mo.pdf]] [[infoC++]]
* 2010
** [[Media:prog2_zh_20100513a_mo.pdf| prog2_zh_20100513a_mo.pdf]]  – [[infoC++]]
** [[Media:prog2_zh_20100515a_mo.pdf| prog2_zh_20100515a_mo.pdf]]  – [[infoC++]]
** [[Media:prog2_zh_20100520a_mo.pdf| prog2_zh_20100520a_mo.pdf]]  – [[infoC++]]
** [[Media:prog2_zh_20100525a_mo.pdf| prog2_zh_20100525a_mo.pdf]]  – [[infoC++]]
* 2009
** [[Media:prog2_zh_20090515a_mo.pdf| prog2_zh_20090515a_mo.pdf]]  – [[infoC++]]
** [[Media:prog2_zh_20090521a_p_mo.pdf| prog2_zh_20090521a_p_mo.pdf]]  – [[infoC++]]
* 2008
** [[Media:prog2_zh_20080514a_mo.pdf| prog2_zh_20080514a_mo.pdf]]  – [[infoC++]]
** [[Media:prog2_zh_20080522a_mo.pdf| prog2_zh_20080522a_mo.pdf]]  – [[infoC++]]
* 2007
** [[Media:prog2_zh_20070517b_mo.pdf| prog2_zh_20070517b_mo.pdf]]  – [[infoC++]]
* 2006
** [[Media:prog2_zh_20060518a_mo.pdf| prog2_zh_20060518a_mo.pdf]]  – [[infoC++]]
** [[Media:prog2_zh_20060525a_mo.pdf| prog2_zh_20060525a_mo.pdf]]  – [[infoC++]]
 
= Tippek =
 
(kinél érdemes vizsgázni, jó gyakvezek..stb)
 
= Gyakvezérek =
 
(általában a hivatalos tárgyhonlapon fel vannak tüntetve)
 
Kovács Ágoston - https://www.facebook.com/agoston.kovacs.94
 
..és a többi
 
= Verseny =
 
(ha van)
 
= Kedvcsináló =
 
(tárgy rövid leírása, mire jó, fun factek)
{{Idézet|idézet=Az a baj az interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak -e.|forrás=Petőfi Sándor}}
 
 
 
* [[TargynevAjanlas|Ajánlott rövidítés]]: prog2
* [[TargynevAngolul|A tárgy angol neve]]: Basics of Programming II
 
__TOC__
 
==Hasznos segédanyagok==


=== Á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]]
* [[ProgUnixon]]
* [[Prog2ShellScriptTutorial|ShellScriptTutorial]]
* [[Prog2ShellScriptTutorial|ShellScriptTutorial]]
98. sor: 108. sor:
* [http://www.cppreference.com/ C és C++ referencia oldal]
* [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/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.
* [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.
* [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.


===Szabadon elérhető C++ fejlesztőeszközök és fordítók===
=== Online hozzáférhető könyvek ===
* [http://www.tankonyvtar.hu/hu/tartalom/tkt/objektum-orientalt/adatok.html Objektum-orientált szoftverfejlesztés]
* [http://www.ms.sapientia.ro/~manyi/teaching/c++/cpp.pdf C++ leírás magyarul]
** A könyvből remekül át lehet ismételni a tanultakat.
** A programnyelv önálló megtanulására nem alkalmas, mivel előbb használ olyan fogalmakat, melyeket csak később vezet be.
* [http://www.icce.rug.nl/documents/cplusplus/ C++ Annotations]
* [http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html Thinking in C++]


* [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express Visual C++ Express 2010] &mdash; Windowsra
=== Szabadon elérhető C++ fejlesztőeszközök és fordítók ===
* [https://www.visualstudio.com/vs/ Visual Studio] &mdash; Windows-ra és Mac-re (Community bőven elég, de [https://e5.onthehub.com/WebStore/ProductsByMajorVersionList.aspx?ws=42a261b1-869b-e011-969d-0030487d8897 BME-VIK-es diákok kapnak Enterprise-hoz is license-t].)
* [https://www.jetbrains.com/clion/ CLion] &mdash; Crossplatform. Hátránya, hogy Java-ban írva, így nem árt neki egy kis memória. BME hallgatóknak [https://www.jetbrains.com/student/ ingyenes]!
* [http://msdn.microsoft.com/mobility/othertech/eVisualc/default.aspx eMbedded Visual C++] &mdash; Windows CE-re
* [http://msdn.microsoft.com/mobility/othertech/eVisualc/default.aspx eMbedded Visual C++] &mdash; Windows CE-re
* [http://gcc.gnu.org/ GCC] &mdash; sok platformra
* [http://gcc.gnu.org/ GCC] &mdash; sok platformra
110. sor: 132. sor:
* [http://www.codeblocks.org/ Code::Blocks] &mdash; sok platformra
* [http://www.codeblocks.org/ Code::Blocks] &mdash; sok platformra


===Online hozzáférhető könyvek===
== Házi ==
* 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.
** 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.
** 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 ==
* A [https://infocpp.iit.bme.hu/taxonomy/term/8 tárgyhonlapon] megtalálható az összes kisZH évre és csoportokra bontva, megoldásokkal.
* '''1. KZH kikérdező'''
**[[Prog2 1. KZH Igaz/Hamis kikérdező | Wiki kikérdező]]
 
== ZH-k ==
 
=== 1. ZH ===
* 2015
** [[Media:prog2_zh1_2015.pdf | ZH megoldásokkal]]
* 2016:
** [[Media:prog2_zh1_2016.pdf | ZH megoldásokkal]]
** [[Media:prog2_pzh1_2016.pdf | PZH megoldásokkal]]


* [http://www.ms.sapientia.ro/~manyi/teaching/c++/cpp.pdf C++ leírás magyarul - Tartalom:]
=== 2. ZH ===
** C++ újdonságai
* [[Prog2 2. ZH kikérdező]]
** Osztályok és objektumok
*2015
** Operátorok túlterhelése
** [[Media:prog2_zh2_2015.pdf | ZH megoldásokkal]]
** Származtatott osztályok
* 2016
** A standard könyvtár
** [[Media:prog2_zh2_2016.pdf | ZH megoldásokkal]]
** Tárolók
** [[Media:prog2_pzh2_2016.pdf | PZH megoldásokkal]]
** Iterátorok
 
** Sablonok
 
** Adatfolyamok
{{Rejtett
* [http://www.icce.rug.nl/documents/cplusplus/ C++ Annotations]
|mutatott='''Régi típusú ZH-k '''
* [http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html Thinking in C++]
|szöveg=
* [http://www.eet.bme.hu/publications/e_books/progr/cpp/node74.html Részletes C++ leírás magyarul]
* ''(csak 1 ZH volt félév közben)''
* 2006: [[Media:prog2_zh_20060518a_mo.pdf|A]] - [[Media:prog2_zh_20060525a_mo.pdf|B]]
* 2007: [[Media:prog2_zh_20070517b_mo.pdf|A]]
* 2008: [[Media:prog2_zh_20080514a_mo.pdf|A]] - [[Media:prog2_zh_20080522a_mo.pdf|B]]
* 2009: [[Media:prog2_zh_20090515a_mo.pdf|A]] - [[Media:prog2_zh_20090521a_p_mo.pdf|B]]
* 2010: [[Media:prog2_zh_20100513a_mo.pdf|A]] - [[Media:prog2_zh_20100515a_mo.pdf|B]] - [[Media:prog2_zh_20100520a_mo.pdf|C]] - [[Media:prog2_zh_20100525a_mo.pdf|D]]
* 2011: [[Media:prog2_zh_20110512a_mo.pdf|A]] - [[Media:prog2_zh_20110519a_mo.pdf|B]]
* 2012: [[Media:prog2_zh_20120517a_mo.pdf|A]] - [[Media:prog2_zh_20120510a_mo.pdf|B]]
* 2013: [[Media:Zh130523a_meg.pdf|A]] - [[Media:Zh130513a_meg.pdf|B]]
* 2014: [[Media:prog2_zh_2014_1.pdf|A]] - [[Media:prog2_zh_2014_2.pdf|B]]
}}


==ZH==
== Tippek ==
A programozás inkább egy gondolkodásmód, mint egy bemagolandó vagy megtanulandó anyag. Ha eddig még nem programoztál akkor nem fog könnyen menni, viszont folyamatos készüléssel jól fel lehet készülni. Nekem tetszett, mert végre egy olyan tárgy, ahol a héten leadott anyagot nem leülni és megtanulni kellett, hanem a heti anyagot inkább csak kipróbáltam otthon és játszottam vele, hiszen a programozást játékként is fel lehet fogni. Azt tanácsolom hogy találj ki magadnak valamilyen programot amit meg akarsz csinálni (én például a Vaterás eladásaimat kezelő programot választottam) és próbálkozz és játssz vele.
Ha ilyen szemlélettel programozol akkor nem szenvedés lesz, hanem inkább egy jó játék ahol a következő heti előadást várod, hogy délután mehess haza játszani = azaz belerakni a kis saját programodba az előadáson tanultakat.


===Tipikus ZH kérdések===
Rá lehet menni típuspéldákra gyakorlására és hasonló dolgokra, de nem éri meg. Miért nem? Leírtam ide saját tapasztalataimat: [[A programozás alapjai - Hogy tanuljunk meg programozni?|Hogy tanuljunk meg programozni?]].


* Írj egy generikus tároló osztályt mely tudja az alábbiakat:
--[[Szerkesztő:Ferrero|Szabó Csaba]] ([[Szerkesztővita:Ferrero|vita]]) 2012. december 16., 23:26 (CET)
** konstrukor, destruktor
** másoló konstruktor
** operator =
** getMinMax(bool isMin)
* Írjon tetszőleges generikus rendező algoritmust!
* Írjon algoritmus, amely transzponál egy generikus mátrixot!


-- [[NovakAron]] - 2006.01.14.
== Verseny ==
* A félév közben szokott lenni verseny, melynek eredménye nem számít bele az félév végi eredménybe. Részletesebben: [http://infocpp.iit.bme.hu/bmx]




[[Category:Infoalap]]
{{Lábléc - Mérnök informatikus alapszak 2022}}
{{Lábléc - Mérnök informatikus alapszak 2014}}

A lap jelenlegi, 2024. június 21., 14:15-kori változata

A programozás alapjai 2.
Tárgykód
VIIIAA03
Régi tárgykód
VIIIAA00
Általános infók
Szak
info
Kredit
6 (régi: 7)
Ajánlott félév
2
Keresztfélév
nincs
Tanszék
IIT
Követelmények
Labor
14 db
KisZH
3 db
NagyZH
2 db
Házi feladat
1 nagyházi + szorgalmi
Vizsga
nincs
Elérhetőségek
Levlista
prog2@sch.bme.hu
A programozás alapjai oldal több tárgyhoz is tartozhat. Ha nem vagy biztos a választásodban, nézd meg az egyértelműsítő lapot!


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.

Követelmények

További részletek és aktuális információk a tárgyhonlapon: infocpp.iit.bme.hu

Előtanulmányi rend

A szorgalmi időszakban

  • A min. elégséges félévvégi jegy feltételei:
    • A laborok legalább 70%-án való részvétel. (max 4 hiányzás)
    • A laborokon írt beugrókból, jporta ellenőrző feladatokból, illetve jportára leadott laborfeladatokból összegezve min. 22 pont szerzése.
      • 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.

Félévvégi jegy

A félév végi pontszám az alábbiak összege:

  • NZH1 (40 pont)
  • NZH2 (40 pont)
  • Két legjobb kisZH szummája (20 pont)
  • Laborfeladatok (33 pont)
    • Előfeladatok (11 pont)
    • "Beugró" ellenőrző kérdések (11 pont)
    • Sikeres labor feladatok (11 pont)
  • HF pont (40 pont)
  • Plusz pontok (20 pont)
    • HF plusz pont (6 pont)
      • Részfeladatok időben leadása (1+1+2+2=6 pont)
    • Szorgalmik (14 pont)

Ponthatárok

Pont Jegy
0 - 85 1
86 - 107 2
108 - 129 3
130 - 151 4
152+ 5

iMSc pontok

  • Elérhető pontszám: 30 pont
  • 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 =

Segédanyagok

Előadások diái

Jegyzet

Általános segédletek

Online hozzáférhető könyvek

Szabadon elérhető C++ fejlesztőeszközök és fordítók

Házi

  • 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.
    • 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.
    • 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

ZH-k

1. ZH

2. ZH


Régi típusú ZH-k
  • (csak 1 ZH volt félév közben)
  • 2006: A - B
  • 2007: A
  • 2008: A - B
  • 2009: A - B
  • 2010: A - B - C - D
  • 2011: A - B
  • 2012: A - B
  • 2013: A - B
  • 2014: A - B

Tippek

A programozás inkább egy gondolkodásmód, mint egy bemagolandó vagy megtanulandó anyag. Ha eddig még nem programoztál akkor nem fog könnyen menni, viszont folyamatos készüléssel jól fel lehet készülni. Nekem tetszett, mert végre egy olyan tárgy, ahol a héten leadott anyagot nem leülni és megtanulni kellett, hanem a heti anyagot inkább csak kipróbáltam otthon és játszottam vele, hiszen a programozást játékként is fel lehet fogni. Azt tanácsolom hogy találj ki magadnak valamilyen programot amit meg akarsz csinálni (én például a Vaterás eladásaimat kezelő programot választottam) és próbálkozz és játssz vele. Ha ilyen szemlélettel programozol akkor nem szenvedés lesz, hanem inkább egy jó játék ahol a következő heti előadást várod, hogy délután mehess haza játszani = azaz belerakni a kis saját programodba az előadáson tanultakat.

Rá lehet menni típuspéldákra gyakorlására és hasonló dolgokra, de nem éri meg. Miért nem? Leírtam ide saját tapasztalataimat: Hogy tanuljunk meg programozni?.

--Szabó Csaba (vita) 2012. december 16., 23:26 (CET)

Verseny

  • A félév közben szokott lenni verseny, melynek eredménye nem számít bele az félév végi eredménybe. Részletesebben: [1]


Bevezetők
1. félév
2. félév
3. félév
4. félév
5. félév
6. félév
7. félév


Bevezetők
1. félév
2. félév
3. félév
4. félév
5. félév
6. félév
7. félév