BME Villamosmérnöki és Informatikai Kar, műszaki informatika szak Deklaratív programozás (korábban: Programozási paradigmák) 2000. őszi félév (keresztfélév) ---------------------------------------------------------------------- | Felhívjuk a tárgyat 2000 előtt már felvettek figyelmét, hogy a tárgy | | Prolog-részében újabban a nyelv ISO szabványnak megfelelő változatát | | oktatjuk, ami a beépített eljáráskészlet változásával jár. | ---------------------------------------------------------------------- A FÉLÉV BEOSZTÁSA ÉS A FÉLÉVI KÖVETELMÉNYEK I. A félév beosztása, az órák helye és ideje ----------------------------------------- 1. Összefoglaló előadást a félév első négy hetében tartunk (szept. 11-étől okt. 3-áig), az órarend szerinti időpontokban és helyeken, azaz hétfőn 14.15-től 16.00 a Z.F06-ban és kedden 16.15-től 18.00-ig a V2.225-ben. Az első két hétben az SML, a második két hétben a Prolog lesz a téma. 2. A félév további részében általában kéthetente, keddi napokon 16.15-től tartunk konzultációt a V2.225-ben, mégpedig: okt. 17. SML 2.-6. fejezet, Prolog 4. fejezet okt. 31. SML 7.-11. fejezet, Prolog 5.1.--5.8. fejezet !nov. 14. SML 12.-15. fejezet, Prolog 5.9., 7. fejezetek !nov. 21. Felkészülés a zárthelyire (SML- és Prolog-példák) !nov. 28. Zárthelyi !dec. 5. Fejlett nyelvi elemek, kitekintés (SML, Prolog) dec. 12. Felkészülés a vizsgára (SML- és Prolog-példák) Igény esetén, indokolt esetben, további konzultációra is van lehetőség. A konzultációk előtt elektronikus levélben a címen várjuk a hallgatók kérdéseit. II. Tudnivalók ---------- 1. A tárgy honlapja: . Kérjük a hallgatókat, hogy iratkozzanak fel a tárgy levelezési listájára (a feliratkozás a honlapon át lehetséges). 2. A tárgyhoz két jegyzet áll a hallgatók rendelkezésére: a. Bevezetés a funkcionális programozásba (SML), Budapest, 2000 b. Bevezetés a logikai programozásba (Prolog), Budapest, 2000 A jegyzetet igénylők az első heti előadáson iratkozhatnak fel a jegyzetlistára. A jegyzetek ára kötetenként 600-600 Ft. 3. Az önálló gyakorláshoz a hallgatóknak a licencköteles és jelszóval védett SICStus Prologot (3.8.1) és a szabadon letölthető MOSML-t (2.0) kell használniuk. (Az ingyenes licenszmegállapodást a hallgatók az előadásokon írhatják alá.) A letöltésről részletek a honlapon olvashatók. III. Követelmények ------------- 1. Zárthelyi (zh): nagyzárthelyi (nzh), pótzárthelyi (pzh) A zh megírása célszerű és hasznos, de nem kötelező. Ha valaki pzh-t ír, az nzh eredményét elfelejtjük. A zh eredményét 15%-os súllyal vesszük figyelembe az osztályzatban. Az nzh-t a nov. 27-ével, a pzh-t a dec. 11-ével kezdődő héten íratjuk később egyeztetendő időben és helyen. (A hallgatók többségének elfoglaltságától függően az nzh-ra esetleg korábban kerül sor.) A zh időtartama 90 perc. A személyazonosságot a diákigazolvánnyal és a személyi igazolvánnyal kell igazolni. A zh két részből áll. Az első rész a minimálkövetelményeket fedi le, ebben két Prolog- és két SML-feladatot kell megoldani, nyelvenként max. 10 pontért. A zh csak akkor érvényes, és a második részt csak akkor javítjuk ki, ha az első részt nyelvenként min. 40%-ban sikerült teljesíteni, tehát mind az SML-, mind a Prolog-feladatokra legalább 4-4 pontot kapott a hallgató. A második részben nyelvenként 20-20 pont érhető el, a maximális összpontszám tehát 60. Ennek negyede, azaz max. 15 pont számít be a vizsgajegybe, feltéve, hogy a zh érvényes. A zh-n semmilyen jegyzet, segédlet nem használható, csak azok a feladatlapok, amelyeket mi osztunk ki. Előre megmondjuk, hogy melyek azok a könyvtári függvények, eljárások, amelyek specifikációját és használatát fejből kell ismerni. A megoldáshoz felhasználható/andó egyéb függvények, eljárások specifikációját, rövid leírását (ha lesznek ilyenek) megadjuk a feladatlapokon. Minden hallgatónak elegendő mennyiségű, csak az aláírását, a kódját és (olvashatóan) a nevét tartalmazó, egyébként üres A4-es lappal kell jönnie a zh-ra. Minden lapra (a piszkozatkészítésre használandó lapokra is!) előre fel kell írnia a nevét, a kódját és az aláírását. Ezeket a lapokat a zárthelyi megkezdése előtt, a személyazonosság ellenőrzésekor a teremfelügyelők szignálják. Ha a hallgatónak írás közben további lapokra lenne szüksége, szólnia kell a teremfelügyelőnek, aki a névvel, kóddal és aláírással azonosított lapokat szignálja. Ha egy hallgatónál olyan nemüres lapot találunk zh-írás közben vagy a beadott lapok között, amely nincs szignálva, a zh-ja érvénytelen. Ha zh-írás vagy beadás közben olyan lapot találunk valakinél, amelyen valaki másnak a neve, kódja és aláírása szerepel, akkor mindkét érintett hallgatónak érvénytelen a zh-ja. Ha az aláírás hamisnak bizonyul, fegyelmi eljárást is indítunk az ellen a hallgató ellen, akinél a lapot megtaláltuk. Az SML-, ill. a Prolog-feladatok megoldását külön lapokra kell írni (más javítja az SML-, és más a Prolog-részt). A saját megoldásokkal együtt a feladatsort tartalmazó lapokat is be kell adni (a feladatsort később feltesszük a Webre). Semmilyen elektronikus kommunikációs eszköz (mobiltelefon, személyhívó, számítógép, magnó, rádió, CD-lejátszó, nagyothalló készüléknek álcázott rádióvevő, beszélő karóra vagy monitorként funkcionáló szemüveg stb.) nem lehet a hallgatónál zh-írás közben vagy a vizsga alatt! Aki bármilyen okból arra kényszerül, hogy ilyen eszközt magával hozzon, köteles bemutatni a teremfelügyelőnek, ill. a vizsgáztatónak, aki az eszközt, ha szükségesnek találja, megőrzésre átveszi. Akinél zh-írás közben ilyen eszközt találunk, annak a zh-ja érvénytelen. Zh-írás alatt a teremben csak olyan hallgató tartózkodhat, aki személyazonosságát igazolta és zh-t ír. A zh alatt a teremből kimenni semmilyen okból nem lehet, még rövid időre sem. A zh alatt a terembe más hallgatók nem jöhetnek be. A zh ideje alatt a teremben tartózkodó összes hallgatónak a helyén ülve meg kell várnia a zh befejezését, akkor is, ha bármilyen oknál fogva korábban befejezte a munkát. 2. Házi feladat (nhf) Az nhf megírása nem kötelező. Eredményét 15%-os súllyal vesszük figyelembe az osztályzatban. Az nhf-et az 5. tanulmányi hét végéig adjuk ki (a megoldandó feladat specifikációját felrakjuk a Webre), a beadás határideje a december 4-én, hétfőn 24.00 (éjfél). A programokat és a dokumentációt elektronikus levélben kell beküldeni a feladatkiírásban megadandó segédprogrammal a megadott címre. A beküldött programokat tíz különböző tesztadattal automatikusan teszteljük a beadáskor, az eredményről a feladó elektronikus levélben kap értesítést. Az nhf pontozásához egy másik, az előzőhöz hasonló tesztsorozatot használunk. A feladat megoldására SML- és Prolog-nyelven kell egy-egy programot írni. A két programhoz közös fejlesztői dokumentációt kell készíteni (unix/linux alatt olvasható formában, azaz sima ascii-szövegként vagy html-dokumentumként; elfogadható még pdf-, ps- és dvi-formátumban is). A két programra max. 20-20 pont, a dokumentációra ugyancsak max. 20 pont kapható. Az nhf akkor érvényes, ha a 40%-os minimumkövetelmény teljesül, azaz a két programra külön-külön, valamint a dokumentációra ugyancsak legalább 8 pontot kapott a hallgató. Az így maximálisan kapható 60 pontnak a negyede, azaz max. 15 pont számít bele a vizsgajegybe, feltéve, hogy az nhf érvényes. Az nhf-et minden hallgatónak ÖNÁLLÓAN kell megoldania: ötletek átvehetők másoktól, de a programot mindenkinek saját magának kell kódolnia. Ha többen lényegét tekintve azonos programot vagy dokumentációt adnak be, közülük senki sem kap pontot az nhf-re; ha valaki helyett más írta a programot vagy a dokumentációt, a beadó nem kap pontot az nhf-re. Súlyosabb esetben az elkövetőknek a kari szabályzat szerinti egyéb következményekkel is számolniuk kell. Az nhf-et olyan adatokkal teszteljük, amelyeket a nem különösebben ötletes, de jó programok az előírt idő alatt képesek megoldani. Az alapfeladatokat hibátlanul megoldó programok létraversenyben vesznek részt. A leggyorsabban futó SML-, ill. a Prolog-programokra - helyezési számuktól függően - külön-külön 30 és 2 közötti pluszpont kapható. A féléves összpontszámhoz a kapott összegnek ugyancsak a negyedét adjuk hozzá. 3. Vizsga A vizsgaidőszakban leaglább három alkalommal írásbelivel kombinált szóbeli vizsgát tartunk, amelyre előzetesen jelentkezni kell. A vizsga reggel 8 órakor kezdődik. A hallgatóknak a vizsga előtti napon a Weben közzétett időbeosztás szerint kell megjelenniük a vizsgán. Minden vizsgára csak korlátozott számú hallgató jelentkezhet, a létszámkorlátot a Neptun-rendszerben tesszük közzé. A személyazonosságot a leckekönyvvel, továbbá a diákigazolvánnyal vagy a személyi igazolvánnyal kell igazolni. A vizsgán, amely több részből áll, minden hallgató tételeket húz. A vizsga első részében, min. 60 perces felkészülési idő alatt, néhány kisebb programozási feladatot kell megoldani Prolog-, ill. SML-nyelven, írásban. A második részben (felkészülési idő nélkül, legfeljebb rövid gondolkodás után) kiskérdésekre kell válaszolni (adott programrészlet működését elmagyarázni, típusegyenletet megoldani, Prolog-kifejezés gráfját felrajzolni, egy-egy beépített függvény, ill. eljárás működését ismertetni, egy-egy témakörről kiselőadást tartani stb.). A harmadik részben a felkészülési idő alatt megírt programokhoz kell magyarázatot, kiegészítést fűzni, ill. a vizsgáztatónak a programokra vonatkozó kérdéseire válaszolni. A vizsga első három részben max. 70 pont szerezhető. A negyedik részben a hallgatónak a zh-ra, ill. az nhf-re vonatkozó kérdésekre kell válaszolnia, ha írt zh-t, ill. adott be nhf-et. Ha a válaszok nem kielégítőek, a zh-ra, ill. az nhf-re kapott pontszámot nem vesszük figyelembe az osztályzatban. 4. Aláírás A tárgyat felvevő hallgatók aláírást kapnak. Azoknak a hallgatóknak, akik az nhf-t, ill. a zh-t megoldják, de a vizsgát nem teszik le, akkor számítjuk be a félév során szerzett pontszámát a következő tanévben a féléves osztályzatba (külön a zh-ra, és külön az nhf-re kapott, továbbá a létraversenyen szerzett pontszámot), ha érvényes zh-t írtak, ill. érvényes nhf-et adtak be, és ezen túl a zh-ra, ill. az nhf-re kapható maximális pontszám legalább 40%-át is megszerezték. 5. A féléves osztályzat megállapítása A félév során összesen max. 115 (100 + 15) pont szerezhető: a vizsgán max. 70, az nhf-re és a zh-ra max. 15-15, a létraversenyen további max. 15 pont. Az osztályzatot az alábbiak szerint állapítjuk meg: 85 ponttól: jeles, 70 ponttól: jó, 55 ponttól: közepes, 40 ponttól: elégséges. Budapest, 2000. szeptember 10. Hanák Péter - Szeredi Péter