Programozási paradigmák

A tantárgy angol neve: Programming Paradigms

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

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

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
VIFO3230 6 4/0/0/v 5 1/1
3. A tantárgyfelelős személy és tanszék Dr. Szeredi Péter,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

dr. Hanák Péter

adjunktus

Irányítástechnika és Informatika T. / OM KFHÁ

dr. Szeredi Péter

docens

Számítástudományi T. / IQSoft Rt.

Benkő Tamás

doktorandusz

Számítástudományi T. / IQSoft Rt.

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

Programozás, programozási technológia, matematikai logika

6. Előtanulmányi rend
Kötelező:
TárgyEredmény( "BMEVIFO2228" , "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:

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ók az előző félévekben tanult imperatív programozás után ismerkedjenek meg a deklaratív programozással.

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

Az imperatív és a deklaratív (funkcionális és logikai) programozás összevetése.

Funkcionális programozás SML nyelven.

Név, függvény, típus, ennes, lista, fa, egyéb összetett adattípusok. Típuslevezetés. Rekurzív algoritmusok és adatstruktúrák. Iteráció. Mintaillesztés. Típusparaméter. Polimorfizmus. Magasabb rendű függvények. Részlegesen alkalmazható függvények. Lusta listák. Absztrakt típusok. Struktúra, szignatúra, funktor. SML Basis Library. Funkcionális programok helyessége. Kitekintés: gyökerek, hagyományok és új irányzatok a funkcionális programozásban.

Logikai programozás Prolog nyelven.

A Prolog nyelv alapjai: eljárások, vezérlési szerkezet, összetett adatszerkezetek, diszjunkciók, operátorok, listák. Beépített eljárások, dinamikus adatbázis-kezelés. Programozási módszerek. Fejlettebb nyelvi elemek és alkalmazásuk. Fejlesztési ciklus, modularitás, hibakezelés. Új irányzatok a logikai programozásban. Párhuzamos megvalósítások.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

Előadás, konzultáció, önálló gyakorlás számítógépen.

10. Követelmények
  1. A szorgalmi időszakban:
  2. Kötelező: nincs.

    Ajánlott: a nagyzárthelyi (pótzárthelyi) megírása, valamint a házi feladat megoldása mindkét programozási nyelven.

    A nagyzárthelyit a 11. oktatási héten íratjuk meg, pótlására, illetve javítására egyetlen alkalommal, a szorgalmi időszak utolsó hetében megírandó pótzárthelyin adunk lehetőséget. A zárthelyiken semmilyen jegyzet, feljegyzés, könyv nem használható. A dolgozat beadása esetén a dolgozatra adott pontszámot 15%-os súllyal vesszük figyelembe a féléves osztályzatban.

    A házi feladatot a szorgalmi időszak első felében adjuk ki. Az SML- és Prolog-nyelven megírt programokat, valamint a dokumentációt elektronikus levélben kell beadni legkésőbb az utolsó oktatási héten. A pontos beadási határidőt és a beadás módját a tantárgy honlapjáról letölthető feladatkiírás tartalmazza. Beadása esetén a házi feladatra kapott pontszámot 15%-os súllyal vesszük figyelembe a féléves osztályzatban. A házi feladat a beadási határidő után nem pótolható. A (mindkét nyelvből külön-külön) maximális pontszámot elérő programok létraversenyben vesznek részt. A leggyorsabb programok – feltéve, hogy helyesek és a dokumentáltságuk is megfelelő – pluszpontot kapnak. A létraversenyről a további tudnivalókat a tárgy honlapján tesszük közzé.

  3. A vizsgaidőszakban:
  4. A vizsga szóbeli, amelyre a kiadott feladatok írásbeli megoldásával és a tételek írásbeli kidolgozásával fel kell, ill. lehet készülni. A félévvégi osztályzatban a vizsgára kapott pontszámot 70, a zárthelyire (pótzárthelyire) és a házi feladatra kapott pontszámot 15-15%-os súllyal vesszük figyelembe. A létraversenyen kapott pontszám az összpontszámot javítja.

    A sikeres vizsga feltétele a maximális pontszám 40%-ának megszerzése mind a vizsgán, mind a félév egészét tekintve külön-külön mindkét programozási nyelvből (azaz a kétszer 35, ill. kétszer 50 pontból legalább kétszer 14, ill. kétszer 20 pont megszerzése).

  5. Elővizsga:

Nincs.

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

A tárgyhoz kétkötetes, sokszorosított jegyzet vásárolható.

  1. Deklaratív programozás. Oktatási segédlet. Bevezetés a logikai programozásba. Szeredi Péter, Benkő Tamás, BME VIK SZIT & IQSoft, Budapest, 2000.
  2. Deklaratív programozás. Oktatási segédlet. Bevezetés a funkcionális programozásba SML nyelven. Hanák D. Péter, BME VIK IIT, Budapest, 2000.

Elektronikus változatuk a tárgy honlapjáról is letölthető: . Az otthoni gyakorlásra és a házi feladat megoldására használható SML- és Prolog-fordítóprogramok ugyancsak a tárgy honlapjáról tölthetők le. A felhasználható irodalom jegyzéke szintén a honlapon található meg.

A tárgy levelezési listájára a címen lehet feliratkozni.

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

Név:

Beosztás:

Tanszék, Int.:

dr. Hanák Péter

adjunktus

Irányítástechnika és Informatika T. / OM KFHÁ

dr. Szeredi Péter

docens

Számítástudományi T. / IQSoft Rt.