„A programozás alapjai II.” változatai közötti eltérés
a Jegyzet feltöltése |
a Új kikérdezőhöz link |
||
139. sor: | 139. 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]] |
A lap 2021. május 15., 19:38-kori változata
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
Előtanulmányi rend
- Az új tanterv A programozás alapjai 1. tárgyából kredit megszerzése, vagy a régi tanterv 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.
- 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
Pontszám = NZH1 (40 pont) + NZH2 (40 pont) + legjobb 2 kisZH (20 pont) + pluszpontok (14 pont)
- Pluszpont kétféleképpen szerezhető:
- 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.
- 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.
- Ponthatárok:
Pont Jegy 0 - 47 1 48 - 60 2 61 - 73 3 74 - 86 4 87 - 5
Segédanyagok
Előadások diái
- 2020:
- Beveztő előadás
- 1. előadás - C++ kialakulás
- 2. előadás - Névterek, memóriakezelés
- 3. előadás - OO paradigmák, class, operátorok
- 4. előadás - Konstruktor, dinamikus szerkezetek
- 5. előadás - Objektummodell, öröklés, virtual
- 6. előadás - Mutatókonverziók, heterogén kollekció
- 7. előadás - Generikus szerkezet
- 8. előadás - Bejárók, tervezési példa
- 9. előadás - Többszörös öröklés, cast
- 10. előadás - Hibakezelés, STL
- 11. előadás - STL algoritmusok
- 12. előadás - Backtrack algoritmusok
- 13. előadás - OO tervezési megfontolások
- Házi feladathoz előadás
- Bónusz előadás
Jegyzet
- Dobra Gábor Prog2 jegyzete
- Siroki Péter HaT-os öregtag által készített C++ jegyzet: pdf - 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.
- Tömör Prog2 jegyzet - 2020
Általános segédletek
- Czirkos Zoltán honlapja
- InfoC++2 nem hivatalos, de hasznos honlap
- ProgUnixon
- ShellScriptTutorial
- A vi szövegszerkesztőről
- C és C++ referencia oldal
- 2 oldalas C++ összefoglaló
- 2 oldalas STL összefoglaló
- Mire jó a konstans referencia? Ha végigolvasod megvilágosodsz.
- 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.
- c++ Villanyos c++ példatár.
- Putty ural2 eléréshez.
- TortoiseSVN laborok anyagainak letöltéséhez.
Online hozzáférhető könyvek
- Objektum-orientált szoftverfejlesztés
- 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.
- C++ Annotations
- Thinking in C++
Szabadon elérhető C++ fejlesztőeszközök és fordítók
- Visual Studio — Windows-ra és Mac-re (Community bőven elég, de BME-VIK-es diákok kapnak Enterprise-hoz is license-t.)
- CLion — Crossplatform. Hátránya, hogy Java-ban írva, így nem árt neki egy kis memória. BME hallgatóknak ingyenes!
- eMbedded Visual C++ — Windows CE-re
- GCC — sok platformra
- Intel C++ Compiler — Linuxra (létezik Windowsra is)
- Eclipse CDT plugin — sok platformra
- 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. (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. (1 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. (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. (2 pont)
KisZH
- A tárgyhonlapon megtalálható az összes kisZH évre és csoportokra bontva, megoldásokkal.
- 1. KZH kikérdező
ZH-k
1. ZH
- 2015
- 2016:
2. 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.
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 |