A programozás alapjai 1.
A tantárgyleírás hatályossága
| Tantárgy neve (magyarul, angolul) |
A programozás alapjai 1.
Basics of Programming 1.
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIEEA100 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | vizsga | ||||||||||||
| Tantárgy kreditértéke | 5 | ||||||||||||
| Tantárgyfelelős |
Dr. Czirkos Zoltán
beosztás: adjunktus
elérhetőség:
czirkos-EZT-TOROLD-KI@eet.bme.hu
|
||||||||||||
| 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/vieea100/ | ||||||||||||
| 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
1. hét.
Előadás: Bevezetés. Programozás fogalma. Kifejezések és változók, típus fogalma. C nyelv alapjai. Egyszerű kifejezések a programban.
Gyakorlat: Hétköznapi algoritmusok. Folyamatábraszerű rajz készítése közismert algoritmusokhoz (pl. írásbeli összeadás, prímtényezős felbontás).
2. hét.
Előadás: Forráskódok elemei. Algoritmus fogalma, leírása. Ciklus, elágazás, szekvencia. Kombináció. Összetett vezérlési szerkezetek, összetett kifejezések. Számítógép felépítése röviden.
Gyakorlat: Algoritmizálás gyakorlása a kártyapakli példáján. Benne van-e az adott kártya? Melyik a leg...? Hogyan lehet sorba rakni?
3. hét.
Előadás: Egyszerű algoritmusok pszeudokód / C változatai. Összegzés, szélsőérték keresés tételei. Egész alapú típusok. Karakter és logikai típus. Tömbök.
Gyakorlat: Algoritmusok leírása C nyelven. Számelméleti példák. Másodfokú egyenlet. Numerikus módszerek, pl. pi kiszámítása ciklussal. Prímszám-e több változatban. Tükörszám.
4. hét.
Előadás: Beépített típusok részletesen. Véges ábrázolás. Egész és lebegőpontos számok ábrázolása, számábrázolási korlátok. Függvények fogalma, használata.
Gyakorlat: Tömbbel megoldható feladatok gyakorlása. Naptár napjai, szökőévek. Eratoszthenész szitája. Bankautomata.
5. hét.
Előadás: Operátorok. Precedencia, kiértékelés, mellékhatás. Struktúrák.
Gyakorlat: Összetett problémák, dekompozíció. Függvények használata; paraméterek és visszatérési értékek. Egyszerű, matematikai jellegű függvények írása. Saját toupper, Caesar kódolás.
6. hét.
Előadás: Felsorolt típus. Állapotgép. Pointerek. Sztringek röviden.
Gyakorlat: Struktúrák. 3D vektor struktúra. Műveletek, függvények. Többszörösen összetett adatok. Struktúrában tömb, tömbben struktúra.
7. hét.
Előadás: Program kapcsolata a külvilággal. Előfeldolgozó. Programszegmentálás. Karbantartható programok írása. Const szerepe.
Gyakorlat: Tömbök és függvények használata, tömb átadása függvénynek. Sztringes feladatok. Szöveg megfordító, palindrom. Sztring átadása függvénynek. Tömbméret és sztringhossz közti különbség. Túlindexelés veszélye.
8. hét.
Előadás: Tömbi algoritmusok. Keresések. Rendezések.
Gyakorlat: Állapotgépek tervezése példákon keresztül; részletek implementálása. Ly számláló, mondat nagybetűsítő, kommentszűrő.
9. hét.
Előadás: Dinamikus memóriakezelés. Dinamikus tömbök. Dinamikus sztring kódolása. Memóriakezelés rendszerező tárgyalása.
Gyakorlat: Tömb rendezése. Medián keresése. N legkisebb elem. Egyforma elemek intervalluma. Rendezés kulcsai. Kártyapakli: tömbben struktúra; rendezés szín szerint, rendezés römiszerűen.
10. hét.
Előadás: Dinamikus adatszerkezet: láncolt listák. Listák használata. Bejárás, törlés, beszúrás. Listával megvalósítható adatszerkezetek: LIFO, FIFO.
Gyakorlat: Komplett halmaz "osztály" kódolása. Munka dinamikus tömbbel. Méret nyilvántartása, keresés, átméretezés. Munka struktúrákra mutató pointerekkel.
11. hét.
Előadás: Rekurzió, dinamikus adatszerkezetek. Fák, bináris fák használata. Keresőfák, dekódoló fák. Fák bejárásai.
Gyakorlat: Adatszerkezetek választása. Listák használata; elemek átláncolása.
12. hét.
Előadás: Függvényre mutató pointerek. Függvénykirajzoló program tervezése. Unionok, bitmezők.
Gyakorlat: Rekurzív függvények gyakorlása. Fák algoritmusai. Csomópontok, szintek, levelek. Tükörképek, szimmetrikus fa vizsgálata.
13. hét.
Előadás: További adatszerkezetek. Nagyobb programok tervezése. Funkcionális
dekompozíció bemutatása egy komplex példán.
Gyakorlat: Függvényre pointerek. Numerikus integrálás.
14. hét.
Tartalék előadás.
Gyakorlat: vizsgára gyakorlás.
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
Tanulástámogató anyagok
Online források
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
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
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
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.