Imperatív programozás

A tárgy a Programtervező informatikus alapszakos hallgatóknak van meghirdetve az őszi félévekben. (A rendelkezésre álló erőforrások függvényében igyekszünk keresztféléves indulást is biztosítani.)

Sillabusz

A tárgy célja, hogy programozási nyelvekkel kapcsolatos fogalmakkal ismertesse meg a hallgatókat, melyek alapján a hallgatók a programozás során képesek lesznek tudatosan választani a nyelvi eszközök közül. A tárgyalt ismeretkör az imperatív, a procedurális és (kisebb részben) a moduláris programozási paradigmát fedi le, alapot teremtve későbbi, az objektum-orientált és konkurens programozási paradigmákat tárgyaló kurzusoknak. A tárgy utal a vele egy időben tartott Funkcionális programozás kurzusra is (és viszont). A tárgy szoros kapcsolatban áll a vele egy időben tartott Programozás, illetve (kisebb mértékben) a Számítógépes rendszerek kurzusokkal. Jelen tárgynak nem célja, hogy a hallgatókat programozni tanítsa – ez a Programozás kurzus feladata –, de természetesen hozzájárul a hallgatók programozási készségeinek fejlődéséhez.

Az előadásokon és a gyakorlatokon kötelező részt venni. A géptermi gyakorlatok a gyakorlatvezetővel segített önálló munkát tűzik ki célul. A félév során sem a gyakorlatokon, sem a géptermi zárthelyiken nem használunk integrált fejlesztői környezetet, csak programozói szövegszerkesztőket (pl. geany, notepad++, gedit, (g)vim, emacs) és parancssoros fordítást/futtatást. Ennek az a célja, hogy így a hallgatók megértik az eszközök működési elvét, tudatos eszközhasználókká válnak, és a későbbiekben az IDE-eszközök konfigurálására is képesek lesznek. A gyakorlatokon ösztönözzük a hallgatókat, hogy többféle operációs rendszeren (Windows, Linux) elsajátítsák a programkód megírásának, lefordításának és futtatásának technikáját.

Tematika

Az alábbi témaköröket C nyelven tekintjük át. (A 3 kiemelt csoport Python nyelvet is tanul.)

Követelmények

Mind a rendszerezett elméleti tudást, mind a gyakorlati készségeket mérjük a tárgyból. Az előbbi szokott több problémát okozni, ezért is kötelező az előadásokon részt venni.

A nappali tagozatos hallgatóktól 150 munkaórányi (azaz 150 x 45 perc) befektetést várunk el (ez felel meg az 5 ECTS kreditnek, ami a tárgy elvégzéséért jár). Ezt a 150 munkaórát a következő bontásban javasolt a tanulási folyamatra fordítani.

Az esti tagozaton 6 ECTS kreditért 180 munkaórányi befektetés várunk, melynek jóval kisebb részét teszik ki a tanórák (heti 3, összesen 39 munkaóra), és nagyobb részét az önálló tanulás és gyakorlás (heti 6, összesen 78 munkaóra), valamint a zh-ra készülés (60 munkaóra).

A tárgy teljesítésének előfeltételei

Előadások és gyakorlatok formája

Az előadásokat és a gyakorlatokat a járványügyi helyzet miatt Microsoft Teamsben tartjuk. Minden hallgatónak csatlakoznia kell az Imperatív programozás nevű csoporthoz. Az előadásokat és a gyakorlatokat is a dedikált csatornákon tartjuk, a tanrend szerinti idősávban. (Pl. az 1. csoport az előadását a 90. előadás, a gyakorlatát az 1. csoport csatornán találja.)

Számonkérés

A tárgy kombinált számonkérésű, azaz egyetlen (gyakorlati) jegy zárja a tárgyat. Ha valaki több, mint négyszer hiányzik akár az előadásról, akár a gyakorlatról, a jegyet megtagadjuk.

A kurzus során különböző formákban pontokat (összesen legfeljebb 50-et) kell gyűjteni. A pontok nagy részét a szorgalmi időszakban lehet megszerezni órai röpdolgozatokkal és kisbeadandókkal. A félév során 10 röpdolgozat lesz, darabja max. 2 pont. Minden második héten egy-egy kisbeadandó feladatot kell teljesíteni, összesen 6-ot. Ezek darabja max. 3 pont, de a végső jegybe a legjobban sikerült 5 feladatot számítjuk be (összesen max. 15 pont). A fennmaradó 15 pontot a félév végén egy zárthelyi dolgozaton lehet megszerezni, melynek keretében egy programozási feladatot kell megoldani. Mintazárthelyi a Canvasben található.

A félév végi zárthelyit egy alkalommal meg lehet ismételni.

A zh írása során semmilyen (pl. hozott) segédanyag vagy szoftvereszköz nem használható azon kívül, amit az oktatók biztosítanak. Nevezetesen, a programozási feladat megírása során használható lesz egy C referencia: https://en.cppreference.com/w/c (valamint a kiemelt csoportoknak egy Python referencia: https://docs.python.org/3.5/library/index.html). Ezen kívül üres papírt és tollat lehet használni. A kommunikáció minden formája tilos. A szabályok megszegése a jegy megtagadását vonja maga után.

A beadott dolgozatok (röpdolgozatok, kisbeadandók, zárthelyik) plágiumvizsgálaton esnek át. Plágium gyanúja esetén az oktatók az érintett hallgatókat szóbeli vizsgán hallgatják meg, ahol a szóban forgó dolgozatot a hallgatónak meg kell védenie: válaszolnia kell a dolgozattal kapcsolatban feltett kérdésekre, és képesnek kell lennie a beadott kódon apró funkcionális változtatásokat végrehajtani. Sikertelen védés esetén a gyakorlati jegy elégtelen.

Az érdemjegy a következőképpen kerül meghatározásra. Az elégséges jegy eléréséhez 25 pontra van szükség, közepes 30 ponttól, jó 38 ponttól, jeles pedig 42 ponttól adható. Jeles érdemjegyet csak szóbeli vizsga teljesítésével lehet szerezni. A szóbelin a zárthelyi feladatot és a kisbeadandókat kell megvédeni, illetve egyéb elméleti kérdésekre kell válaszolni.

A zárthelyi időpontjai

A zárthelyiket a járványügyi helyzetre való tekintettel előreláthatólag online fogjuk megtartani, amennyiben a helyzet nem javul a félév végéig.

Ha a járvány enyhül, a zárthelyiket az egyetemen, a Lovardában, az Adatbázis- és a Nyelvi laborban fogjuk megtartani, alkalmanként 80-80 fővel. Ezek időpontjai később lesznek elérhetőek.

Irodalom