Alan Kay: ako by som vyučoval Computer Science 101

„Jedným z dôvodov, prečo sa naozaj prihlásiť na univerzitu, je prekročiť rámec bežného profesijného vzdelávania a uchopiť hlbšie myšlienky.“

Alan Kay: ako by som vyučoval Computer Science 101

Zamyslime sa nad touto otázkou. Pred niekoľkými rokmi ma katedry počítačových vied pozvali na prednášky na niekoľkých univerzitách. Takmer náhodou som sa opýtal svojej prvej skupiny, skladajúcej sa zo starších študentov, doktorandov a profesorov, na ich definíciu „počítačovej vedy“. Všetci dokázali uviesť iba inžiniersku definíciu. Robil som to na každom novom mieste a výsledky boli všade podobné.

Ďalšou otázkou bolo: „Kto je Douglas Engelbart?“. Niekoľko ľudí povedalo: „nebol snáď nejakým spôsobom spojený s počítačovou myšou?“ (a to ma veľmi sklamalo, pretože moja vedecká komunita sa snažila dosiahnuť to, aby bolo možné odpovedať na túto otázku po dvoch až troch kliknutiach myšou a overiť, že Engelbart bol skutočne s počítačovou myšou nejakým spôsobom spojený).

Časť problému spočívala v nedostatku zvedavosti, čiastočne v úzkej osobnej cieľoch, ktoré neboli spojené s učením, a čiastočne v nedostatku predstavy o tom, čo táto veda obnáša, a podobne.

Päť rokov pracujem na čiastočný úväzok na katedre počítačových technológií Kalifornskej univerzity (v podstate som profesor, ale nemusím chodiť na zasadnutia katedry). Občas prednášam, niekedy prvákom. Počas týchto rokov sa už tak nízka úroveň zvedavosti o počítačovej vede ešte znížila (ale zároveň sa zvýšil záujem, pretože počítačové technológie sú považované za cestu k dobre platenému zamestnaniu, ak viete programovať a získali ste certifikát na jednej z desiatich najlepších škôl). Odpovedajúc na to, ešte žiaden študent si nesťažoval na to, že prvým jazykom na Kalifornskej univerzite je C++!

Myslím, že sme sa ocitli v situácii, kde boli obidve hodnoty „počítač“ a „veda“ oslabené slabými masívnymi konceptmi, aby sa vytvoril nový termín — akýsi štítok na džínoch — ktorý dobre znie, ale je dostatočne prázdny. Súvisiacim termínom, ktorý bol podobne oslabený, je „softvérové inžinierstvo“, ktoré opäť nepoužívalo najgeniálnejšie myšlienky „programovania“ a „inžinierstva“, ale jednoducho ich skombinovalo (toto bolo zámerne urobené v šesťdesiatych rokoch, keď bol termín vynašiel).

Jedným z dôvodov, prečo sa skutočne zaregistrovať na univerzitu, je vyjsť za hranice jednoduchého profesijného vzdelávania a namiesto toho sa uchopiť hlbších myšlienok. Myslím si, že je celkom rozumné, aby sa v úvode do špecializácie pokúsili — ak je to možné, pomocou príkladov — zabezpečiť, aby sa študenti zaoberali skutočnými problémami a začali chápať, čo je v tejto oblasti naozaj zaujímavé, dôležité a centrálne.

Prvákov teší, keď im ukážu, ako sa pravítko položené na iné pravítko stáva aritmetickým prístrojom, s ktorým môžu prekonať chlapcov z piatej triedy pri sčítavaní zlomkov. A potom budú šťastní, keď sa zúčastnia na vývoji vylepšených aritmetických prístrojov. Dotkli sa skutočného počítača — fyzického a mentálneho nástroja, ktorý nám pomáha myslieť. Naučili sa naozaj efektívny spôsob predstavovania čísel — účinnejší, než aký sa učí v školách!

Podarilo sa im spojiť ich zdravý koncept „pridávania“ ako „zhromažďovania“ s niečím podobným s novými mocnými vlastnosťami. Naprogramovali ho tak, aby bol schopný riešiť rôzne problémy.

Taktiež ho rozšírili. A tak ďalej. To nie je digitálny počítač. A nie je to počítač s pamäťovým programom. Ale to je esencia počítača. Rovnako ako antikythera mechanizmus — to je vlastne esencia počítača a výpočtov.

Alan Kay: ako by som vyučoval Computer Science 101

Antikythera mechanizmus

Ako ďaleko môžeme zájsť a koľko toho môžeme dosiahnuť predtým, než všetko unikne z našich rúk a stratíme sa v abstrakciách? Vždy som bol citlivý na charakteristiku Alana Perlis — prvého laureáta Turingovej ceny, ktorý možno vymyslel termín „Informatika“ — ktorý v 60. rokoch povedal: „Informatika je vedou o procesoch“. O všetkých procesoch.

Pre spoločnosť Quora sa nebudeme snažiť to posunúť ďalej alebo zmeniť na náboženskú dogmu. Poďme proste šťastne používať túto myšlienku. Alan Perlis, aby sme lepšie rozmýšľali o našej oblasti. A najmä o tom, ako ju učiť. Teraz je potrebné sa pozrieť na súčasný význam „vied“, a Perlis bol dosť presvedčený, že by nemalo byť zriedené starými významami (napríklad ako „zber vedomostí“) ani použitiami (ako „knižná veda“ alebo dokonca „spoločenské vedy“). Pod „vedou“ sa snažil pochopiť fenomén cez vytváranie modelov/map, ktoré sa snažia ukázať, „sledovať“ a predpovedať javy.

Alan Kay: ako by som vyučoval Computer Science 101

Dal som niekoľko rozhovorov o tom, ako najlepšie mapy a modely môžu často sedieť na tričku, tak ako sedí Maxwellova rovnice a iné. Analógia spočíva v tom, že existuje „veda o mostoch“, hoci väčšina mostov je vytvorená človekom. Ale keď je most postavený, zobrazuje javy, ktoré môžu vedci študovať, a z mostov je možné vytvoriť modely rôznych druhov a formulovať komplexné a užitočné „teórie mostov“. Zábava spočíva v tom, že môžeme navrhnúť a postaviť nové mosty (už som spomenul, že pravdepodobne niet ničoho zábavnejšieho, ako je spolupráca vedcov a inžinierov na riešení veľkých a dôležitých problémov!).

Alan Kay: ako by som vyučoval Computer Science 101

Herbert Simon — laureát Turingovej a Nobelovej ceny — nazval to všetko „vedou o umelom“ (a napísal skvelú knihu s rovnakým názvom).

Alan Kay: ako by som vyučoval Computer Science 101

Dovoľte mi uviesť príklad. V 50. rokoch spoločnosti a univerzity stavali počítače s uloženým programom a začali ich programovať — a bol osobitný okamih, keď v roku 1956 prišiel Fortran — ktorý nebol prvým jazykov vysokej úrovne, ale možno prvým, ktorý bol urobil tak dobre, že sa používal v mnohých rôznych oblastiach, vrátane mnohých, ktoré predtým robili iba v strojovom jazyku.

To všetko vyprodukovalo „fenomény“.

Alan Kay: ako by som vyučoval Computer Science 101

John McCarthy

História Lispu je složitejšia, no John McCarthy mal záujem o pokus nájsť „matematickú teóriu výpočtov“ a bol odhodlaný zabezpečiť, aby všetko fungovalo skvele. Funkcia eval, ktorá interpretuje Lisp, sa ľahko zmestí na tričko! V porovnaní so „programovacím systémom“ je to zanedbateľné. Čo je dôležitejšie, táto „teória výpočtov“ mala mocnejšiu koncepciu než Fortran! Bola to najlepšia myšlienka mostu!

Miniatúrnosť Lispu umožňuje celej myšlienke programovania byť zachytenou pomocou pár stlačení na hlbšej úrovni a byť zamyslenou na úrovni, ktorá sa zdá jednoducho nemožná, keď sa pozeráte na obrovské artefakty (to je jeden z dôvodov, prečo si vedci obľubujú, aby matematika bola kompaktná a mocná). Matematika, ktorá je tu použitá, je novou matematikou, pretože pripúšťa koncepty ako „pred“ a „po“, a to vedie k „logike premenlivej veličiny“, ktorá umožňuje zachovať ako funkčnú závislosť, tak aj logické myslenie, pričom pripúšťa čas a priebeh. (To sa stále v našich časoch nepochopilo v krutom svete situačného programovania).

Lisp, ktorý pôsobí ako mocný programovací jazyk a metalanguage schopný predstaviť svoju vlastnú teóriu, je príkladom skutočnej počítačovej vedy. Ak sa ho naučíte a ďalšie podobné veci, budete schopní hlbšie premýšľať a byť zodpovednejší za svoj vlastný osud, než keby ste sa len naučili programovať vo Fortran alebo jeho súčasných ekvivalentoch (… tak sa môžete priblížiť programátorom!).

dozviete sa oveľa viac o špeciálnych typoch dizajnu, ktoré sú potrebné vo výpočtoch (napríklad, zvyčajne sa neocení, keď výpočty často vyžadujú prekročenie výpočtového prostredia: jedna z osobitných charakteristík uložených programových výpočtov spočíva v tom, že to nie je len materiál pre program, ale materiál pre úplne nový počítač).

Ďalší dôvod, prečo si vybrať definíciu Perlis, spočíva v tom, že výpočty sú vo väčšej miere spojené s vytváraním systémov rôznych typov než s algoritmami, "dátovými štruktúrami" alebo dokonca samotným programovaním. Napríklad počítač je systém, výpočty sú systémy, lokálna sieť a internet sú systémy a väčšina programov by mala predstavovať lepšie systémy, ako sú tie, ktorými sú (starý štýl programovania z 50-tych rokov pretrval až do bodu, kedy sa zdá, že programovanie by malo takto vyzerať — niet ničoho vzdialenejšieho od pravdy).

Internet je dobrým príkladom — na rozdiel od väčšiny programov v našej dobe, internet nie je potrebné zastaviť, aby sa opravilo alebo vylepšilo niečo — je skôr biologickým systémom — podľa nášho úmyslu, než tým, čo väčšina ľudí považuje za výpočtový systém. A je oveľa škálovateľnejší a spoľahlivejší než takmer všetky softvérové systémy, ktoré existujú dnes. Naozaj stojí za zamyslenie, predtým než začnete učiť nováčikov programovania nie takým silným konceptom!

Takže, čo musíme urobiť na prvom ročníku oboru Informatika, je zvážiť, čo konkrétne môžu študenti robiť na samotnom začiatku, a potom sa snažiť zostať v rámci ich "kognitívneho zaťaženia", aby im pomohli dosiahnuť to, čo je naozaj dôležité. Je veľmi dôležité "zostať autentickým" a nájsť cestičky, ktoré sú intelektuálne čestné a vhodné pre tých, ktorí sa len začínajú učiť. (Prosím, neučte zlé nápady len preto, že sa zdajú o niečo jednoduchšie — množstvo zlých nápadov je v skutočnosti oveľa jednoduchších!).

Študenti by mali začať tvorbou niečoho, čo by malo množstvo dôležitých charakteristík, o ktorých tu diskutujem. Môže to byť systém z viacerých dynamicky interagujúcich častí atď. Dobrý spôsob, ako sa rozhodnúť, aký programovací jazyk použiť, je jednoducho vytvoriť niečo, čo má tisíce interagujúcich častí! Ak nie, mali by ste také nájsť. Najhoršie, čo môžete urobiť, je postaviť študentov na cestu príliš slabého zručnosti, ktorá by silne obmedzila veľké myšlienky. To ich jednoducho zabíja — a my ich chceme vychovať, nie zničiť.

O škole GoTo

Alan Kay: ako by som vyučoval Computer Science 101

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster