A PROGRAMOZÁS ALAPJAI TÁRGY OKTATÁSÁNAK KÉRDÉSEI AZ INFORMATIKUS KÉPZÉSBEN

Hasonló dokumentumok
SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

Neumann János Egyetem GAMF Műszaki és Informatikai Kar

A SZAKMAI GYAKORLAT KÖVETELMÉNYEI

SZÁMVITEL INTÉZETI TANSZÉK TANTÁRGYI ÚTMUTATÓ. Számvitel 2. Gazdasági informatikus szak Levelező tagozat 2016/2017. tanév II.

A nappali tagozatra felvett gépészmérnök és műszaki menedzser hallgatók informatikai ismeretének elemzése a Budapesti Műszaki Főiskolán

PROGRAMTERVEZŐ INFORMATIKUS ALAPKÉPZÉSI SZAK

kodolosuli.hu: Interaktív, programozást tanító portál BALLA TAMÁS, DR. KIRÁLY SÁNDOR NETWORKSHOP 2017, SZEGED

Interaktív közösségteremtő és tanulásmódszertani kurzus a Sikeres egyetemi éveket Alapozó Stratégia fejlesztése programtervező informatikusok körében

Mérnökinformatikus alapszak (BSc)

Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):

Adatbázis rendszerek. dr. Siki Zoltán

Szoftver-technológia I.

SZÁMVITEL INTÉZETI TANSZÉK TANTÁRGYI ÚTMUTATÓ. Komplex elemzés. Pénzügy és számvitel alapszak Nappali tagozat 2015/2016. tanév II.

TANTÁRGYI ÚTMUTATÓ. Konszern számvitel alapjai. tanulmányokhoz

Információs technológiák 0. Ea: Infó Mátrix (2015)

Mérnök informatikus mesterképzési szak. képzési és kimeneti követelményei

MÉRNÖKINFORMATIKUS ALAPSZAK TANULMÁNYI TÁJÉKOZATÓ 2017.

MÉRLEG- ÉS EREDMÉNYELEMZÉS c. tárgy tanulmányozásához

TANTÁRGYI ÚTMUTATÓ. Számvitel 2. Gazdaságinformatikus alapszak Nappali tagozat 2015/2016. tanév II. félév

Mérnök informatikus (BSc)

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

TANTÁRGYI ÚTMUTATÓ. Számvitel alapjai. c. tárgy tanulmányozásához

Szlávi Péter: Szakmai önéletrajz

Adatbázis rendszerek Info MÁTRIX

Informatika tanári mesterszak

A szemantikus világháló oktatása

Számítástechnika I. 0. Ea: Infó Mátrix (2018)

üzemmérnök-informatikus

ALAPKÉPZÉS SZAKINDÍTÁS

R ENDŐRTISZTI F ŐISKOLA SZÁMÍTÁSTECHNIKAI ÉS INFORMATIKAI KÖZPONT T ÁJÉKOZTATÓ ÉS T EMATIKA

K R I M I N A L I S Z T I K A I S Z A K É R T Ő

Bevezetés A harmadik szoftverkrízis korát éljük! Szoftverkrízisek: 1. nincs elég olcsó: hardver, szoftver, programozó 2. nincs elég olcsó: szoftver, p

Óratípusok. Dr. Nyéki Lajos 2016

A programozó matematikus szak kredit alapú szakmai tanterve a 2004/2005. tanévtől, felmenő rendszerben

INFORMATIKA OKTATÁS A KLTE-N 1

ÚTMUTATÓ. I. évfolyam. Felsőoktatási szakképzés Gazdaságinformatikus szakon. 2016/2017 I. félév

II. ADATLAP - Programmodul részletes bemutatása

Motivációs tesztek felépítése

Részletes tantárgyprogram és követelményrendszer

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA

Számvitel mesterszak. Konszolidált beszámoló összeállítása és elemzése. Nappali tagozat. Tantárgyi útmutató

Neptun kódja: J30301M NEMZETKÖZI KÖZJOG 1. Előfeltétele: 20302M Helye a mintatantervben: 3. szemeszter Meghirdetés: őszi szemeszter

A MATEMATIKAI SZOFTVEREK ALKALMAZÁSI KÉSZSÉGÉT, VALAMINT A TÉRSZEMLÉLETET FEJLESZTŐ TANANYAGOK KIDOLGOZÁSA A DEBRECENI EGYETEM MŰSZAKI KARÁN

A TANTÁRGY ADATLAPJA

Informatika tagozat osztályozóvizsga követelményei

Bevezetés a számvitelbe

Teljesítmény és erőforrás controlling

II. évfolyam BA TANTÁRGYI ÚTMUTATÓ. Számvitel alapjai. 2012/2013 I. félév

KOMPLEX ELEMZÉS c. tárgy tanulmányozásához

A szoftverfejlesztés eszközei

Gépészmérnöki és Informatikai Karának

Bevezetés. Dr. Iványi Péter

Konszolidált éves beszámoló összeállítása és elemzése

TÁVOKTATÁSI TANANYAGOK FEJLESZTÉSÉNEK MÓDSZERTANI KÉRDÉSEI

TANTÁRGYI ÚTMUTATÓ. Regionális gazdaságtan

A TANTÁRGY ADATLAPJA

Műszaki menedzser alapszak

SSC specialista szakirányú továbbképzési szak

A programozó matematikus szak kredit alapú szakmai tanterve a 2003/2004. tanévtől, felmenő rendszerben

Mérnökinformatikus felsőoktatási szakképzés Information Technology at ISCED level 5 tanterve

Számítógépek architektúrák. Architektúrák

TANTÁRGYI ÚTMUTATÓ. Logisztika. tanulmányokhoz

Minőségügyi rendszerek szakmérnök szakirányú továbbképzés

TANMENET 2018/2019. tanév

Számítógépes alapismeretek

SZAKDOLGOZAT. Kiss Albert

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

0405 INFORMATIKA ÁGAZAT

MŐSZAKI INFORMATIKAI MÉRNÖKASSZISZTENS. OKJ száma:

A tantárgyelem kódja: KIT0301G

Adatbázisok-1 előadás

A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL. Kuki Attila Debreceni Egyetem, Informatikai Kar. Összefoglaló

MISKOLCI EGYETEM Gépészmérnöki és Informatikai Kar

Pénzügyi számvitel 1.

Számvitel 1. c. tárgy tanulmányozásához TANTÁRGYI ÚTMUTATÓ. Gazdaságinformatikus alapszak Levelező tagozat 2016/2017. tanév I.

6. A tantervek szerepe az oktatás tartalmi szabályozásában

A tantárgyelem kódja: KIT0401G. gyakorlat A tantárgyelem jellege: A tantárgyelem oktatásának ajánlott 5. félév

Szoftverfejlesztő megnevezésű szakképesítés

Programtervező informatikus MSc nappali tagozat ajánlott tanterv 2018

Programtervező informatikus MSc nappali tagozat ajánlott tanterv 2018

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Vezetői és humán számvitel

ÁLLAM ÉS JOGTUDOMÁNYI KAR TANTÁRGYI PROGRAMOK JOGI FELSŐOKTATÁSI SZAKKÉPZÉS LEVELEZŐ TAGOZAT

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

A TANTÁRGY ADATLAPJA

TANTÁRGYPROGRAM 2015/16. ŐSZI FÉLÉV

Miskolci Egyetem Kémiai Intézet. Kockázatbecslés TANTÁRGYI KOMMUNIKÁCIÓS DOSSZIÉ

Széchenyi István Egyetem Műszaki Tudományi Kar

A számítógépes feladatok a várt megoldáshoz egyértelmű utalásokat tartalmazzanak.

Adatstruktúrák Algoritmusok Objektumok

ALKALMAZOTT ÁRAMLÁSTAN MFKGT600654

Tanulmányok alatti vizsgák

ÚTMUTATÓ. I. évfolyam Üzleti szakügyintéző szakképesítés Államháztartási szakügyintéző szakképesítés. 2012/2013 I. félév

A KREDITALAPÚ MODULÁRIS RENDSZEREK, MINT A CURRICULUMFEJLESZTÉS ÚJ MINŐSÉGE

A TANTÁRGY ADATLAPJA

Gépipari Technológiai Intézet

GEOINFORMATIKA II. Földtudományi mérnöki MSc, Geoinformatikus-mérnöki specializáció. 2018/19 I. félév TANTÁRGYI KOMMUNIKÁCIÓS DOSSZIÉ

Társadalmi és vizuális kommunikáció

A Magyar Rektori Konferencia víziója a KKK-k átdolgozásáról, a fejlesztés menete

Átírás:

A PROGRAMOZÁS ALAPJAI TÁRGY OKTATÁSÁNAK KÉRDÉSEI AZ INFORMATIKUS KÉPZÉSBEN Kovács László, Wagner György Miskolci Egyetem, Általános Informatikai Tanszék ÖSSZEFOGLALÁS Az elemzés fő célja, hogy bemutassa a Programozás alapjai c. tantárgyhoz kapcsolódó oktatási tartalmakat, kitekintve mind a hazai mind a nemzetközi megvalósulásokra és összevetve a főbb jellemzőket. A cikk részletesen bemutatja a Miskolci Egyetemen megvalósított tematikát és elemzi a folyamatos adaptációk okát és következményeit. ABSTRACT The aim of the study is to analyze the different syllabus contents at national and international levels, regarding the course Foundation of Programming. This course is a key module in computer curricula and it requires a periodic fine-tuning for adaption to the current requirements. The article presents a detailed description of teaching Foundation of Programming at the University of Miskolc, too. KULCSZAVAK/KEYWORDS Programozás oktatása, tanterv, ACM Computing Curricula, informatikus képzés Teaching of programming, syllabus, ACM Computing Curricula, programmes in IT BEVEZETÉS Informatikus szakjaink képzésében a legfontosabb területnek tekinthető a programozás, különösen a Miskolci Egyetemre mondható el ez a megállapítás. A programozás szerepét nagyban erősíti, hogy a végzettek nagyrészt ilyen jellegű elhelyezkedési lehetőségek állnak rendelkezésre. Végzés után akár rendszergazdai feladatokat fognak ellátni (shell programok vagy egyéb makrók készítése, futtatása), akár programfejlesztők lesznek, az őket alkalmazó cégek visszajelzései alapján erre a tudásra szükségük lesz. A

programozás vonulatának első lépcsőfoka a Programozás alapjai című tantárgy. E tárgyban megszerzendő kompetenciák nélkül nem lehet sikeres a további, ráépülő ismeretek megszerzése sem. Sajnos az utóbbi időben a sikerességi ráta az informatikus hallgatók körében igen alacsonynak tekinthető, országosan is 46% körül van, a Miskolci Egyetemen ez az érték az első három alapszakos évfolyamra vonatkoztatva 41%-on áll és van olyan hazai intézmény ahol 30% a sikeres végzési arány (MRK 2013). A végzettek számának csökkenésével párhuzamosan a végzetteket foglalkoztató cégek visszajelzései, az új szakmai igények is arra ösztönöztek minket, hogy átgondoljuk és frissítsük a meglévő tananyagainkat. A megfelelő tematika kialakítása, és annak megvalósítása meghatározó jelentőségű a hallgatók programozással összefüggő ismereteinek szempontjából. Az elemzés során egyik fő forrásunk a máshol futó kurzusok vizsgálata volt. TEMATIKÁK ÖSSZEVETÉSE NEMZETKÖZI ÉS HAZAI SZÍNTÉREN A programozás alapjait érintő tantárgyak tartalmát illetően többféle megoldással találkozhatunk a hazai és nemzetközi téren. Egyik fő irányadó elvnek az ACM Curricula Recommendations (ACM 2013) szabvány tekinthető. Az ACM szervezet az informatikai alapképzés területén öt fő szakot különböztet meg: Computer Science (programozás tudomány), Computer Engineering (számítógép mérnök), Information Systems (információs-rendszer szervező), Information Technology (információsrendszer technológia), Software Engineering (szoftver mérnök). A programozás alapjai más és más hangsúlyokat kapnak az egyes szakokon belül, mint az alábbi táblázat is mutatja (1. táblázat). Az ACM ajánlásokból érdekességként kiolvasható, hogy a szoftverfejlesztő mérnökök szakon a programozás alapjai cím alatt egy tágabb szakterületi kört megalapozó tematika jelenik meg, mely kitér az operációs rendszerek, hálózatok és a szoftver fejlesztés alapjaira is. Az egyes kurzus megvalósításokat tekintve is igen változatos képet mutat a felsőoktatás. Mint az elemzésből látható (2. táblázat), az angolszász országokban elsősorban az objektum orientált programozásra helyezik a hangsúlyt, a procedurális nyelvek már nem dominálnak. További érdekesség, hogy ezen bevezető tárgyba sokszor beveszik a szoftverfejlesztés alapfogalmainak a tárgyalását is, a programozást a szoftverfejlesztés keretében mutatják meg.

1. táblázat: A programozás alapjai tárgy súlypontjai szakonként szak Computer Science Comp. Engineering Inf. Systems Inf. Technology Softw. Engineering súlypontok algoritmusok jellemzése, adatstruktúrák, rekurzió, esemény vezéreltség, objektum orientáltság, biztonság és védelmi követelmények algoritmusok jellemzése, adatstruktúrák, rekurzió, esemény vezéreltség, objektum orientáltság, API elemek használata program fejlesztés életciklus alapok, adatstruktúrák, adatbázis elérés, fejlesztési paradigmák, tesztelés áttekintése Adatstruktúrák, alapelemek (struktúrák, vezérlés), objektum orientált programozás, algoritmusok a problémamegoldásban, esemény vezérelt programozás informatikai alapfogalmak (directory), algoritmusok jellemzése, adatstruktúrák, gépi kód reprezentáció, OS alapok, szoftver fejlesztési alapok, felhasználói felületek Ezek mellett megemlíthető az a sajátosság is, hogy sok esetben a nem klasszikus procedurális, objektum-orientált nyelveket mutatják be, hanem a speciálisabb funkcionális vagy logikai nyelveket tárgyalják, melyek még nagyobb absztrakciót igényelnek a hallgatóktól. A kapott eredményeket az ACM ajánlásokkal összevetve elmondható, hogy az ajánlásokat csak részlegesen követik a megvalósult tematikák, sokkal gazdagabb témakörlista jött létre. A hazai intézményekben leadott programozás alapjai című tantárgyak tematikáját elemezve már egy sokkal egységesebb kép rajzolódik ki (3. táblázat), köszönthetően a szigorúbb akkreditációs előírásoknak. Nálunk még elsősorban a klasszikus nem objektum orientált nyelvek kapják a fő szerepet. Domináns nyelv a C, csak elvétve jelennek meg első bevezető tárgyban az OOP nyelvek (C++, Java). Emellett néhány további egzotikusabb nyelvre is történik hivatkozás (pl. ADA).

2. táblázat: A programozás alapjai tárgy témakörei (nemzetközi) Témakör gyakoriság Alapfogalmak (vezérlés, változók) 64% Adatstruktúrák 61% Procedurális programozás 52% Objektum orientált programozás 81% Funkcionális programozás 29% Algoritmus elemzés 32% Szoftver fejlesztés 41% Operációs rendszerek, hálózatok 2% Komplexitás elemzés 8% Dataflow elemzés 5% Logikai programozás 18% További érdekesség, hogy náluk sokkal kisebb témakört fednek le a tematikák, az kiválasztott anyagot részletesebben mutatják be az előadásokon. Ezzel nagyobb segítséget is kaphatnak a hallgatók, hiszen nem nekik kell a részleteket kidolgozni a gyakorlati megvalósításokhoz. 3. táblázat: A programozás alapjai tárgy témakörei (hazai) Témakör gyakoriság Alapfogalmak (vezérlés, változók) 100% Adatstruktúrák 28% Procedurális programozás 86% Objektum orientált programozás 14% Funkcionális programozás 0% Algoritmus elemzés 0% Szoftver fejlesztés 14% Operációs rendszerek, hálózatok 14% Komplexitás elemzés 0% Dataflow elemzés 0% Logikai programozás 0% C nyelv 86% Java nyelv 14% Más nyelv 28%

TEMATIKAI KIALAKÍTÁSA A MISKOLCI EGYETEMEN A felsőoktatás az elmúlt években több jelentős változáson ment keresztül. Ezek közül az egyik a korábbi öt éves ciklust felváltó Bsc-Msc képzés bevezetése. A Miskolci Egyetemen 1997-től két képzés (főiskolai szintű programozó matematikus szak, egyetemi szintű műszaki informatikai szak) tantervébe került be a Programozás alapjai című tantárgy. A tárgy tematikájának kialakításakor szempont volt, hogy a különböző középiskolákból érkező diákok ismeretei jelentősen eltérhetnek egymástól. Az elsődleges cél az volt, hogy a félév során alakuljon ki egyfajta programozási készség. Ismerjenek meg klasszikus algoritmusokat, célszerű adatszerkezeteket, megfelelő tárolási formákat. Figyelembe lett véve, hogy a képzési időbe belefér több programozási nyelv megismertetése is. Megvizsgálva a hasonló képzést folytató külföldi egyetemek tantervét, és képzésük eredményességét (felvett illetve kibocsátott hallgatók száma), első programozási nyelvként a következők jöttek szóba: PASCAL, ADA, BASIC, C, FORTRAN, LISP. Fontos szempont volt, hogy lehetőleg interaktív környezet kerüljön kialakításra. Ha lehet, a fejlesztőkörnyezet támogassa a program szerkesztését, fordítását, szintaktikai hibák beazonosítását, esetlegesen futó program debug-olását. A programozási nyelv megválasztásakor tehát nem elsődlegesen a nyelv volt a meghatározó. Ezek után három programozási nyelv maradt versenyben: PASCAL, BASIC, LISP. Az alap BASIC legfontosabb hátránya tulajdonképpen a rugalmassága volt: a szintaktika nem írta elő a változók kötelező deklarálását, és meglehetősen kevés kötelező elemet tartalmazott. LISP-re nem volt könnyen kezelhető, elterjedt fejlesztőrendszer, így a PASCAL (Borland: Turbo Pascal, majd 2000-től a Free Pascal) maradt. A félév első négy hetében a nyelv alapvető szintaktikai elemei kerültek sorra, majd egyre nagyobb arányban az algoritmusok. A félév utolsó heteiben A számítógép programozás művészete című könyv alapján elterjedt keresések, illetve rendezések kerültek tárgyalásra (Knuth 1994), valamint a dinamikus memória kezelés, illetve az arra épülő láncolt listák. A negyedik héten kiadásra kerültek a félév végén beadandó, és kötelezően megvédésre kerülő félévi feladatok. Közepes illetve jó jegyért mindenkinek más, de sablon feladatot kellett megoldani. Közepesért egy rendezett file-ba kellett tudni felvinni új adatokat, módosítani, kikeresni, illetve törölni azokat. Jó jegyért két ugyanilyen, de egymással kulccsal összekötött file-t kellett ugynígy kezelni. Jelesért egyedi feladatok kerültek kiadásra (postscript megjelenítő, szintaktika ellenőrző, stb). A félév végén ezeket a feladatokat kellett bemutatni, illetve megvédeni, majd a félév elméleti anyagából felelni. A tapasztalat szerint több próbálkozás

után a hallgatók mintegy 80-85%-a kapott aláírást, és szerzett nem elégtelen gyakorlati jegyet. A következő félévekben ezekre az ismeretekre támaszkodva először a C, majd a C++ programozási nyelv került tárgyalásra. Érdekes módon a végzős hallgatók jelentős része ha programozási jellegű diplomamunkát készített, azt PASCAL-ban valósította meg. AZ ALAPSZAKOS KÉPZÉS TÁRGYTEMATIKÁJA Sajnos az idő múltával a felvételre kerülő hallgatók jelentős része érkezett bárminemű programozási ismeret nélkül, illetve az informatika szak viszonylagos elismertsége miatt jelentkeztek olyan hallgatók is, akik nem igazán érdeklődtek az informatika és annak jellemző tárgyai (Operációs rendszerek, Adatbázisok, Architektúrák, Hálózatok, stb.) iránt. Ennek megfelelően módosítani kellett a tematikát. Mivel lecsökkent a képzési idő, így már nem fért bele, hogy Pascal, illetve C is oktatásra kerüljön. Többszöri egyeztetés után tanszékünk a C programozási nyelvet választotta (más egyetemekhez hasonlóan). Ennek megfelelően a tematika átdolgozásra került. Kimaradtak illetve csökkent az aránya a sztring kezelésnek, a file kezelésnek, a dinamikus memória kezelésnek. Mivel a hallgatók befogadó készsége jellemzően erősen csökkent, így szükségessé vált a gyakorlatokon történő erősebb számonkérés (kis dolgozatok), egyáltalán az órai munka ellenőrzése. Mivel sok esetben még ez sem vezetett megfelelő eredményre, így szigorítani kellett a feladatok, beszámolók pótlásának módját, illetve lehetőségét. Az aláírás végleges megtagadásának bevezetése sem hozott jelentős javulást. A következő években a gyakorlati órákon elhangzó feladatok utólagosan is hozzáférhetők lesznek egy javasolt megoldással együtt. Ezzel várhatóan a később ébredő hallgatók is utolérhetik magukat. ÖSSZEFOGLALÁS A Programozás alapjai című tantárgy az informatikus képzés alapvető fontosságú tárgya. A tantárgy tartalmának kialakítása döntően kihat a hallgatók programozási kompetenciáinak fejlődésére. A nemzetközi példák alapján látható, hogy igen széles határok között változhat a tartalom, kezdve a gyakorlat orientált megközelítésektől egészen az absztrakt algoritmus elemzésekig találhatunk példákat. A hazai felsőoktatási intézményeknél egy homogénebb paletta figyelhető meg. A Miskolci Egyetemen kialakított szakmai tanterv is ehhez az irányzathoz konvergált az utóbbi években.

Napjaink egyik fontos feladata, hogy kisebb szakmai előképzettséggel és motivációval érkező belépő hallgatóknak több esélyt adjunk az igényelt kompetenciák megfelelő elsajátításához. Köszönetnyilvánítás A kutató munka a Miskolci Egyetem stratégiai kutatási területén működő Mechatronikai és Logisztikai Kiválósági Központ keretében valósult meg. This research was (partially) carried out in the framework of the Center of Mechatronics and Logistics at the University of Miskolc. HIVATKOZOTT FORRÁSOK 1. ACM 2013: http://www.acm.org/education/curricula-recommendations 2. MRK 2013: Magyar Rektori Konferencia Informatikai Bizottság szakterület összefoglalója 3. Knuth 1994: Donald E. Knuth: A számítógép programozás művészete (Műszaki Könyvkiadó, 1994. Budapest, ISBN 963-16- 0078-5) Szerzők Kovács László PhD, habil egyetemi docens, tanszékvezető, oktatási dékánhelyettes Miskolci Egyetem, Általános Informatikai Tanszék, 3515 Miskolc- Egyetemváros kovacs@iit.uni-miskolc.hu Wagner György egyetemi tanársegéd Miskolci Egyetem, Általános Informatikai Tanszék, 3515 Miskolc- Egyetemváros wagner@iit.uni-miskolc.hu