A programozás alapjai I.

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

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

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

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

Műszaki Informatika Szak

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIEE1239 1 2/0/0/v 3 2/1
3. A tantárgyfelelős személy és tanszék Dr. Poppe András,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Poppe András

egyetemi docens

EET

Vitéz András

egyetemi adjunktus

HIT

Szeberényi Imre

főtanácsos

IIT

Vajk István

egyetemi docens

AUT

A tantárgy előadója évente változik a tanszékek közötti munkamegosztásnak megfelelően.

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

-

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

Tematikaütközés miatt a tárgyat csak azok vehetik fel, akik korábban nem hallgatták a következő tárgyakat:

-

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

A hallgatóknak megfelelő jártasságot kell szerezniük a számítógépes problémamegoldás módszereinek és alapvető eszközeinek használatában olyan szinten, hogy azt további tanulmányaik során képesek legyenek hatékonyan alkalmazni. E célkitűzés teljesítése a C programozási nyelv megismerése révén válik lehetővé. Részletesen:

  • ismeretek szerzése a számítógépes problémamegoldás területén,
  • a C programozási nyelv készség szintű elsajátítása,
  • egyszerűbb algoritmusok elkészítésének készség szintű ismerete,
  • algoritmusok hatékonyság-elemzésének alapjai,
  • gyakorlat szerzése nagyméretű (esetenként csoportmunkát igénylő) feladat komplett számítógépes megoldásában (specifikáció, algoritmizálás, kódolás, dokumentálás),
  • ismeretek szerzése a programok hordozhatóságra tervezésében.
8. A tantárgy részletes tematikája
  • Program, algoritmus. A programozás lépései: specifikáció, algoritmizálás, kódolás, dokumentálás. Szintaktika, szemantika. A folyamatábra. Gépi kódú ill. magas szintű programozás.
  • Az első C példaprogram. Alapfogalmak: kulcs-szavak, azonosítók. Szintaktika, szemantika. Tárolási egységek, jobbérték, balérték, hatás, mellékhatás. Deklarációs utasítások, végrehajtható utasítások, blokk.
  • Adattípusok, számábrázolás: egész típusok, valós típusok. Logikai értékek reperezentációja a C nyelvben. A void típus.
  • Kifejezések, operátorok, precedenciák, kiértékelési sorrend. Kifejezés-utasítások.
  • Vezérlési szerkezetek, ciklusok.
  • Programszegmentálás – az ún. C-függvények. C-függvények procedúraszerű és függvényszerű használata. Formális és aktuális paraméterek. Globális és lokális változók, láthatóság. A C-függvények deklarációja és definíciója. Érték és hivatkozás szerinti paraméterátadás. A stack fogalma, lokális értékek életciklusa: tárolási osztályok (auto, register, static).
  • Rekurzió, rekurzív algoritmusok, pl. Hanoi tonyai, Fibonacchi számok, binomiális együtthatók előállítása, kifejezés infix-postfix átalakítása.
  • Összetett adattípusok: tömbök, struktúrák. Tömbalgoritmusok: keresések, rendezések.
  • A switch utasítás. Menü szerkezetek a switch-csel. Egy program véges automata modellje.
  • Pointerek, indirekció. Dinamikus adatok létrehozása, a dinamikus tárkezelés eljárásai: memória-allokáció és felszabadítás. Pointerek és tömbök kapcsolata. Pointer-aritmetika.
  • Pointereket tartalmazó struktúrák: önhivatkozó adatszerkezetek deklarációja. Tipikus, önhivatkozó adattípusokkal felépített dinamikus adatszerkezetek: láncolt listák, bináris keresőfa.
  • Típusok definiálása, a typedef. Típusmódosító operátorok: pointer-, tömb- és függvénytípust képző operátorok – ezek inverzei a végrehajtható utasítások során (indirekció, indexelés, függvényaktivizálás).
  • Szabványos input és output, file kezelés.
  • Egy alkalmazói program készítésének menete a specifikációtól a dokumentálásig. Egy program, mint termék (ergonómiai, marketing, karbantartási megfontolások, termékkövetés).
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, melyekhez a Számítógép labor 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 tartunk az órarend szerinti helyeken és időben. A szorgalmi időszak alatt 1 alkalommal, az évfolyamfelelős oktatóval egyeztetett időpontban nagy zárthelyi dolgozatot iratunk. A szorgalmi időszakban 1 alkalommal pót zárthelyi dolgozat megírására van lehetőség, a hallgatókkal egyeztetett időpontban. Pót zárthelyi vagy beszámoló dolgozatot annak kell írnia, aki nem írt elégséges eredményű zárthelyi, illetve pót zárthelyi dolgozatot. A félév végi aláírás megszerzésének feltétele elégséges (pót)zárthelyi, illetve beszámoló dolgozat megírása. A korábban ebből a tárgyból megszerzett aláírást a tematika módosítási időszak alatt NEM fogadjuk el, egyébként a TVSZ előírásai a mérvadóak.

b. A vizsgaidőszakban:

A tárgyból a félév befejeztével írásbeli vizsgát kell tenni. A vizsgára bocsátás feltétele az aláírás megszerzése

c. Elővizsga:

A szorgalmi időszak utolsó hetében elővizsgát tartunk. Az elővizsgán az vehet részt, akinek a zh eredménye legalább jó.

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

A szorgalmi időszakban 1 alkalommal pót zárthelyi dolgozat megírására van lehetőség, a hallgatókkal egyeztetett időpontban.

. Sikertelen pót zárthelyi esetében a vizsgaidőszak első két vizsgája alkalmával beszámolási lehetőséget biztosítunk (a vizsgaidőszak első két hete során).

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

Zh ill vizsganapok előtt az előadóval történő előzetes időpont-egyeztetéssel tartunk konzultációt.

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

Bármely, programozási módszerekkel és az ANSI C programozási nyelvvel foglalkozó könyv vagy jegyzet használható. A kurzushoz illeszkedő jegyzet készítését tervezi az oktatói munkaközösség. Annak megjelenéséig ajánlott irodalom:

  • Alap algoritmusok tekintetében:
  • Pongor György: Szabványos PASCAL programozás és algoritmusok. (Műszaki Könyvkiadó, 1999)
  • Niklaus Wirth: Algoritmusok + Adatstruktúrák = Programok (Műszaki Könyvkiadó 1982.)
  • A C programozási nyelv tekintetében: bármely, a nyelvvel foglalkozó könyv.
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

Kontakt óra

30

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

15

Felkészülés zárthelyire

20

Házi feladat elkészítése

Kijelölt írásos tananyag elsajátítása

..

Vizsgafelkészülés

25

Összesen

90

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

Név:

Beosztás:

Tanszék, Int.:

Dr. Poppe András

Egyetemi docens

Elektronikus Eszközök Tsz.

a Programozás tárgyak oktatói munkaközössége ajánlásainak megfelelően.