A programozás alapjai 1.

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

Adatlap utolsó módosítása: 2016. április 27.

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

 BSc

 

 

 

 

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIEEA100 1 2/2/0/v 5 2/1
3. A tantárgyfelelős személy és tanszék Dr. Czirkos Zoltán,
A tantárgy tanszéki weboldala http://www.eet.bme.hu/vieea100/
4. A tantárgy előadója
Név:

 

Beosztás:

 

Tanszék, Int.:

 

Dr. Czirkos Zoltán

egy. docensElektronikus Eszközök Tsz.

 

 Nagy Gergely

 egy.tanársegéd

 Elektronikus Eszközök Tsz.

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

-

6. Előtanulmányi rend
Kötelező:
TárgyEredmény( "BMEVIEEA101" , "jegy" , _ ) >= 2

ÉS Training.Code=("5N-A8")

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:
Tematikaütközés miatt a tárgyat csak azok vehetik fel, akik korábban nem hallgatták a következő tárgyakat:

 

Neptun-kód       Cím

 

-                         -

 

7. A tantárgy célkitűzése
  • A tantárgy célkitűzése, hogy a hallgatók megfelelő jártasságot szerezzenek a számítógépes problémamegoldás módszereinek és alapvető eszközeinek használatában annak érdekében, hogy a megszerzett ismereteket és készségeket további tanulmányaik során hatékonyan legyenek képesek alkalmazni. A tárgy további célkitűzése a hordozható programok készítésének bemutatása. A célkitűzés teljesítését egy magas szintű programozási nyelv, a C megismerése teszi lehetővé. A gyakorlatok anyaga folyamatosan követi az előadások tematikáját, azok megértését, az algoritmusok részletes megismerését támogatja.

     

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

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.

 

9. A tantárgy oktatásának módja (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 30-35 fős hallgatói csoportok (tanulókörök) számára. Az előadáshoz és a tantermi gyakorlatokhoz a Szoftver labor 1 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 Az előadások és a gyakorlatok látogatása kötelező. Az előadásokon a jelenlétet azok kezdetén és végén is a félév folyamán minden alkalommal ellenőrizzük, aláírást nem kaphat az a hallgató, aki ezek alapján az alkalmak több, mint 30%-áról hiányzott (a viszonyítási alap a ténylegesen megtartott előadások száma). A gyakorlatokon a jelenlétet minden alkalommal ellenőrizzük, 30%-ot meghaladó hiányzás esetén a tantárgyból sem aláírás sem kreditpont nem szerezhető.

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 iratunk. A félév végi aláírás megszerzésének egyik feltétele az elégséges (pót)zárthelyi. A félév során öt alkalommal kis zárthelyit íratunk a gyakorlatokon. Az aláírás megszerzésének második feltétele, hogy a három legjobban sikerült kis zárthelyi összpontszáma elérje a három kis zárthelyire szerezhető összpontszám 40%-át. Az aláírás megszerzésének harmadik feltétele az órákon való részvétel. A hiányzások mértékét a TVSz rögzíti. A korábban ebből a tárgyból megszerzett, 2 évnél nem régebbi aláírást elfogadjuk. A kis és nagy ZH-kon legkiválóbban teljesítő hallgatók megajánlott jegyet kaphatnak.

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 pótlási héten elővizsgát tartunk. Az elővizsgán annyian vehetnek részt, ahány vizsgahely a vizsgateremben rendelkezésre áll, a részvétel feltétele a zh-n elért megfelelően magas pontszám.

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

A szorgalmi időszakban egy alkalommal pót zárthelyi dolgozat megírására van lehetőség, az évfolyam terhelési táblázata szerinti időpontban. Pót zárthelyi dolgozatot annak kell írnia, aki nem írt elégséges eredményű zárthelyi dolgozatot. A zárthelyi pótlására a TVSz előírásainak megfelelően a pótlási héten is biztosítunk lehetőséget. Gyakorlaton való részvétel valamint a kis ZH-k pótlására nincs lehetőség.

 

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, a gyakorlatvezetőkkel egyeztetve.

 

 

 

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

Pohl László: A programozás alapjai, elektronikus jegyzet, mely letölthető a tárgy honlapjáról.

 

Továbbá bármely, programozási módszerekkel és az ISO C programozási nyelvvel foglalkozó könyv vagy jegyzet használható.

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, például:

B. W. Kernighan, Ritchie: A C programozási nyelv: az ANSI szerint szabványosított változat (Műszaki Könyvkiadó, 1994)

Benkő Tiborné, Benkő László, Tóth Bertalan: Programozzunk C nyelven! (ComputerBooks, 1996)

Benkő Tiborné - Poppe András: "Együtt könnyebb a programozás" sorozat: C (CompuerBooks, 2004)

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

(a tantárgyhoz tartozó tanulmányi idő körülbelüli felosztása a tanórák, továbbá a házi feladatok és a zárthelyik között (a felkészülésre, ill. a kidolgozásra átlagosan fordítandó/elvárható idők félévi munkaórában, kredit x 30 óra, pl. 5 kredit esetén 150 óra)):

 

Kontakt óra

56

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

19

Felkészülés zárthelyire

20

Házi feladat elkészítése

 10

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

 25

..

 

Vizsgafelkészülés

20

Összesen

150

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

Név:

Beosztás:

Tanszék, Int.:

Dr. Czirkos Zoltásn

Egyetemi adjunktus

Elektronikus Eszközök Tsz.

   

Az elsőéves programozás tárgyakat oktatók munkaközössége.

.