A századunk elejétől kezdődő technológiai és információs forradalom egyik természetes következménye, hogy ezek egyes elemei mára már oktatásunk szerves részét képezik (laptopok és tabletek, IKT-eszközök, e-learning és open course lehetőségek, stb.).
2012-től kezdődően egy új, kifejezetten numerikus számításokat/szimulációkat és html/TeX megjelenítést ötvöző Python kernel alapú interkatív jegyzetfüzet kezdett teret nyerni a számítástudománnyal és számításmatematikával foglalkozó észak-amerikai kutatók körében. Felsőoktatásban az a bevett szokás, hogy a hallgatói feladatsorokat pdf formátumban tesszük közzé. Ezzel szemben az interaktív jegyzetfüzetben a feladatsorok olvasásán, szerkesztésén és kommentelésén túl lehetőségünk van előre vagy általunk megírt szimulációkat is futtatni. Az IPython notebook közel tíz éves fejlesztés után 2011 nyarán az EuroSciPy 2011 konferencián mutatkozott be a nagyközönség előtt [IPython, Fernando Perez: IPython notebook]. Fernando Perez alapító és társai év végén pedig kiadták az első hivatalos IPython 0.12-es verziót. A projekt hozzájárulhatott ahhoz, hogy 2014-re a legjobb 39 amerikai egyetem közül 27-ben Pythont használtak, és így a Python lett a legnépszerűbb programozási nyelv bevezető számítástudományi kurzusok esetében [Philip Guo: Python].
De miért is ért el ekkora sikert ez a projekt?
Előnyök és hátrányok
Az egyik legnagyobb vonzereje ennek a füzetnek, hogy teljes mértékben ingyenes. További fontos tényező a számításmatematikai társadalomban jelenlévő „Open source = Better Science” mozgalom is [numfocus.org]. Ezáltal a jegyzetfüzet kiváló lehetőséget ad a kutatók eredményeinek prezentálására, tényleges kutatómunkára és ennek következményeként oktatási platform bevezetésére is.
A jegyzetfüzetek elérhetők a legelterjedtebb operációs rendszereken (Linux, Mac OS, Microsoft Windows). Habár többnyire számítógépekre telepítik a szükséges csomagokat [Github], lehetőségünk van felhőalapú szolgáltatlást is igénybe venni (Sage Math Cloud, Wakari). Ekkor akár tabletről, akár mobilról is futtathatunk számításokat külföldi szerveren. Ha ezt az opciót választjuk, akkor egy csoportos beadandó/közös kutatómunka esetén ugyanazt a jegyzetfüzetet egyszerre többen is szerkeszthetjük.
A hallgató a jegyzetfüzet használata során megismerkedik a Python nyelvvel, az alapvető html és TeX parancsokkal. Az oktató tarthat olyan előadást, amelynek során a jegyzetfüzet egy eszköz a tananyag támogatásához. Továbbá gyakorlatot is tarthatunk ilyen módon, ahol ideális esetben a hallgatók már a jegyzetfüzetükben oldják meg a kitűzött feladatokat. Ez a fajta oktatási technika pedig az aktív tanulást segíti elő.
Hátrányként említhető meg, hogy a telepítés egy gyakorlottabb felhasználó számára is nehézkes. Továbbá a környezet demonstrálásra, kisebb méretű feladatok megoldására alkalmas. A többezer soros kódokat természetesen már a számunkra leginkább kényelmes editorba fogjuk begépelni.
Kiterjesztés és felsőoktatási felhasználás
Pontosan az open source mozgalom következményeként az eredeti IPython projektet olyan cégek támogatták, mint a Google vagy a Microsoft. Sőt, még az Európai Unió Horizont 2020 programja is kiemelten kezdte támogatni a projekt kiterjesztését. Ennek következménye lett az, hogy 2014-től kezdődően az IPython projekt a Project Jupyter része [Jupyter]. Azaz a fő cél az lett, hogy az eddigi Python kernel mellett más nyelveket is kombinálhassunk, és használhassuk a jegyzetfüzet adta előnyöket. A Jupyter projektben több, mint 40-féle kernelt telepíthetünk. A teljesség igénye nélkül a népszerűbbek: C++, C#, Java, Scala, R, Fortran, Octave, Julia, php, bash stb. Ezenfelül olyan népszerű kereskedelmi matematikai csomagokkal is kompatibilis, mint a MATLAB vagy a Wolfram Mathematica.
Ezekkel a nyelvekkel pedig az alkalmazhatóság és a lehetséges oktatói célközönség széles tömege nyílik meg előttünk. Ezt a felületet szinte az összes természettudományi ág, mérnöki tudományok, informatikai tudományok felhasználják numerikus szimulációkra vagy kód demonstrálásra.
Egy oktatási projekt keretében együttműködünk a Jupyter projekt egyik vezető fejlesztőjével, Jessica Hamrickkel (UC Berkeley, Computational Cognitive Science Lab). Ő készített tavaly nyáron egy oktatás alapú felmérést a jegyzetfüzet kapcsán [Github]. Ezekből a nyers adatokból az oktatási szempontból érdekeseket dolgoztunk fel.
A fenti statisztikában szembetűnő, hogy nagyméretű előadások tartására is alkalmas a környezet, de tipikusan gyakorlatokra használják fel.
A legnagyobb felhasználó közeget az „Undergraduate”, azaz BSc és BA hallgatók biztosítják. Figyelemre méltó, hogy már középiskolában is bevezették ezt a fajta technikát. Professional event alatt általában cégek szakmai összejövetelét kell érteni. A felmérésben a cégek nem vettek részt, holott a Jupyter közösség felét ténylegesen cégek és kormányzati munkatársak alkotják.
Nem meglepő módon a Python messze a legnépszerűbb nyelv az oktatás tekintetében, de későbbi felhőalapú szolgáltatásokkal egybekötve ez jelentősen változhat.
A legnépszerűbb tudományterületek tekintetében nem ért minket meglepetés. Megjegyezendő, hogy a Data Science tudományt egyelőre még a számítástudománnyal egybe vettük, illetve utóbbit szándékosan nem soroltuk a matematikához. Ha a Data Science-t külön tekintettük volna, akkor a mérnöki tudományok kiestek volna a TOP5-ből. Meglepő, hogy a jegyzetfüzetet irodalmi, művészeti, és történelmi kurzusok oktatására is felhasználták.
A várakozásnak megfelelően európai és észak-amerikai dominancia volt látható 2016 nyarán.
Az ELTE Matematikai Intézetének példája (Alkalmazott Analízis és Számításmatematikai Tanszék, Alkalmazott Analízis 1. c. kurzus) álljon előttünk zárásként, amellyel jobban el tudjuk képzelni a tényleges működést. A jegyzetfüzet környezetét a MATLAB nyelvvel kombináltuk a hallgatói előismeretek figyelembevételével. Mindenfajta előzetes telepítés nélkül az nbviewer honlap segítségével tekinthetjük meg az egyes jegyzetfüzetek anyagát, itt konkrétan az első óra anyagát [Jupyter, ELTE]. A többi órai anyag pedig az alábbi Github könyvtárban tölthető le és értelemszerűen tekinthető meg [Github, ELTE]. Módszertani szakemberek véleményének kikérése után három mérőszámban történt mérés, ezek mindegyike azt a következtetést vonta le, hogy a hagyományos oktatási módszer helyett numerikus számításokat (is) igénylő kurzusok esetében a jegyzetfüzettel történő oktatás szignifikánsan jobb eredményeket hoz.
Természetesen (és szerencsére) a 2016-os állapotokhoz képest ma már jóval nagyobb bázisa van a Jupyter közösségnek, amely továbbra is dinamikusan és rendületlenül fejlődik. Számtalan jó oktatási példa és segédanyag található meg a hivatalos oldalakról kiindulva. Remélhetőleg hazánkban is egyre inkább teret nyer majd ez a fajta oktatási stílus.
Fekete Imre
ELTE Matematikai Intézet, Alkalmazott Analízis és Számításmatematikai Tanszék
Az Emberi Erőforrások Minisztériuma ÚNKP-17-4 kódszámú Új Nemzeti Kiválóság Programjának támogatásával készült.