Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
UNIX ALAPÚ RENDSZEREK HASZNÁLATÁNAK OKTATÁSA A MŰSZAKI INFORMATIKUS KÉPZÉSBEN TEACHING UNIX BASED SYSTEMS USAGE IN COMPUTER SCIENCE CURRICULA
Szabó László Zsolt Sapientia Egyetem, Villamosmérnöki tanszék, Marosvásárhely Összefoglaló A UNIX alapú rendszerek (Solaris, Linux, FreeBSD, stb.) használatának alapos ismerete fontos a műszaki informatikus illetve informatikus diákok számára. Mivel a rendszerek használata hosszú tanulási időt igényel, a mai diákok nagy részénél ez az ismeret nem válik alapszintű tudássá. A cikkben a Sapientia Egyetem Marosvásárhelyi Karán történő UNIX oktatást szeretném ismertetni, illetve az alkalmazott módszerekkel és tantervvel kapcsolatos kérdéseket szeretnék felvetni, amelyek elősegíthetik ezeknek a rendszereknek a hatékonyabb oktatását. Jelenleg ezeknek a rendszereknek a használatát az operációs rendszerek tantárgy kapcsán oktatjuk elsősorban. Ez alapja lehet egy hangsúlyos bevezetőnek a felhasználói ismeretek vonatkozásában: a későbbi tantárgyak folyamán pedig folyamatosan próbáljuk érvényesíteni az egyszerre több operációs rendszer platformon történő oktatást.
Kulcsszavak oktatás, unix, linux, bolognai tanterv
Abstract Advanced knowledge of UNIX based operating systems (Solaris, Linux, Free BDS) usage is important for computer science students. The study of UNIX system usage require a long learning curve, therefore by most of the students this doesn't become a fundamental skill in the first 3-4 years of study. In this paper we present the teaching of UNIX usage at the Sapientia University, Targu Mures, Romania. Efficient teaching methods and presence of UNIX usage in the curricula are reviewed. We teach UNIX usage first of all connected to operating systems in the normal curricula. This could be the basis of knowing UNIX philosophy. Later in the curricula we try to introduce concepts and methods for various fields using two operating systems as platforms.
Keywords teaching, unix, linux, bologna curricula
1
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
1. Bevezető Dolgozatomban a UNIX/Linux alapú rendszerek oktatásának bolognai tanrendben való oktatásásnak lehetőségét próbálom körüljárni. Elsősorban a romániai felosztás szerinti számítástechnika szakkal foglalkozom (ez a magyarországi felosztás szerint leginkább a műszaki informatika szakot jelenti). UNIX alapú rendszereknek fogom nevezni a különböző UNIX változatokat valamint a Linux disztribúciókat (annak ellenére, hogy ez a fogalomhasználat nem a legtökéletesebb). A UNIX alapú rendszerek oktatása hagyományosan jelen van a műszaki oktatásban. A Linux disztribúciók, Free BSD, Open Solaris rendszerek megjelenése óta a a mindennapi használatban és oktatásban való jelenlétük is megváltozott. A rendszerek könnyen hozzáférhetőkké váltak intézményes kereteken kívül is, jelentőset fejlődött a grafikus felhasználói interfészük, azt sejtetve, hogy az oktatásban asztali gépeken is egyre több diák használhatja ezeket a rendszereket. Az eredeti öt éves tanrend helyett kialakított bolognai tanrend bizonyos leszűkítésekkel illetve átalakított tantervekkel járt, így érdemes megvizsgálni mennyire kap illetve kaphat helyet a jelenlegi tantervekben a UNIX alapú rendszerek oktatása illetve használata, és milyen eredményekkel jár ez a képzés végén. 2. Jelenlét a tananyagban A továbbiakban a UNIX alapú rendszerek jelenlétét illetve e jelenlét hiányosságait mutatom be a Sapientia Egyetem marosvásárhelyi Számítástechnika szak tananyagában. A UNIX használata explicit módon egyetlen tantárgy oktatása során kerül a tananyagba: Az operációs rendszerek esetében, amikor a tantárgy ilyen rendszereket használ az oktatott fogalmak illusztrálására. A többi esetben a rendszer mint valamilyen programnyelv oktatása során használt környezet jelenik meg (Java, C++, C) vagy mint hálózati megoldásokat bemutató tantárgy alternatív platformja (számítógép hálózatok, web programozás, osztott rendszerek). Mindez elég sok lehetőséget jelent amelyek elősegíthetik a rendszerek használatának megismerését. Az operációs rendszerek esetében, mivel a fogalmakat Solaris vagy Linux alapú rendszer programozás segítségével oktatjuk, ennek nehézsége miatt jónak láttuk egy bevezető tantárgy indítását, amely klasszikus UNIX felhasználói fogalmakat oktat. Bár a tantárgy Operációs rendszerek I név alatt került a tanrendbe, a tartalma a klasszikus UNIX parancsok és segédeszközök valamint a héjprogramozás fogalmaira koncentrál (lényegében megfelel az ACM tananyag ajánlásában megjelenő "Scripting" tárgynak [1]). Annak ellenére, hogy a tananyag elsősorban a UNIX terminál és parancsok használatával foglalkozik, érintenünk kell a mai Linux disztribúciók használatát, amire igen kevés idő marad. Az zsúfolt tanrend pedig szinte egyáltalán nem ad lehetőséget ennek kiegészítésére fakultatív jellegű foglalkozásokkal. A továbbiakban az Operációs rendszerek törzsanyagában UNIX alatti rendszerprogramozással illusztráljuk a fogalmakat (folyamatok, folyamatok közti kommunikáció, szemaforok, szálak, stb.): ezt az említett bevezető tananyag lényegesen könnyíti.
2
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
A programozási nyelvek oktatása folyamán a diákok nálunk a C++ illetve Java nyelvek esetében találkoznak UNIX alapú rendszerrel (a Java esetében már olyan fejlesztő környezetet használnak, ami nagyrészt elrejti az operációs rendszert – Eclipse, NetBeans). Bár néha ez más tantárgyak esetében is előfordul, a Linux használata nagymértékben függ a gyakorlatokat vezető tanárok preferenciáitól. A webprogramozás folyamán is előkerül a Linux használatának lehetősége, de itt amennyiben lehetőség van rá és választhatnak, a diákok mindenképpen a Windows alatti fejlesztést preferálják, mert azt megszokott rendszerükön tehetik. A grafikus felhasználói felületek oktatásába sem kerül be Linux alatti felületek oktatása. 3. Infrastruktúra A UNIX alapú rendszerek használata nem követel ma már különösebb infrastruktúrát, hiszen a Linux disztribúciók mellett, az igazi UNIX-ok is, mint az OpenSolaris használhatóak közönséges PC-ken. A laborokban könnyen megoldható két operációs rendszer indítása, így elvileg bármilyen tárgy oktatása Linux-on is lehetséges. Egy adomány jóvoltából sikerült egy labort Sun SPARC gépekkel felszerelnünk (Solaris operációs rendszerrel). Itt könnyen beállítható Sun specifikus anyagokhoz a gépeken futó rendszer. Ezek az anyagok az egyetem Sun Academic Initiative programjában való részvételén keresztül Interneten elérhetőek (Sun Learning Connection) és fakultatív tanfolyamok anyagaiként használhatóak Solaris rendszergazdai illetve Java programozói képzésben. Ennél érdekesebb kérdés a Linux/Solaris rendszerek diákok otthoni gépeire való installálása, amely külön konzultációs alkalmakat igényel. Tapasztalataink szerint sokan kipróbálják ezt, de állandó felhasználók kevesen maradnak. Igen zavaró ebben a folyamatban a Linux disztribúciók közti nagy különbség a rendszerek grafikus felületeken keresztüli karbantartásában. 4. Módszerek A tanterv általában 2+2 (heti 2 óra előadás és 2 óra gyakorlat) felépítésű oktatást ír elő a egy-egy tantárgynál. Ez a bizonyos tárgyaknál nem hatékony. A héjprogramozás (de más programozási nyelvek oktatásának esetében is) a rövidebb előadás és gyakorlati tevékenységek (20-30 perces szakaszok) váltakozása hatékonyabbnak tűnik [2,4]. Ez a jelenlegi struktúrában nem valósítható meg, mert ez a fajta tevékenység eleve kis csoportok képzésére irányul. A UNIX használat igen erősen kötődik egy olyan hagyományhoz [5], amelyet az írott tananyagokon nehezen közvetítenek. A diákokkal való személyes kapcsolat, feladatok közös megoldása, sokkal fontosabb, mint más tananyagok esetében. A UNIX használat könnyen tanulható kiscsoportos tevékenységek esetén, és igen nehezen írott anyagokból. Az héjprogramozás illetve operációs rendszerek a tárgyak az esetében igyekeztünk a fenti szempontokat szem előtt tartani, annak ellenére, hogy ezt a tanterv struktúrája megnehezíti. Úgy tűnik, hogy programozási nyelvek, technológiák oktatásánál is ez a hatékonyabb stratégia.
3
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
5. A UNIX/Linux használat bővítési lehetőségei a tananyagban A legtöbb gyakorlati foglalkozást igénylő tárgy oktatható jelenleg UNIX alapú rendszerek használatával. Jelenleg úgy gondoljuk, hogy amennyiben lehetséges, a tantárgyak oktatását két platformon kell megoldani. Fontosnak látjuk ezt az alább felsorolt tárgyak esetében. Számítógép hálózatok. Jelenleg a tárgyat egy féléves tantárgyban oktatjuk, amelyben elsősorban a protokollokhoz kötődő fogalmak kerülnek bevezetésre. A következő évben ez ki fog egészülni egy második félévvel, amely a lokális hálózatokat mutatja be. Itt a UNIX alapú rendszerek hálózati alkalmazásai is bemutatásra kerülnek. Osztott rendszerek. Ebben az esetben is jól használhatóak a heterogén felépítésű rendszerek a tananyag bemutatására, és ez már jelenleg is megtörténik, Linux szerveren futó adatbázisok használatával. Grafikus felhasználói interfészek. Ennél a tárgynál is célszerű a tervezés bemutatása több platformon. Az elmúlt években ezt a kérdést elsősorban a Java alatti interfészek használatával próbáltuk megoldani. A jövőben viszont indokolt lenne a Qt vagy GTK bemutatása is a tananyagban, mint [3] esetében. Valós idejű alkalmazások. Mikrokontrollerek illetve mobil telefonok operációs rendszereként való felhasználás (például Google Android). 6. Következtetések A jelenlegi helyzetben tudomásul kell venni, hogy a diákok legnagyobb része számára a képi gondolkodás, a multimédia eszközök és a grafikus interfészek használata jelentik a hangsúlyosabb tanulási és kifejezési formákat is. Annak ellenére, hogy a Linux elterjedése és a nyílt forráskódú mozgalom következtében a Linux disztribúciók grafikus felhasználói felülete látványosat fejlődött, az egyetem első 3-4 évében kevés diák esetében válik UNIX alapú rendszer mindennapi használatúvá. Néhány disztribúció (Ubuntu, OpenSuse) látványos változást hozott a Linux grafikus interfészén keresztüli használatában, ennek ellenére, a hagyományos parancsmódú rendszerhasználat nem küszöbölhető ki. Ezt a diákokban tudatosítani kell. A bolognai tananyag során a következő célokat próbáljuk az oktatásban érvényesíteni:
nem "Windows szerű" operációs rendszert használunk, annak ellenére, hogy néhány Linux disztribúció ezt sugallja a kíváncsiság és érdeklődés felkeltése: gyakorlatilag ezt tekintjük legfontosabb célnak, és ez a UNIX/Linux megismerésének egyetlen mozgatórugója heterogén hálózati rendszerek megszokása, elfogadása a Linux használatának ismerete szerver oldali és hálózati alkalmazások esetében, ahol a UNIX alapú és nyílt forráskódú rendszerek használata kimondottan előnyös UNIX/Linux rendszer karbantartás feladatainak elfogadása annak tudatosítása, hogy a UNIX használatának megtanulása hosszú időt és folyamatos tanulást igényel a UNIX hagyomány jelenlétének ismertetése
Irodalomjegyzék
4
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
[1] Computing Curricula 2001. Computer Science. IEEE-CS, ACM, 2001. [2] Janice J. Heiss (2008) From Java Platform Improvements to Better Teaching: A Conversation With Java Champion Cay Horstmann, http://java.sun.com/developer/technicalArticles/Interviews/community/horstmann_qa.htm l (2008 június 1.) [3] Gregorics, T., Nacsa, R. (2005) Alkalmazás készítés oktatásának újszerű megközelítése, IF2005, Informatika a felsőoktatásban 2005 Debrecen, 2005. augusztus 24-26. [4] Vladuiu M., Negoita C., (2004) Reflective Blended Methods for Teaching and Learning Operating Systems, Procedings of RoEduNet International Conference, Iasi June 5-6, 2004. [5] Raymond, E. S. (2004) The Art of UNIX Programming, Addison-Wesley.
5