A programozás alapjai 2.

A tantárgy angol neve: Basics of Programming 2.

Adatlap utolsó módosítása: 2006. július 1.

Tantárgy lejárati dátuma: 2007. január 31.

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

Mérnök-informatikus Szak

első ciklus

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIEEA112 2 2/2/0/f 4 2/2
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Dr. Szeberényi Imre

egyetemi docens

IIT

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
Kötelező:
TárgyEredmény( "BMEVIEEA100" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIEE1239" , "jegy" , _ ) >= 2

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

A tárgyat csak azok vehetik fel, akik korábban a következő tárgyakat hallgatták:

VIEEA100 Programozás alapjai 1 c. tárgyból kredit pont megszerzése

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 olyan szinten, 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, hogy további gyakorlatokkal mélyítse a C programozási nyelv ismeretét, megismertesse a nagyméretű programozási feladatok megoldásának lépéseit, és bevezessen az objektum-orientált programozásba. Célkitűzését a tárgy az előző félévben megszerzett C nyelvi tudásra alapozva, a C++ nyelv megismertetésével éri el. A gyakorlatok anyaga folyamatosan követi az előadások tematikáját, azok mélyebb megértését teszi lehetővé.

8. A tantárgy részletes tematikája
  • C++ nyelv származtatása a C-ből
    • Makró (inline), konstans megvalósítás, típusértékű struct, enum; prototípusok, default argumentumok és függvény overload.
    • Memória allokáció, new, delete, new_handler; referencia típus, függvény paraméterek és visszatérési érték, cin, cout, cerr objektumok; adatok láthatóság és érvényessége.
  • Objektum-orientált programozás alapjai a C++ által
    • Objektum-orientált programozás alapfogalmai, elvei, objektum fogalma. Osztály, fogalma, egységbezárás, védelem és információtakarás.
    • Tagfüggvények típusai, védelem enyhítése, friend mechanizmus. Konstruktor, destruktor, adatok (objektumok) inicializálása, this pointer használata.
    • Operátorok értelmezésének kiterjesztése: operátor overload fogalma. Dinamikusan allokált mezővel rendelkező objektumok értékadása és inicializásása, másoló konstruktor.
    • Operátorok értelmezésének kiterjesztése tagfüggvénnyel és friend mechanizmussal. Referencia típussal visszatérő függvény mint balérték (index operátor).
    • Az öröklés szerepe az objektumorientált programozásban. Öröklés, származtatott osztály, alaposztály. Védelem öröklés alatt. Virtuális függvények, fordítási és késői összerendelés, inicializálás; többszörös öröklés. Virtuális alaposztály. Objektumok mint más objektumok attribútumai. Objektum tömbök.
    • Generikus adatszerkezetek jelentősége. Dinamikus adatstruktúrák, generikus osztályok.
    • Az STL és fontosabb osztályai
  • Alapvető operációs rendszer ismeretek és fejlesztést támogató eszközök
9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

(előadás, gyakorlat, laboratórium):

A tárgyból heti 1 alkalommal 2 órás előadást tartunk a teljes évfolyamnak és heti 2 óra tantermi gyakorlatot tartunk 20-30 fős hallgatói csoportok (tanulókörök) számára. Az előadáshoz és a tantermi gyakorlatokhoz a Szoftver laboratórium 2 című tárgy laborfoglalkozásai szorosan csatlakoznak. Jelen tárgy keretén belül az elméleti ismeretek kerülnek előadásra.

10. Követelmények

a. A szorgalmi időszakban:

A tárgyból hetente 2 óra előadást és 2 óra tantermi gyakorlatot tartunk az órarend szerinti helyeken és időben. A szorgalmi időszak alatt 1 alkalommal az évfolyam terhelési táblázata szerinti időpontban nagy zárthelyi dolgozatot íratunk.

A nagy zárthelyi dolgozaton túl a félév során legalább 3 ellenőrző dolgozat megíratására is sor kerül. Az ellenőrző dolgozatokból a 3 legeredményesebb eredményének az átlagát képezzük. Ha valaki 3-nál kevesebb ellenőrző dolgozatot írt, akkor a meg nem írt dolgozatok eredményét 0-nak tekintjük.

A felkészülést egyéni szorgalmi feladatok is segítik, melyek megoldása nem kötelező. A határidőre és sikeresen megoldott szorgalmi feladatokkal egy-egy extra pont szerezhető, amelyeket a félév végi jegy kialakításánál veszünk figyelembe.

A félév végi jegy megszerzésének feltétele legalább elégséges (pót)zárthelyi, legalább elégséges ellenőrző dolgozat átlag, valamint a gyakorlatokon való részvétel. A hiányzások mértékét a TVSz 13.§ (8) rögzíti.

A félév végi jegy a nagy zárthelyi osztályzatának és a 3 legjobb ellenőrző dolgozat átlagának súlyozott átlaga. A nagy zárthelyi eredményét 2-szeres súllyal, az ellenőrző dolgozatok átlagát pedig 1-szeres súllyal vesszük figyelembe. Az így kialakult értéket a gyakorlatvezető +/-1 jeggyel korrigálhatja figyelembe véve a szorgalmi feladatokkal szerzett extra pontokat és a gyakorlatokon nyújtott folyamatos teljesítményt.

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

Elégtelen nagy zárthelyi egyetlen alkalommal pótolható.

Elmaradt ellenőrző dolgozat, illetve határidőre nem teljesített szorgalmi feladat nem pótolható, azokat 0 értékkel vesszük figyelembe.

Elégtelen (pót)zárthelyi és/vagy elégtelen ellenőrző dolgozatátlag esetén a félév végi jegy a pótlási héten – a TVSz 13.§ (5) előírásai alapján – ismételt vizsga jelleggel, az egész félév anyagát felölelő beszámoló dolgozattal szerezhető meg.

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

Konzultációt a tantermi gyakorlatok tanulócsoportjai szintjén szervezünk a tanulócsoportok igénye szerint.

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

Bármely az objektum-orientált programozással és a C++ programozási nyelvvel foglalkozó könyv vagy jegyzet használható. Ajánlott irodalom:

  • B. Stroustrup: A C++ programozási nyelv (Kiskapu, 2001)
  • Tóth Bertalan: Programozzunk C++ nyelven (ComputerBooks, 2003)
  • Kondorosi Károly - László Zoltán - Szirmay-Kalos László: Objektum-orientált szoftverfejlesztés C és C++ nyelven (CompuerBooks, 2004)
  • Benkő Tiborné - Poppe András: "Együtt könnyebb a programozás" sorozat: Objektum-orientált C++ (CompuerBooks, 2004)
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

Kontakt óra

56

Félévközi készülés órákra

24

Felkészülés zárthelyire

20

Kijelölt írásos tananyag elsajátítása, szorgalmi feladatok megoldása

20

Összesen

120

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

Név:

Beosztás:

Tanszék, Int.:

Dr. Poppe András

egyetemi docens

EET

Dr. Vajk István

egyetemi docens

AUT

Dr. Szeberényi Imre

egyetemi docens

IIT