„A programozás alapjai II.” változatai közötti eltérés
a Kozaróczy Zsolt átnevezte a(z) A programozás alapjai II. (régi) lapot a következő névre: A programozás alapjai II. |
Nincs szerkesztési összefoglaló |
||
(46 közbenső módosítás, amit 21 másik szerkesztő végzett, nincs mutatva) | |||
1. sor: | 1. sor: | ||
{{Tantárgy | {{Tantárgy | ||
|nev=A programozás alapjai 2. | |nev=A programozás alapjai 2. | ||
| | |tárgykód=VIIIAA03 | ||
|régitárgykód=VIIIAA00 | |||
|szak=info | |szak=info | ||
|kredit=7 | |kredit=6 (régi: 7) | ||
|felev=2 | |felev=2 | ||
|kereszt=nincs | |kereszt=nincs | ||
|tanszék=IIT | |tanszék=IIT | ||
|kiszh= | |labor=14 db | ||
|kiszh=3 db | |||
|vizsga=nincs | |vizsga=nincs | ||
|nagyzh=2 db | |nagyzh=2 db | ||
|hf=1 nagyházi + szorgalmi | |hf=1 nagyházi + szorgalmi | ||
|tad=https://www.vik.bme.hu/kepzes/targyak/ | |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á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.]] | |||
=== Előtanulmányi rend === | |||
* 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 === | |||
* 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 ==== | ||
{{Jegykonvertálás | |||
|1 = 0 - 85 | |||
|2 = 86 - 107 | |||
|3 = 108 - 129 | |||
|4 = 130 - 151 | |||
|5 = 152+ | |||
}} | |||
=== | ==== 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 = <math> min ( max ( P - 152, 0) , 30) </math> | |||
== Segédanyagok == | == Segédanyagok == | ||
* [https://infocpp.iit.bme.hu/tananyag infocpp] diasorok, laborfeladatok | |||
=== 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]] | |||
=== 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] | * [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]] | ||
49. sor: | 111. sor: | ||
* [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. | |||
=== | === 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++] | |||
* [ | === Szabadon elérhető C++ fejlesztőeszközök és fordítók === | ||
* [https://www.visualstudio.com/vs/ Visual Studio] — 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] — 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++] — Windows CE-re | * [http://msdn.microsoft.com/mobility/othertech/eVisualc/default.aspx eMbedded Visual C++] — Windows CE-re | ||
* [http://gcc.gnu.org/ GCC] — sok platformra | * [http://gcc.gnu.org/ GCC] — sok platformra | ||
59. sor: | 132. sor: | ||
* [http://www.codeblocks.org/ Code::Blocks] — sok platformra | * [http://www.codeblocks.org/ Code::Blocks] — sok platformra | ||
== | == 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]] | |||
== | === 2. ZH === | ||
* [[Prog2 2. ZH kikérdező]] | |||
*2015 | |||
** [[Media:prog2_zh2_2015.pdf | ZH megoldásokkal]] | |||
* 2016 | |||
** [[Media:prog2_zh2_2016.pdf | ZH megoldásokkal]] | |||
** [[Media:prog2_pzh2_2016.pdf | PZH megoldásokkal]] | |||
= | {{Rejtett | ||
* | |mutatott='''Régi típusú ZH-k ''' | ||
* | |szöveg= | ||
* | * ''(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]] | |||
* 2010 | * 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]] | |||
}} | |||
* | |||
* | |||
* | |||
* | |||
== Tippek == | == Tippek == | ||
118. sor: | 185. sor: | ||
--[[Szerkesztő:Ferrero|Szabó Csaba]] ([[Szerkesztővita:Ferrero|vita]]) 2012. december 16., 23:26 (CET) | --[[Szerkesztő:Ferrero|Szabó Csaba]] ([[Szerkesztővita:Ferrero|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: [http://infocpp.iit.bme.hu/bmx] | |||
* | |||
{{ | {{Lábléc - Mérnök informatikus alapszak 2022}} | ||
{{Lábléc - Mérnök informatikus alapszak 2014}} |