K-INFO
HU
EN
Belépés

Programozás

Programming
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
Programozás
Programming
Tantárgykód BMEVIEEA024
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 0 2
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa félévközi érdemjegy
Tantárgy kreditértéke 4
Tantárgyfelelős
DR. Pohl László
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Elektronikus Eszközök Tanszéke
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala http://www.eet.bme.hu/~kohari/vieea024/
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

1. hét

a tárgy tematikája, követelményei,

algoritmus, adat, nyelv,

programozási nyelvek, miért pont a c?

specifikáció, tervezés, kódolás, tesztelés, dokumentálás

algoritmus választás kérdései LNKO kapcsán (próbálgatás, prímtényezők, euklideszi formula)

algoritmusok elemei: szekvencia, elágazás, ciklus

n! kiszámítása

- algoritmus kiválasztása, milyen elemekből épül fel, milyen adatszerkezeten dolgozik,

- algoritmus szöveges leírása

- algoritmus blokkvázlattal

- kódolás

itt kis elemzés: egy c program kötelező elemei, a keret. a main fv. szerepe, return 0

az indentálás célja es jelentősége.

scanf egész érték beolvasása, printf egész értékek kiírása.

2. hét

tárolási egységek

- változók, konstansok

- függvények

kötelező deklaráció/definíció

szintaktika/szemantika

- szintaxis diagram, egész szám szintaxisa

- alapvető szintaxis szabályok: szabad írásmód (whitespace-ek), a != A, #preproc, /* komment */, szabályos azonosítók

előre definiált típusok, miért int-et es double-t használjunk

egész konstans megadása, dec, okt, hexa alakban

logikai típus hiánya, számok logikai értéke

utasítások

- ;

- deklaráció/definíció

- kifejezés utasítás

- feltételes utasítás

- ciklus (most CSAK a while)

- vezérlésátadó (switch/case csak említés szinten)

- {}

if..else és while-nál blokkdiagram

feltételek

- relációs operatorok ('==' != '=', az ebben rejlő veszély)

- logikai operatorok !, &&, ||

3. hét

a múlt heti ismeretek kiegészítése és mélyítése. vezérlési szerkezetek, utasítások, beépített típusok, számábrázolási kérdések.

könyvtári függvények használata

4. hét

alapvető operatorok:

* aritmetikai, egész, valós,

* type cast,

* értékadó,

* sizeof,

* relációs,

* logikai, shortcut

* bitenkénti,

* ?:

5. hét

iteratív megoldások

=

pre/post ++ --, post veszélyei

tömbök, 1d, 2d, stringek

pointerek

6. hét

1d dinamikus tömb (példa a használatra)

(csak érintőleg, a használat szintjen:

getchar, putchar, EOF, ctrl+z/ctrl+d)

filter program template

enum típus

véges automata

példa: írjuk ki a beolvasott C kódból a kommenteket.

ly számláló

7. hét

Függvények

a program számára foglalt memóriaterületek, mi hol van/lesz,

heap, stack viselkedése, az eltérések következményei.

tárolási osztályok (lokális változókra)

a függvényhívás mechanizmusa

több érték visszaadása:

void descart2polar( double, double, double*, double*)

miért tilos lokális változó címét visszaadni

8. hét

- struct, . , ->

- typedef

- rendezés direct selection, bubble, struktúratömbre is.

- hasonlító függvények, strcmp, szöveg szerinti rendezések.

9. hét

- függvénypointerek,

- qsort használata,

- string, int, double hasonlító fv készítése (struktúratömb rendezése példáján),

- önhivatkozó szerkezet bevezetése,

- CSAK rajzolva egyirányú, kétirányú, több szempont szerint rendezett lista,

- bináris fa

- kód szinten csak a keresés a listában ciklus.

10. hét

listák kezelése

beszúró, kereső, törlő függvény

a két lehetséges head kezelés:

head=insert(head... ill. insert(&head,...

rekurzió értelmezése n!-on, bináris fák kezelése

kód szinten csak az inorder bejárás

11. hét

I/O FILE, fopen, fclose, feof, f/sprintf f/scanf, getc/s putc/s, main paraméterei

12. hét

Röviden, ami kimaradt: vessző op., (union, bitmező, vararg )

a C előfeldolgozó

13. hét

NAGYZH

14. hét

tartalék (ha nincs szükség elmaradt előadás pótlására, akkor több forrásmodulból álló programok kérdései)

A tantárgy célja megismertetni a hallgatókkal a számítógépes problémamegoldás általános lépéseit, tipikus adatszerkezeteket és azok kezelését valamint alapvető algoritmusokat (rendezés, keresés, egyes numerikus módszerek). A hallgatóknak készség szintű jártasságot szereznek egy, a gyakorlati életben széleskörűen alkalmazott programozási nyelv, a C nyelv használatában, melyre további tanulmányaik során támaszkodhatnak. A hallgatók megismerik a programfejlesztést támogató alapvető eszközök használatát. A tárgy további fontos célkitűzése a hordozható programok írásának elsajátíttatása.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

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, alapalgoritmusok elsajátítása.

Tanulástámogató anyagok

Online források
Prentice Hall, 1988. 2nd edition; Bármely a C programozási nyelvvel foglalkozó könyv vagy jegyzet használható. A numerikus módszerek kapcsán különösen ajánlott az [1] vagy [2] példatárak használata.; [1] Benkő Tiborné, Benkő László, Tóth Bertalan:; Programozzunk C nyelven!; ComputerBooks Kiadó, 1995.; [2] Benkő Tiborné, Benkő László:; Programozási feladatok és algoritmusok Turbo C és C++ nyelven; ComputerBooks Kiadó, 1997.; [3] B.W. Kernighan - D.M. Ritchie:; A C programozás nyelv: az ANSI szerint szabványosított változat; Mûszaki Könyvkiadó, 1994.; [4] B.W. Kernighan - D.M. Ritchie:; The C Programming Language.

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
nincs
Általános szabályok
Követelmények: a.       A szorgalmi időszakban: 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 iratunk “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 iratunk. 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 szemeszter végén. 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 végéig lehetséges.   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 gyakorlatokró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 az előírt időn 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.    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 szemeszterben. Főszabály szerint további pótlási lehetőség nincs. Gyakorlaton 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 végéig lehetséges. 
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak

Nincs megadva.

A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.