„C11 és C++11 programozás” változatai közötti eltérés
Nincs szerkesztési összefoglaló |
|||
(10 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva) | |||
11. sor: | 11. sor: | ||
| labor = van | | labor = van | ||
| kiszh = nincs | | kiszh = nincs | ||
| nagyzh = | | nagyzh = nincs | ||
| hf = van ( | | hf = van (2 db) | ||
| vizsga = | | vizsga = van | ||
| levlista = | | levlista = | ||
| tad = https://portal.vik.bme.hu/kepzes/targyak/VIEEAV01/ | | tad = https://portal.vik.bme.hu/kepzes/targyak/VIEEAV01/ | ||
25. sor: | 25. sor: | ||
=== Előtanulmányi rend === | === Előtanulmányi rend === | ||
A programozás alapjai 2 tárgyból kredit megszerzése szükséges a tárgy felvételéhez. - '''Alapos ismerete szükséges a tárgy magabiztos teljesítéséhez!''' | |||
=== A szorgalmi időszakban === | === A szorgalmi időszakban === | ||
32. sor: | 32. sor: | ||
**A '''laboralkalmak''' legalább 70%-án való részvétel. - a laborfeladat utólagos elküldésével és/vagy tárgyfelelőssel való megbeszélés után túl lehet lógni a 70%-on, de alapos indok kell | **A '''laboralkalmak''' legalább 70%-án való részvétel. - a laborfeladat utólagos elküldésével és/vagy tárgyfelelőssel való megbeszélés után túl lehet lógni a 70%-on, de alapos indok kell | ||
**'''ZH''' sikeres (min. 50%) megírása. | **'''ZH''' sikeres (min. 50%) megírása. | ||
*'''Megajánlott jegy:''' gyakorlatilag a ZH-ra megajánlott vizsgajegyet kapsz. | **'''2 db házi''' sikeres elkészítése. | ||
*'''Megajánlott jegy:''' gyakorlatilag a ZH-ra (PZH-ra, PPZH-ra) megajánlott vizsgajegyet kapsz. | |||
*'''Pótlási lehetőségek:''' | *'''Pótlási lehetőségek:''' | ||
**A ZH-t utolsó héten lehet pótolni és van egy pót-pótlási lehetőség póthéten. | **A ZH-t utolsó héten lehet pótolni és van egy pót-pótlási lehetőség póthéten. | ||
===A vizsgaidőszakban === | ===A vizsgaidőszakban === | ||
*'''Vizsga''': írásbeli. | *'''Vizsga''': írásbeli. Tematikája megegyezik a ZH-val. | ||
===Félévvégi jegy=== | ===Félévvégi jegy=== | ||
59. sor: | 59. sor: | ||
|} | |} | ||
==Tematika== | ==Tematika== | ||
154. sor: | 116. sor: | ||
== Segédanyagok == | == Segédanyagok == | ||
A tárgyhonlapon elérhető részletes jegyzet. Ennek felépítése a prog1-es InfoC oldallal megegyező, a jegyzet mértéke is azonos. A tárgyhonlap megtekintése bejelentkezéshez kötött, de ha nem vetted fel a tárgyat, próbáld meg elkérni a tárgyfelelőstől az anyagot. | |||
==Számonkérések== | ==Számonkérések== | ||
174. sor: | 134. sor: | ||
=== Kis Házi === | === Kis Házi === | ||
Az előadó által meghatározott feladatot kell teljesíteni. (pl. írj egy std::shared_ptr implementációt) Ezt kiegészítve extra feladatokkal (melyeket szintén az előadó határoz meg), szorgalmi pontokat kapsz. Vigyázz! Nagyon pontosan kell teljesítened a követelményeket, különben az előadó nem fogadja el és javítás után újra be kell adnod amíg nem fogadja el. | Az előadó által meghatározott feladatot kell teljesíteni. (pl. írj egy std::shared_ptr implementációt, készíts okos stringet referenciaszámlálással) Ezt kiegészítve extra feladatokkal (melyeket szintén az előadó határoz meg), szorgalmi pontokat kapsz. Vigyázz! Nagyon pontosan kell teljesítened a követelményeket, különben az előadó nem fogadja el és javítás után újra be kell adnod amíg nem fogadja el. | ||
=== Nagy Házi === | === Nagy Házi === | ||
A második házira nem sok megkötés van. Egy listából lehet válogatni, de egyeztetés után egyéni feladatot is csinálhatsz. A lényeg, hogy használd a tananyagban lévő újításokat, azok felhasználásával készíts egy kis projektet. | |||
== Linkek == | == Linkek == | ||
*[http://www.cplusplus.com/reference/ C/C++ referencia] - ha nem lenne elektronikus, a félév alatt rojtosra lenne lapozva | |||
[http://www.cplusplus.com/reference/ C/C++ referencia] - ha nem lenne elektronikus, a félév alatt rojtosra lenne lapozva | *[https://www.google.hu Google] - <nowiki>"C++ <probléma kulcsszavai>" --> Stack Overflow találatok</nowiki> | ||
[https://www.google.hu Google] - <nowiki>"C++ <probléma kulcsszavai>" --> Stack Overflow</nowiki> | *Olvasásra: [http://www.stroustrup.com/4th.html The C++ Programming Language (4th Edition)] | ||
Olvasásra: [http://www.stroustrup.com/4th.html The C++ Programming Language (4th Edition)] | |||
== Tippek == | == Tippek == | ||
196. sor: | 154. sor: | ||
=== Labor === | === Labor === | ||
Számítógép laborban leültök, csináljátok a feladatsort | Számítógép laborban leültök, csináljátok a feladatsort. Óra elején jelenléti ív megy körbe. Ha elkésel, még aláírhatod. A feladatsort megoldani nem kötelező, de mivel nincs nagyon alternatíva ezért jobbára mindenki ezt csinálja. Ha kész lennél vele, előbb elmehetsz, bár ez leginkább lehetetlen. | ||
=== Szorgalmi feladatok === | === Szorgalmi feladatok === | ||
Év közben minden héten | Év közben minden héten 1 vagy 2 szorgalmi feladat is befuthat az infoc oldalra gyanúsan hasonlító felületre. Itt leginkább meglévő STL függvényeket kell implementálni, valamilyen trükköt kell alkalmazni, a metaprogramming témakör után pedig egyszerűen csak [https://monoinfinito.wordpress.com/series/introduction-to-c-template-metaprogramming/ elszabadul a pokol]. A szorgalmikra nehézségtől függetlenül + fél pont jár. Az összes szorgalmi megoldásával akár 2 jeggyel is jobbat szerezhetsz. | ||
==Vélemények== | |||
* Nem egy nehéz tárgy, ha már van jártasságod a C++-ban, és érdekel is a téma. Az anyag érthető, a laborfeladatok nem nehezek. A ZH is könnyen kimaxolható. Ugyanakkor semmiképp nem ingyenkredit, heti készülést és gyakorlást igényel. A megszerzett tudás nagyon hasznos, számtalan dolog jóval egyszerűbb, mint a prog2-ből megtanult őskori technikák, ha a későbbiekben akarsz C++-szal foglalkozni, mindenképpen érdemes megtanulnod az újdonságokat. És Czirkos Zoltán tartja, kell más indok? [[Szerkesztő:Nagy Marcell|Nagy Marcell]] ([[Szerkesztővita:Nagy Marcell|vita]]) 2017. július 12., 15:40 (UTC) | |||
[[Kategória:Valaszthato]] | [[Kategória:Valaszthato]] |
A lap jelenlegi, 2018. szeptember 4., 19:23-kori változata
A tárgy a C és C++ nyelv elmúlt 15-20 év alatt bekövetkezett változásait, újdonságait mutatja be, példátlanul alapos módon.
Követelmények
Előtanulmányi rend
A programozás alapjai 2 tárgyból kredit megszerzése szükséges a tárgy felvételéhez. - Alapos ismerete szükséges a tárgy magabiztos teljesítéséhez!
A szorgalmi időszakban
- Az aláírás feltételei:
- A laboralkalmak legalább 70%-án való részvétel. - a laborfeladat utólagos elküldésével és/vagy tárgyfelelőssel való megbeszélés után túl lehet lógni a 70%-on, de alapos indok kell
- ZH sikeres (min. 50%) megírása.
- 2 db házi sikeres elkészítése.
- Megajánlott jegy: gyakorlatilag a ZH-ra (PZH-ra, PPZH-ra) megajánlott vizsgajegyet kapsz.
- Pótlási lehetőségek:
- A ZH-t utolsó héten lehet pótolni és van egy pót-pótlási lehetőség póthéten.
A vizsgaidőszakban
- Vizsga: írásbeli. Tematikája megegyezik a ZH-val.
Félévvégi jegy
- A jegyet a ZH pontszámára és a szorgalmi pontokra kapod a következő módon:
- Ponthatárok:
P Jegy 0 - 19 1 20 - 24 2 25 - 29 3 30 - 34 4 35 - 5
Tematika
Részletes változat, hogy tudd, miről lesz szó és eszerint vedd fel a tárgyat - vagy sem.
- Bevezető és C99 nyelvi elemek
- Típusok és osztályok
- C99 jelölt inicializáló adattagok és összetett típusok literálisai
- A C99 változó méretű tömbök (variable length array, VLA)
- A C99 restrict kulcsszó
- Objektumok memóriaképe
- Öröklés C-ben
- A virtuális függvények
- Adattag pointerek
- Perzisztencia
- Iterálás az adattagokon
- Reflektivitás C++-ban
- Osztályhierarchiák C++11-ben
- Kifejezések, konstansok, változó
- Típusok használata
- RAII = Resource Acquisition is Initialization
- A koordinátarendszerek
- Változók élettartama
- Szabad és kötött változók
- A funarg problémák
- Érték és pointer szemantika, okos pointerek
- Tároló osztályok
- Hányféle new operátor van?
- Az std::vector megvalósítása
- Az iterátorok és az auto kulcsszó, „range-based for” ciklus
- std::initializer_list
- Jobbérték referenciák
- A sok felesleges másolás problémája, tulajdonos szemantika problémája
- Balértékek és jobbértékek (lvalues and rvalues), mozgató konstruktorok
- Az std::move() függvény használata
- Kivételek
- A throw/catch vezérlési szerkezet
- A konstruktordelegálás szerepe a kivételkezelésben, alap, erős, és noexcept garanciák
- Sablon metaprogramozás
- Sablonok tárolóknál és algoritmusoknál, típusinformációs osztályok használata
- SFINAE
- Paraméterlisták és -továbbítás
- C++11 változó hosszúságú sablonparaméterlista
- A C++11 új levezetési és összevonási szabályai
- Az std::move() és az std::forward() függvények
- Lambda függvény
- Függvények manipulációja: std::bind és std::ref
- Lambda kifejezések, funarg problémák: a [] zárójelpár szerepe
- std::function
- Többszálúság
- thread, mutex és lock_guard osztályok közös használata
- A holtpont, atomi típusok
- std::condition_variable, std::async és std::future
- Nyelvi elemzők (alkalmi előadás)
Segédanyagok
A tárgyhonlapon elérhető részletes jegyzet. Ennek felépítése a prog1-es InfoC oldallal megegyező, a jegyzet mértéke is azonos. A tárgyhonlap megtekintése bejelentkezéshez kötött, de ha nem vetted fel a tárgyat, próbáld meg elkérni a tárgyfelelőstől az anyagot.
Számonkérések
Zárthelyi
Körülbelül ilyen struktúrával kell számolni:
- Első rész
- Válaszolj röviden
- Alkalmazd a C++11-ben tanult nyelvi elemeket (azaz írj át modernné egy pár soros C++98 kódot)
- Igaz-Hamis
- Második rész
- 2-3db fél A4-es oldalon átlagos betűkkel lekódolható program. pl. implementálni kell modern nyelvi eszközökkel egy tárolót, vagy fel kell tölteni megfelelő konstruktorokkal és másoló operátorral egy osztályt.
- Lehet választani a két utolsó feladat közül. Ha mindkettőt megírod mindkettőre kaphatsz pontot.
Kis Házi
Az előadó által meghatározott feladatot kell teljesíteni. (pl. írj egy std::shared_ptr implementációt, készíts okos stringet referenciaszámlálással) Ezt kiegészítve extra feladatokkal (melyeket szintén az előadó határoz meg), szorgalmi pontokat kapsz. Vigyázz! Nagyon pontosan kell teljesítened a követelményeket, különben az előadó nem fogadja el és javítás után újra be kell adnod amíg nem fogadja el.
Nagy Házi
A második házira nem sok megkötés van. Egy listából lehet válogatni, de egyeztetés után egyéni feladatot is csinálhatsz. A lényeg, hogy használd a tananyagban lévő újításokat, azok felhasználásával készíts egy kis projektet.
Linkek
- C/C++ referencia - ha nem lenne elektronikus, a félév alatt rojtosra lenne lapozva
- Google - "C++ <probléma kulcsszavai>" --> Stack Overflow találatok
- Olvasásra: The C++ Programming Language (4th Edition)
Tippek
Előadás
Egy előadáson kb. 30-an vagytok. Búg a projektor, az előadó előad, programozik a kivetítőn, rajzol a táblára. Barátságos a légkör, mindenki azt kérdez amit akar. És még jelenlét sincs. Megéri bemenni, de a tárgyoldal részletessége miatt szükség esetén akár teljesen ki lehet hagyni.
Labor
Számítógép laborban leültök, csináljátok a feladatsort. Óra elején jelenléti ív megy körbe. Ha elkésel, még aláírhatod. A feladatsort megoldani nem kötelező, de mivel nincs nagyon alternatíva ezért jobbára mindenki ezt csinálja. Ha kész lennél vele, előbb elmehetsz, bár ez leginkább lehetetlen.
Szorgalmi feladatok
Év közben minden héten 1 vagy 2 szorgalmi feladat is befuthat az infoc oldalra gyanúsan hasonlító felületre. Itt leginkább meglévő STL függvényeket kell implementálni, valamilyen trükköt kell alkalmazni, a metaprogramming témakör után pedig egyszerűen csak elszabadul a pokol. A szorgalmikra nehézségtől függetlenül + fél pont jár. Az összes szorgalmi megoldásával akár 2 jeggyel is jobbat szerezhetsz.
Vélemények
- Nem egy nehéz tárgy, ha már van jártasságod a C++-ban, és érdekel is a téma. Az anyag érthető, a laborfeladatok nem nehezek. A ZH is könnyen kimaxolható. Ugyanakkor semmiképp nem ingyenkredit, heti készülést és gyakorlást igényel. A megszerzett tudás nagyon hasznos, számtalan dolog jóval egyszerűbb, mint a prog2-ből megtanult őskori technikák, ha a későbbiekben akarsz C++-szal foglalkozni, mindenképpen érdemes megtanulnod az újdonságokat. És Czirkos Zoltán tartja, kell más indok? Nagy Marcell (vita) 2017. július 12., 15:40 (UTC)