Programozás 2

A tantárgy angol neve: Programming 2

Adatlap utolsó módosítása: 2017. június 21.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

BME Természettudományi Kar

Fizikus alapképzés (BSc) Szak
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIEEA026 2 2/0/2/f 4  
3. A tantárgyfelelős személy és tanszék Dr. Pohl László,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Kohári Zsolt

tudományos segédmts

Elektronikus Eszközök T.

5. A tantárgy az alábbi témakörök ismeretére épít

A C programozási nyelv ismerete.

6. Előtanulmányi rend
Ajánlott:

Kötelező:

vieea024 Programozás c. tárgyból kreditpont megszerzése.

Viiia114 A programozás alapjai 2, Viaua116 A programozás alapjai 2, VIIIAA00 A programozás alapjai 2, VIAUAA00 tárgyakból megszerzett kredit kizárja a tárgyfelvételt.

7. A tantárgy célkitűzése

A tárgy alapvető célja, hogy alapozó tárgyként folytassa a számítógépes problémamegoldás módszereinek és alapvető eszközeinek előző félévben megkezdett megismertetését, hasonlóan gyakorlatias felfogásban, hogy azt a hallgatók további tanulmányaik során képesek legyenek hatékonyan alkalmazni. Ezen félév alapvető célkitűzése az objektum-orientált programozás alapvető elveinek, és gyakorlati alkalmazásának elsajátítása, amit a C++ nyelv megismertetésével ér el, kifejezetten a fizikus hallgatók igényeihez szabva. A laborok anyaga folyamatosan követi az előadások tematikáját, azok megértését, elmélyítését támogatja.

8. A tantárgy részletes tematikája

1. hét:  Áttekintés, C ismétlés, függvényhívás menete, const, make, profiling célja és lehetőségei.

2. hét: Számábrázolási kérdések szimulációkban, pontatlanság, instabilitás, inf, NaN, különböző valós típusok, illeszkedő függvényváltozatok.

3. hét: Függvény overload, alapértelmezett (default) argumentumok, makrók kiváltása inline függvénnyel, referenciatípus, dinamikus memóriakezelés: new, new[], delete, delete[].

4. hét: Objektum-orientált programozás alapfogalmai, elvei, objektum, osztály, tagváltozók és tagfüggvények, a this pointer, egységbezárás, láthatóság és adatrejtés (komplex szám osztály).

5. hét: Konstruktorok és destruktor, kivételkezelés, operátor overload tagfüggvénnyel és globális függvénnyel (racionális szám osztály).

6. hét: Dinamikus adattaggal rendelkező osztályok, másoló konstruktor, értékadó operátor, destruktor. (vektor és mátrix osztály)

7. hét: Tagváltozók inicializálása, konstans és statikus tagok, névterek, C++-os I/O, >> és << operátorok overload-ja.

8. hét: Standard Template Library (STL) vector használata, alkalmazási példák, vector és egyszerű C tömb viselkedése mint paraméter/visszatérési érték.

9. hét: STL string, vector algoritmusok (find, sort, transform, accumulate ...), további alkalmazási példák.

10. hét: Függvény- és osztálysablonok.

11. hét: Öröklés I. Célok, származtatott osztály, alaposztály, láthatóság, konstruktorok/ destruktorok.

12. hét: Öröklés II. Virtuális függvények, absztrakt osztályok, virtuális destruktor, heterogén kollekció.

13. hét: Kitekintés, a C++11 néhány érdekesebb eleme.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

A tárgy heti kétórás előadásból és heti kétórás számítógépes laboratóriumi gyakorlatból áll. A laborgyakorlat célja az előadáson elmondottak elmélyítése, gyakorlati kipróbálása, objektumorientált programozási szemlélet kialakítása.

10. Követelmények

A tárgyból heti 1 alkalommal 2 órás előadást és 2 órás laborgyakorlatokat tartunk. A laborgyakorlatokon a megjelenés kötelező, a részvételt minden alkalommal ellenőrizzük. A laborgyakorlatokon a felkészültséget ún. beugróval ellenőrizhetjük, amelynek anyaga az adott labor előadáson már bemutatott anyagával kapcsolatos. A beugró lehet teszt, házi feladat vagy órai feladat is. Az elégtelen felkészültség mulasztott laboralkalomnak számít.

A félév során a laborgyakorlatok alkalmával 5 kis zárthelyit íratunk “röp-zh” jelleggel. Ezeknek a pótlására nincs lehetőség, az elmulasztott kis zh-k eredményét 0-nak tekintjük. A három legeredményesebb kiszh átlaga számít. A félév során a dékáni hivatal ütemezése szerinti időpontban egy nagy zárthelyi dolgozatot íratunk. A nagy zárthelyi dolgozat megírása kötelező. A nagy zárthelyi dolgozat megírására 1 pótlási lehetőséget biztosítunk a pótlási időszak végéig. Főszabály szerint további pótlási lehetőség nincs.

A félév 6. hetében nagy házi feladat kiadására kerül sor a laborgyakorlatok alkalmával. A feladat beadása a szorgalmi időszak utolsó hetében, a laborgyakorlaton esedékes. Késedelmes feladatbeadás a pótlási időszak szerdáig lehetséges különeljárási díj megfizetése mellett.

 

A félév elfogadásának és a félév végi jegy megadásának a feltétele:

Aláírást az kaphat,

·    aki a laborgyakorlatokról nem hiányzott többet, mint a TVSZ-ben meghatározott mérték (30%),

·    akinek a 3 legjobb kis zárthelyi dolgozat eredményéből számított átlaga legalább elégséges,

·    aki legalább elégséges osztályzatot szerzett a nagy zárthelyi dolgozatával, és

·       aki a szorgalmi időszakon belül beadta a nagy házi feladatát és arra legalább elégséges osztályzatot kapott.

 

Félévközi jegyet az szerezhet, aki aláírást is szerzett. A félévközi jegy mind a kis zh-k, mind a nagy zh, mind a nagy házi feladat eredményétől függ, a következők szerint:

 

·    nagy zh eredménye:                                 35%    súllyal,

·    a 3 legjobb kis zh átlaga:                         35%    súllyal,

·       a nagy házi feladatra kapott osztályzat: 30%    súllyal.

 

 

Az így kialakuló osztályzatot a gyakorlatvezetők a hallgatóknak a laborfoglalkozásokon tanúsított aktivitása alapján, saját belátásuk szerint +/– 0.5 jeggyel módosíthatják. 

11. Pótlási lehetőségek

A nagy zárthelyi dolgozat megírására 1 pótlási lehetőséget biztosítunk a pótlási időszak végéig. Főszabály szerint további pótlási lehetőség nincs. Laborgyakorlaton való részvétel valamint a kis ZH-k pótlására nincs lehetőség.

 

Házi feladat késedelmes beadása a pótlási időszak szerdáig lehetséges különeljárási díj megfizetése mellett. A pótlási héten már csak olyan feladatok és/vagy dokumentációk pótolhatók, melyek hiányosság vagy működési hiba miatt kerültek elutasításra. A pótlások általános szabályai tekintetében az aktuális TVSZ az irányadó.

12. Konzultációs lehetőségek

Konzultáció e-mailen, illetve a hallgatók igénye szerint személyesen, az előadóval, gyakorlatvezetővel egyeztetve.

13. Jegyzet, tankönyv, felhasználható irodalom

Jegyzet (nyomtatott):

  •   Benedek Zoltán, Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven, SZAK kiadó, 2007

Elektronikusan elérhető segédanyag:

  • Kondorosi Károly, Szirmay-Kalos László, László Zoltán, Objektum orientált szoftverfejlesztés, 6. fejezet (http://www.tankonyvtar.hu/hu/tartalom/tkt/objektum-orientalt/adatok.html) 

Ajánlott irodalom haladóknak:

  • B. Stroustrup: The C++ programming language Addison-Wesley, 3rd Edition, 2000 /Bjarne Stroustrup: A C++ programozási nyelv, Kiskapu, 2001
  • Andrei Alexandrescu, Herb Sutter: C++ kódolási szabályok, Kiskapu, 2005
  • Scott Meyers: Hatékony C++, 50 jó tanács programjaink és programterveink javítására, SCOLAR KFT, 2003
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

Kontakt óra

56

Készülés előadásokra

7

Készülés gyakorlatokra

0

Készülés laborra

14

Készülés zárthelyire

16

Házi feladat elkészítése

27

Önálló tananyag-feldolgozás

0

Vizsgafelkészülés

0

Összesen

120

15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

Kohári Zsolt

Tudományos segédmunkatárs

Elektronikus Eszközök T.

Dr. Czirkos Zoltán

egyetemi adjunktus

Elektronikus Eszközök T.

Dr. Pohl László

egyetemi adjunktus

Elektronikus Eszközök T.