Title: Mennyi kell a Dedekind-tortából a programozónak
Author: BME Analizis

Mennyi kell a Dedekind-tortából a programozónak?

A Nyúz XXIII/7 (2001) számában Vizvári Béla figyelemre méltó megjegyzéseket tett a programozók oktatásáról. Szeretném ezeket kiegészíteni, némelyiket pedig vitatni.
Azzal kell kezdenem, hogy egyrészt a konkurrenciát képviselem, mint a BME Analízis Tanszékének oktatója, másrészt az ELTE TTK-t is, amennyiben éppen 25 éve oktatok az Alkalmazott Analízis Tanszéken. Ez utóbbi minőségemben sok évvel ezelőtt néhány éven keresztül Differenciálegyenleteket tanítottam a programtervezők egész évfolyamának, ami ma már az elképzelhetetlen fantasztikumok birodalmába tartozik; a BME-n pedig esetenként Analízist (vagy éppen Mathematicát) tanítok informatikusok számára. Az általános benyomásom az, hogy az ELTE-n a matematikát egyre inkább igyekeznek kiküszöbölni a programtervezők képzéséből, míg a BME-n talán túl vagyunk a mélyponton, és igyekszünk – még klasszikus analízisben is, bár csak a legjobbak számára – túljutni a tájleíró szinten. 
Ami a tananyagot, illetve azok – részben közös – hiányosságait illeti: röviden szólva mindkét egyetemen kevés jut a hallgatóknak a Dedekind-tortából. Szakszerűbben: nem értem, miért nem nyilvánvaló mindenki számára, hogy az egyetemen nehéz elméleti témaköröket kell elsajátítani, mert ez később, egyedül, segítség nélkül nem fog menni; míg a századik programnyelv szintaxisát az egyetem után is könnyű lesz megtanulni. A nehéz elmélet elsősorban (de nem feltételenül és kizárólagosan) a nyilvánvalóan hasznos matematikai területekről vétessék, tehát legyen benne értelmes terjedelemben (legalább 1–1 félév, gyakorlattal) közönséges differenciálegyenletek, parciális differenciálegyenletek és matematikai statisztika is. Elképesztő állapot például, hogy elvégezheti valaki a BME Villamosmérnöki és Informatikai Karát úgy, hogy nem rendelkezik matematikailag megalapozott ismeretekkel a Maxwell-egyenletekről. Gondolom, nem nekem kell propagálnom a diszkrét matematika különböző fejezeteit, de ezek különben is rendesen képviselve vannak mindkét tananyagban, ha nem tévedek; olyannyira, hogy egyes analízisoktatók szinte szégyenkezve tanítják tárgyukat.
Az algoritmikus szemlélet oktatását pedig minden tárgyban meg lehet és meg kell valósítani. Magam éppen ezért (is) használom a Leindler–Schipp-féle Analízis I. jegyzetet a BME-n, ez ugyanis minden alkalmat (tételbizonyítás, feladat) kihasznál erre.
A programozási ismeretekkel kapcsolatban először is említsük meg, hogy manapság még mindig anyagi kérdés az, hogy valakinek van-e számítógépe; ha pedig nincs, akkor hátrányát csak rendkívüli energiával tudja leküzdeni.
És végre rátérhetek kedvenc rögeszmémre, a Mathematicára. Ennek alapos megismerése ugyan éveket is igénybe vehet, viszont némi számítástechnikai gyakorlattal azonnal el lehet kezdeni eredményesen használni. Úgy gondolom, oktatására – különösen a programtervezők és az informatikusok körében – sokkal nagyobb súlyt kellene fektetni. Nem is csak azért, mert (a Maple mellett) ez a két legelterjedtebb, nagyhatású matematikai programcsomag egyike, hanem sokkal inkább azért, mert ennek keretén belül az összes programozási paradigma (procedurális, listakezelő, funkcionális, mintaillesztő vagy logikai, objektumorientált) megtanítható. Így egy alkalmasan átgondolt új tantervben sem lenne szükség arra, hogy minden paradigmához külön nyelvet oktassunk, ráadásul olyanokat, amelyek semmi másra nem használhatók. A Mathematica  felhasználásával számos komoly műszaki és matematikai feladatot oldottak már meg; a numerikus számítások sebessége sok esetben azonos a megfelelő C++ programéval, a program tehát nemcsak drága játékszer különc egyetemi oktatók számára. Többek között éppen arra is jó, hogy az algoritmikus készséget például a nemnumerikus analízis vagy bármelyik másik tárgy keretén belül fejlesszük. A matematikai programcsomagok (és most nemcsak a Mathematicára gondolok) oktatásának része lehetne annak megmutatása, hogy a XVIII. és a XIX. század matematikájának elfeledett részei mégiscsak jók valamire, illetve, hogy a XX. században föl kellett fedezni néhány (a tantervekben jelenleg meg sem említett) fogalmat, tételt és algoritmust a csomagok hatékony működése érdekében.
A végső konklúzió persze az, hogy igyekeznünk kell jobban oktatni, legalább azokat a hallgatókat, akik igényt tartanak erre; írásom közben az ilyen elavult szemléletűekre gondoltam. Eközben azonban nem feledkezhetünk meg a realitásokról: a hallgatók közül igen sokan éppen eleget tudnak ahhoz, hogy legalább is néhány éven keresztül az egyetemi fizetéseket messze meghaladó jövedelemre tegyenek szeret, s így nem igazán értik, miért kellene a sikerült! (:=elégséges) osztályzatnál jobbra törekedniük.
Ja, és hogyan óvjuk meg a magamfajta kettős ügynököket a skizofréniától? Azt gondolom, hogy össze kell fognom magammal (na jó, mondjuk például Vizvári Bélával is), hogy mindkét egyetemen a lehető legjobb képzést kapják a hallgatók, és hogy azok is, akik csak menetközben vették észre, hogy inkább elméleti érdeklődésűek, járhassanak informatikus létükre az ELTÉ-re is, a gyakorlatibb alkalmazások iránt érdeklődő programtervezők pedig a BME-re is. Van már példa ilyen típusú együttműködésre a két egyetem között. Nekünk nem egymástól kell a jó hallgatókat elszipkázni, hanem azt kell elérnünk, hogy a tehetségesek Lágymányoson tanuljanak, és ne gyorstalpaló főiskolácskákon lopják az idejüket.

Tóth János
BME TTK Matematikai Analízis Tanszék és
ELTE TTK Alkalmazott Analízis Tanszék