„Az egyik ok, amiért valóban egyetemre kellene menni, az az, hogy túllépjünk a puszta szakmai képzésen, és helyette mélyebb ötletekbe kapaszkodjunk.“

Gondolkodjunk egy pillanatra ezen a kérdésen. Pár évvel ezelőtt a Számítástudományi Tanszékek meghívtak, hogy előadásokat tartsak több egyetemen. Szinte véletlenül megkérdeztem az első hallgatóságomat, amely végzősökből, posztgraduális hallgatókból és professzorokból állt, hogy mi a definíciójuk a „Számítástudományra”. Mindannyian csak mérnöki definíciót tudtak adni. Ezt minden új helyszínen megcsináltam, és mindenhol hasonló eredmények születtek.
Egy másik kérdés az volt: „Ki volt Douglas Engelbart?”. Pár ember azt mondta: „Nem valamilyen módon ő volt a számítógépes egérrel kapcsolatban?” (és ez nagyon csalódottá tett, mivel a tudományos közösségem rengeteget dolgozott azon, hogy erre a kérdésre két-három kattintással választ lehessen adni, és megbizonyosodjunk arról, hogy Engelbart valóban kapcsolódott a számítógépes egérhez).
Részben a probléma a kíváncsiság hiányából fakadt, részben a szűk személyes célokból, amelyek nem voltak összefüggésben a tanulással, részben pedig abból, hogy nem volt elképzelésük arról, mi is ez a tudomány, és így tovább.
Évek óta félidős oktatóként dolgozom a Kaliforniai Egyetem Számítástechnikai Tanszékén (valójában professzor vagyok, de nem kell járnom a tanszéki ülésekre). Időnként tartok előadásokat, néha elsőéveseknek. Ezekben az években a Számítástudomány iránti már amúgy is alacsony érdeklődés jelentősen csökkent (de a népszerűség nőtt, mivel a számítástechnika jól fizető munkalehetőségként népszerű, ha tud programozni, és a legjobb 10 iskolában szerzett képesítéssel bír). Ennek megfelelően egyetlen hallgató sem panaszkodott még arra, hogy a Kaliforniai Egyetemen az első nyelv a C++!
Úgy érzem, hogy egy olyan helyzetbe kerültünk, ahol mind a „Számítógép”, mind a „Tudomány” értékei gyenge, tömeges fogalmakká romlottak, hogy létrehozzanak egy új kifejezést – egyfajta címkét a farmereken – amely jól hangzik, de elég üres. Egy kapcsolódó kifejezés, amely hasonlóan romlott, a „szoftvermérnökség”, ami szintén nem vonta be a „programozás” és „mérnökség” legzseniálisabb ötleteit, hanem egyszerűen összekapcsolta őket (ezt szándékosan tették az 1960-as években, amikor kitalálták a kifejezést).
Az egyik ok, amiért valójában érdemes egyetembe menni, az, hogy túllépjünk az egyszerű szakmai képzésen, és inkább mélyebb ötletek után kutassunk. Ésszerűnek tűnik a szakterület bevezetésénél megpróbálni – ha lehetséges példák segítségével – olyan módon elérni, hogy a tanulók valós problémákkal foglalkozzanak, és kezdjék megérteni, hogy mi valójában érdekes, fontos és központi ebben a területen.
Az első osztályosok örömmel tapasztalják, amikor megmutatják nekik, hogy hogyan válik egy vonalzó egy másik vonalzó fölött aritmetikai géppé, amely segítségével felülmúlhatják az ötödikeseket a törtek hozzáadásában. Aztán örömmel részt vesznek a továbbfejlesztett aritmetikai gépek kifejlesztésében. Megérintették a valódi számítógépet – fizikai és mentális eszközt, amely segít nekünk gondolkodni. Valóban hatékony módon tanulták meg a számok reprezentálását – hatékonyabb módszer, mint amit iskolákban tanítanak!
Sikerült összekapcsolniuk az „összeadás” mint „felhalmozás” jónak tartott elképzelését valami hasonlóval, új, hatékony tulajdonságokkal. Úgy programozták, hogy képes legyen különféle problémák megoldására.
Aztán tovább bővítették. És így tovább. Ez nem digitális számítógép. És nem számítógép memorizálható programmal. De ez a számítógép lényege. Ugyanúgy, mint – ez a számítógép és a számítás lényegét képviseli.

Az antiküthériai mechanizmus
Meddig juthatunk el, és mennyit tehetünk, mielőtt minden kicsúszik az irányítás alól, és elveszünk az absztrakciók világában? Mindig is vonzott a jellemző — az első Turing-díjas, aki valószínűleg megalkotta a "Számítástechnika" kifejezést — aki az 1960-as években azt mondta: "A számítástechnika a folyamatok tudománya". Minden folyamat.
A Quora kedvéért ne próbáljuk ezt tovább mélyíteni vagy vallásos dogmává alakítani. Egyszerűen csak boldogan használjuk az ötletet , hogy jobban gondolkodjunk a területünkről. Különösen arról, hogy ezt hogyan tanítsuk. Most szükségünk van arra, hogy megvizsgáljuk a "tudomány" modern jelentését, és Perlis elég biztos volt abban, hogy ezt nem szabad régi jelentésekkel (például "tudásanyag gyűjtés") és felhasználásokkal (mint például "könyvtár tudomány" vagy akár "társadalomtudományok") hígítani. A "tudomány" alatt azt próbálta megérteni, hogy hogyan lehet modelleket/térképeket létrehozni, amelyek megpróbálják bemutatni, "nyomon követni" és megjósolni a jelenségeket.

Több interjút adtam arról, hogy a legjobb térképek és modellek gyakran felhasználhatók pólókra, ahogy a Maxwell-egyenletek és mások. Az analógia az, hogy létezik "híd tudomány", bár a legtöbb hidat ember építi. De amint a híd elkészült, tükrözi a jelenségeket, amelyeket a tudósok tanulmányozhatnak, a hidakból számos modell alakítható ki, amelyek átfogó és hasznos "hidakról szóló elméleteket" alkothatnak. Az a szórakoztató, hogy ezután új hidakat tervezhetünk és építhetünk (már említettem, hogy aligha létezik valami szórakoztatóbb, mint a tudósok és mérnökök közös munkája, hogy nagy és fontos problémákat oldjanak meg!)

Herbert Simon, a Turing-díjas és Nobel-díjas tudós, mindezt "mesterséges tudományoknak" nevezte (és csodálatos könyvet írt ezzel a címmel).

Hadd hozzak egy példát. Az 1950-es években a vállalatok és egyetemek emlékezetes programmal rendelkező számítógépeket építettek és elkezdték programozni őket — és volt egy különleges pillanat, amikor 1956-ban megjelent a Fortran — amely nem volt az első magas szintű nyelv, de valószínűleg az első, amelyet olyan jól készítettek el, hogy számos különböző területen használták, beleértve azokat is, amelyeket korábban csak gépi nyelven írtak.
Mindez "jelenségeket" szült.

John McCarthy
A Lisp története bonyolultabb, de John McCarthy érdeklődött a "számítás elméleti" megalkotásának lehetősége iránt, és eltökélten akarta, hogy minden tökéletesen működjön. Az eval funkció, amely értelmezi a Lispet, könnyedén rákerülhet egy pólóra! A "programozási rendszer"-hez képest ez elhanyagolható. Ami még fontosabb, hogy ez a "számítás elmélet" erősebb koncepcióval bír, mint a Fortran! Ez volt a legjobb híd ötlete!
A Lisp miniatűr volta lehetővé teszi, hogy a programozás teljes ötlete néhány gombnyomással megragadva, egy mélyebb szinten tudatosuljon, ami egyszerűen lehetetlennek tűnik, amikor a hatalmas artefaktumokra nézel (ez az egyik oka annak, hogy a tudósok szeretik, ha a matematika kompakt és erős). A matematikai értelemben itt új matematikáról van szó, mivel olyan fogalmakat tesz lehetővé, mint az "előtte" és "utána", amelyek az "változó nagyság logikájához" vezetnek, lehetővé téve a funkcionális függőség és a logikai gondolkodás megőrzését, miközben a hely és az idő menete is figyelembe van véve. (Ez még ma is érthetetlen a helyzetorientált programozás brutális világában).
A Lisp, mint egy erőteljes programozási nyelv és metanyelv, amely képes bemutatni a saját elméletét, a valódi számítástechnika példája. Ha megtanulod ezt és hasonló dolgokat, akkor mélyebben tudsz gondolkodni, és nagyobb felelősséggel tartozol a saját sorsodért, mint ha csak a Fortran programozására tanulnál meg, vagy annak modern megfelelőire (… így közelebb kerülhetsz a programozókhoz!).
Sokkal többet fogsz megtudni azokról a speciális tervezési típusokról, amelyek a számításokhoz szükségesek (például általában nem értékelik, amikor a számítások gyakran a számítási környezet határain kívül esnek: a tárolt programok számításainak egyik speciális jellemzője, hogy nem csupán anyag a program számára, hanem egy teljesen új számítógép anyaga).
Egy másik oka Perl definíciójának választásának az, hogy a számítások sokkal inkább a különféle rendszerek létrehozásával kapcsolatosak, mintsem algoritmusokkal, 'adatstruktúrákkal' vagy magával a programozással. Például, a számítógép egy rendszer, a számítások rendszerek, a helyi hálózat és az internet rendszerek, és a legtöbb programnak jobbnak kell lennie, mint amilyenek valójában — a régi programozási stílus az 50-es évekből azt a látszatot keltette, hogy a programozásnak ilyen módon kellene léteznie — nincs ennél távolibb az igazságtól.
Az internet jó példa — a mai programok többségével ellentétben az internetet nem kell leállítani, hogy bármit is javítsunk vagy fejlesszünk — inkább egy biológiai rendszerre hasonlít — a szándékainkra, mintsem arra, amit a legtöbb ember számítógépes rendszernek tart. Ráadásul sokkal skálázhatóbb és megbízhatóbb, mint szinte minden létező programrendszer manapság. Ezt érdemes átgondolni, mielőtt a programozásra tanítanánk a kezdőket, nem annyira erőteljes koncepcióknak!
Tehát, amit az első Computer Science tanfolyamon tennünk kell, az az, hogy figyelembe vesszük, hogy a hallgatók mit tudnak kezdetben csinálni, majd megpróbálunk a 'megismerési terhelésük' határain belül maradni, hogy segítsünk nekik eljutni ahhoz, ami valóban fontos. Nagyon fontos, hogy 'valódiak maradjunk', és találjunk olyan utakat, amelyek intellektuálisan tisztességesek és megfelelnek azoknak, akik most kezdik a tanulást. (Kérjük, ne tanítsunk rossz ötleteket csak azért, mert kicsit egyszerűbbnek tűnnek — sok rossz ötlet valójában egyszerűbb!).
A diákoknak valami olyat kell kezdeniük, amely számos fontos jellemzővel rendelkezik, amelyekről itt beszéltem. Olyan rendszernek kell lennie, amely több dinamikusan kölcsönhatásban lévő részből áll stb. Jó módja annak meghatározásának, hogy melyik programozási nyelvet érdemes használni, ha létrehozunk valami olyat, aminek ezer kölcsönhatásban lévő része van! Ha pedig nincs egy ilyen, akkor érdemes találni egyet. A legrosszabb dolog, amit tehetünk, ha a diákokat egy túl gyenge folyékonyságú útra tereljük, ami erősen korlátozná a nagyszabású ötleteket. Ez egyszerűen megöli őket – pedig nekünk azt kellene elérnünk, hogy fejlődjenek, ne pedig elpusztuljanak.
A GoTo iskoláról

- Június 17-30., Július 15-28., Augusztus 12-25.
Forrás: habr.com
