Alan Kay: Ako by som učil informatiku 101

"Jedným z dôvodov, prečo skutočne ísť na univerzitu, je posunúť sa nad rámec jednoduchého odborného vzdelávania a namiesto toho pochopiť hlbšie myšlienky."

Alan Kay: Ako by som učil informatiku 101

Zamyslime sa trochu nad touto otázkou. Pred niekoľkými rokmi ma katedry informatiky pozvali prednášať na viaceré univerzity. Takmer náhodou som sa spýtal svojho prvého publika študentov, postgraduálnych študentov a profesorov na ich definíciu „informatiky“. Každý mohol poskytnúť iba inžiniersku definíciu. Urobil som to na každom novom mieste a všade boli podobné výsledky.

Ďalšia otázka bola: "Kto je Douglas Engelbart?" Niekoľko ľudí povedalo: "Nebolo to niečo spoločné s počítačovou myšou?" (a to bolo pre mňa veľkým sklamaním, pretože moja vedecká komunita vynaložila veľa úsilia na to, aby sa uistila, že odpoveď na túto otázku je možná dvoma alebo tromi kliknutiami myšou, a bola presvedčená, že Engelbart má skutočne niečo spoločné s počítačovou myšou) .

Časť problému spočívala v nedostatku zvedavosti, sčasti v zúženosti osobných cieľov, ktoré nesúviseli s učením, sčasti v nepochopení toho, čo táto veda je atď.

Už niekoľko rokov pracujem na čiastočný úväzok na katedre informatiky na Kalifornskej univerzite (v podstate som profesor, ale nemusím chodiť na porady katedry). Z času na čas vediem hodiny, niekedy pre študentov prvého ročníka. V priebehu rokov sa už aj tak nízka miera zvedavosti v informatike výrazne znížila (ale úroveň popularity sa tiež zvýšila, pretože výpočtová technika je považovaná za cestu k dobre platenej práci, ak viete kódovať a získať certifikát od špičkových 10 škola). Preto sa ani jeden študent nikdy nesťažoval, že prvým jazykom na Kalifornskej univerzite je C++!

Zdá sa mi, že stojíme pred situáciou, v ktorej boli významy „počítač“ aj „veda“ zničené slabými, masívnymi konceptmi, aby sa vytvoril nový termín – druh označenia na džínsoch – ktorý znie dobre, ale je celkom prázdne. Príbuzným pojmom, ktorý bol podobne zničený, je „softvérové ​​inžinierstvo“, ktoré opäť nevyužívalo najgeniálnejšie myšlienky „programovania“ a „inžinierstva“, ale jednoducho ich kombinovalo (toto bolo zámerne urobené v šesťdesiatych rokoch, kedy razený termín).

Jedným z dôvodov, prečo skutočne ísť na univerzitu, je posunúť sa nad rámec jednoduchého odborného vzdelávania a namiesto toho pochopiť hlbšie myšlienky. Zdá sa mi celkom rozumné, aby sa úvod do špecializácie pokúsil – ak je to možné, prostredníctvom príkladov – zapojiť študentov do problémov zo skutočného života a začať chápať, čo je v tejto oblasti skutočne zaujímavé, dôležité a ústredné.

Žiaci prvého stupňa sa radujú, keď im ukážu, ako sa z pravítka na druhom pravítku stáva sčítačka, s ktorou môžu poraziť deti 5. ročníka v sčítavaní zlomkov. A potom sa radi zúčastnia na vývoji vylepšených sčítacích strojov. Dotkli sa skutočného počítača – fyzického a duševného nástroja, ktorý nám pomáha myslieť. Naučili sa skutočne efektívny spôsob, ako reprezentovať čísla – efektívnejší ako to, čo sa učí v školách!

Dokázali skombinovať svoju myšlienku „pridania“ ako „akumulácie“ s niečím podobným so silnými novými vlastnosťami. Naprogramovali ho tak, aby bol schopný riešiť rôzne problémy.

Aj to rozšírili. A tak ďalej. Toto nie je digitálny počítač. A toto nie je počítač s programom naspamäť. Ale to je podstata počítača. Rovnako ako antikythérový mechanizmus - Toto je vo všeobecnosti podstata počítača a výpočtovej techniky.

Alan Kay: Ako by som učil informatiku 101

Antikythérsky mechanizmus

Ako ďaleko môžeme zájsť a koľko toho stihneme, kým sa nám veci vymknú spod kontroly a stratíme sa v abstrakciách? Vždy som bol naklonený charakterizácii Alan Perlis - prvý víťaz Turingovej ceny, ktorý možno vymyslel termín "počítačová veda" - ktorý v 60. rokoch povedal: "Počítačová veda je veda o procesoch." Všetky procesy.

V záujme spoločnosti Quora sa to nesnažme posunúť ďalej alebo to zmeniť na náboženskú dogmu. Využime nápad len veselo Ala Perlisalepšie premýšľať o našom odbore. A hlavne o tom, ako to naučiť. Teraz sa musíme pozrieť na moderný význam „vedy“ a Perlis si bol celkom istý, že by sa nemal riediť staršími významami (ako napríklad „zbierka vedomostí“) a použitiami (ako napríklad „knižničná veda“ alebo dokonca „sociálne vedy")"). „Vedou“ sa snažil porozumieť javu vytváraním modelov/máp, ktoré sa snažia javy ukázať, „sledovať“ a predpovedať.

Alan Kay: Ako by som učil informatiku 101

Poskytol som niekoľko rozhovorov o tom, ako sa najlepšie mapy a modely často zmestia na tričko, ako to robia Maxwellove rovnice a iné. Analógia je, že existuje „veda o mostoch“, aj keď väčšina mostov je vyrobená človekom. Ale akonáhle je most postavený, predstavuje javy, ktoré môžu vedci študovať, mosty môžu byť použité na vytváranie modelov mnohých druhov a tvoria komplexné a užitočné „teórie mostov“. Zábavné je, že potom môžete navrhovať a stavať nové mosty (už som spomenul, že sotva existuje niečo zábavnejšie ako vedci a inžinieri, ktorí spolupracujú pri riešení veľkých a dôležitých problémov!)

Alan Kay: Ako by som učil informatiku 101

Herbert Simon, držiteľ Turingovej ceny a Nobelovej ceny, to celé nazval „veda o umelom“ (a napísal vynikajúcu knihu s rovnakým názvom).

Alan Kay: Ako by som učil informatiku 101

Uvediem príklad. V 50-tych rokoch firmy a univerzity postavili pamäťové počítače a začali ich programovať – a bol tu zvláštny moment, keď v roku 1956 vyšiel Fortran – ktorý nebol prvým jazykom na vysokej úrovni, ale možno prvým jazykom vyrobeným tak dobre, že bol používané v mnohých rôznych oblastiach vrátane mnohých, ktoré sa predtým vykonávali iba v strojovom jazyku.

To všetko dalo vznik „fenoménom“.

Alan Kay: Ako by som učil informatiku 101

John McCarthy

Lispova história je zložitejšia, no John McCarthy sa začal zaujímať o hľadanie „matematickej teórie výpočtov“ a bol odhodlaný zabezpečiť, aby všetko fungovalo perfektne. Funkcia eval, ktorá interpretuje Lisp, by sa pokojne zmestila aj na tričko! V porovnaní s „programovacím systémom“ je to nepodstatné. Ešte dôležitejšie je, že táto „teória výpočtu“ bola silnejšou koncepciou ako Fortran! Toto bol najlepší nápad na most!

Miniatúrna povaha Lisp umožňuje zachytiť celú myšlienku programovania niekoľkými kliknutiami na hlbšej úrovni a premyslieť si ju na úrovni, ktorá sa pri pohľade na obrovské artefakty zdá jednoducho nemožná (toto je jeden z dôvodov prečo majú vedci radi, keď je matematika kompaktná a výkonná). Matematika, ktorá sa tu používa, je novou matematikou, pretože umožňuje pojmy ako „pred“ a „po“ a to vedie k „variabilnej logike“, ktorá umožňuje zachovať funkčnú závislosť aj logický tok myslenia, pričom umožňuje aj polohu a prechod. času. (Toto v našej dobe v krutom svete situačného programovania stále nie je pochopené).

Lisp, ako výkonný programovací jazyk a metajazyk, ktorý môže reprezentovať svoju vlastnú teóriu, je príkladom skutočnej informatiky. Ak sa to naučíte a ďalšie podobné veci, budete vedieť hlbšie premýšľať a byť zodpovednejší za svoj vlastný osud, ako keby ste sa jednoducho naučili programovať vo Fortrane alebo jeho moderných ekvivalentoch (...takže sa môžete priblížiť k programátorom! ).

Dozviete sa oveľa viac o špeciálnych druhoch dizajnu, ktoré sú potrebné vo výpočtovej technike (napríklad sa zvyčajne nedoceňuje, keď výpočtová technika často vyžaduje prechod mimo výpočtového prostredia: jednou zo špeciálnych charakteristík uložených soft computingu je, že to nie je len materiál pre program, ale materiál pre úplne nový počítač).

Ďalším dôvodom pre výber Perlisovej definície je, že vo všeobecnosti sa výpočtová technika oveľa viac zaoberá tvorbou systémov mnohých druhov než algoritmami, „dátovými štruktúrami“ alebo dokonca samotným programovaním. Napríklad počítač je systém, výpočtová technika je systém, lokálna sieť a internet sú systémy a väčšina programov by mala byť lepšími systémami ako sú (starý štýl programovania z 50. rokov pretrval, kým sa nezdalo, že programovanie by malo byť takto - nič nemôže byť ďalej od pravdy).

Dobrým príkladom je internet – na rozdiel od väčšiny dnešného softvéru, internet nie je potrebné zastaviť, aby sa niečo opravilo alebo vylepšilo – je to skôr biologický systém – podľa nášho zámeru – než to, čo si väčšina ľudí predstavuje ako počítačový systém. A je oveľa škálovateľnejší a spoľahlivejší ako takmer všetky dnes dostupné softvérové ​​systémy. Toto sa naozaj oplatí premýšľať skôr, než začnete začínajúcich programátorov učiť menej výkonné koncepty!

Takže to, čo musíme urobiť v prvom ročníku kurzu informatiky, je vziať do úvahy, čo presne študenti môžu robiť na úplnom začiatku, a potom sa pokúsiť zostať v rámci ich „kognitívnej záťaže“, aby sme im pomohli dostať sa k tomu, čo je skutočne dôležité. Je dôležité „zostať skutočný“ a nájsť spôsoby, ktoré sú intelektuálne čestné a vhodné pre tých, ktorí práve začínajú. (Prosím, neučte zlé nápady len preto, že sa zdajú trochu jednoduchšie – veľa zlých nápadov je v skutočnosti jednoduchšie!).

Študenti by mali začať vytvorením niečoho, čo má mnohé z dôležitých charakteristík, o ktorých som tu hovoril. Malo by ísť o systém niekoľkých dynamicky interagujúcich častí a pod. Dobrým spôsobom, ako sa rozhodnúť, ktorý programovací jazyk použiť, je jednoducho vytvoriť niečo, čo má tisíce vzájomne sa ovplyvňujúcich častí! Ak nie, mali by ste si nejaký nájsť. Najhoršia vec, ktorú môžete urobiť, je postaviť študentov na cestu príliš nízkej plynulosti, čo by výrazne obmedzilo veľké nápady. Len ich to zabíja – a my ich chceme vychovávať, nie zabíjať.

O GoTo School

Alan Kay: Ako by som učil informatiku 101

Zdroj: hab.com

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