Alan Kay: Hvordan jeg ville undervise i Computer Science 101

«En av grunnene til Ä faktisk begynne pÄ universitetet er Ä gÄ utover bare profesjonell opplÊring og i stedet gripe tak i dypere ideer.»

Alan Kay: Hvordan jeg ville undervise i Computer Science 101

La oss tenke litt over dette spÞrsmÄlet. For flere Är siden inviterte datavitenskapsavdelinger meg til Ä holde forelesninger ved flere universiteter. Nesten tilfeldig spurte jeg min fÞrste klasse, bestÄende av seniors, doktorgradsstudenter og professorer, om deres definisjon av 'Computer Science'. Alle kunne bare gi en ingeniÞrmessig definisjon. Jeg gjorde dette pÄ hvert nytt sted, og resultatene var liknende overalt.

Et annet spÞrsmÄl var: «Hvem er Douglas Engelbart?». Flere personer sa: «Var han ikke pÄ en eller annen mÄte knyttet til datamusen?» (og dette skuffet meg mye, siden mitt faglige fellesskap har gjort mye for Ä sikre at svaret pÄ dette spÞrsmÄlet kunne bli funnet etter to-tre museklikk og Ä finne ut at Engelbart faktisk var knyttet til datamusen).

Deler av problemet lÄ i mangel pÄ nysgjerrighet, delvis i trange personlige mÄl som ikke var relatert til lÊring, delvis i mangel pÄ forstÄelse av hva denne vitenskapen er, og sÄ videre.

Jeg har jobbet deltid ved datateknikkavdelingen ved University of California i flere Är (faktisk er jeg professor, men jeg trenger ikke Ä delta pÄ avdelingens mÞter). Periodisk holder jeg kurs, noen ganger for fÞrsteÄrsstudenter. I lÞpet av disse Ärene har det allerede lave nivÄet av nysgjerrighet pÄ datavitenskap sunket betydelig (men samtidig har populariteten Þkt, ettersom datateknikk er sett pÄ som en vei til godt betalt arbeid hvis du kan programmere og har fÄtt sertifikat fra en av de 10 beste skolene). Dermed har ingen studenter ennÄ klaget over at det fÞrste programmeringssprÄket ved University of California er C++!

Eg fĂžler vi har stĂžtt pĂ„ en situasjon der bĂ„de «Computer» og «Science» har blitt fragmentert av svake, massive konsepter for Ă„ skape et nytt begrep — en slags etikett pĂ„ bukser — som hĂžres bra ut, men er tilstrekkelig tomt. Det relaterte begrepet, som pĂ„ samme mĂ„te har blitt fragmentert, «programvareingeniĂžrkunst», som igjen ikke anvendte de mest geniale ideene fra «programmering» og «ingeniĂžrkunst», men bare kombinerte dem (dette ble bevisst gjort pĂ„ sekstitallet, da begrepet ble utviklet).

En av grunnene til faktisk Ă„ gĂ„ pĂ„ universitetet er Ă„ gĂ„ utover enkel profesjonell opplĂŠring og i stedet gribe tak i dypere ideer. Jeg synes det er ganske fornuftig, ved innfĂžringen til fagfeltet, Ă„ forsĂžke — om mulig, ved hjelp av eksempler — Ă„ fĂ„ lĂŠrende til Ă„ engasjere seg i reelle problemer og begynne Ă„ forstĂ„ hva som egentlig er interessant, viktig og sentralt i dette omrĂ„det.

FĂžrsteklassinger gleder seg nĂ„r de fĂ„r se hvordan en linjal over en annen linjal blir en regnemaskin, med hjelp av hvilken de kan overgĂ„ guttene i 5. klasse nĂ„r de legger til brĂžkdeler. Og sĂ„ vil de vĂŠre glade for Ă„ delta i utviklingen av forbedrede regnemaskiner. De har fĂ„tt tak i en ekte datamaskin — et fysisk og mentalt verktĂžy som hjelper oss Ă„ tenke. De har lĂŠrt en virkelig effektiv mĂ„te Ă„ representere tall pĂ„ — mer effektiv enn det som lĂŠres i skolene!

De klarte Ä koble sin sunne idé om «adding» som «akkumulering» med noe lignende med nye kraftige egenskaper. De programmerte det slik at det kunne lÞse ulike problemer.

De utvidet det ogsĂ„. Og sĂ„ videre. Dette er ikke en digital datamaskin. Og det er ikke en datamaskin med minnerbar programmering. Men dette er essensen av en datamaskin. Akkurat som Antikythera-mekanismen — er i bunn og grunn essensen av datamaskiner og beregninger.

Alan Kay: Hvordan jeg ville undervise i Computer Science 101

Antikythera-mekanismen

Hvor langt kan vi gĂ„ og hvor mye kan vi gjĂžre fĂžr alt gĂ„r ut av kontroll, og vi mister oss selv i abstraksjoner? Jeg har alltid vĂŠrt engasjert i karakteriseringen av Alan Perlis — den fĂžrste mottakeren av Turing-prisen, som muligens oppfant termen «Computer Science» — som pĂ„ 60-tallet sa: «Computer Science er vitenskapen om prosesser». Alle prosesser.

For Quora sin del, la oss ikke prÞve Ä presse dette videre eller gjÞre det til en religiÞs dogme. La oss bare vÊre glade for Ä bruke ideen Alan Perlis, for Ä tenke bedre pÄ vÄrt felt. Og spesielt om hvordan dette skal undervises. NÄ mÄ vi se pÄ den moderne betydningen av «vitenskap», og Perlis var ganske sikker pÄ at det ikke skulle blandes med gamle betydninger (for eksempel som «akkumulering av kunnskap») og bruksomrÄder (som for eksempel «biblioteksfag» eller til og med «samfunnsvitenskap»). Under «vitenskap» prÞvde han Ä forstÄ fenomenet ved Ä lage modeller/kart som prÞver Ä vise, «spore» og forutsi fenomen.

Alan Kay: Hvordan jeg ville undervise i Computer Science 101

Jeg har gitt flere intervjuer om hvordan de beste kartene og modellene ofte kan passe til en T-skjorte, sÄnn som Maxwells likninger og andre. Analogien er at det finnes en «vitenskap om broer», selv om de fleste broer er menneskeskapte. Men sÄ snart en bro er bygget, reflekterer den fenomener som forskere kan studere; fra broer er det mulig Ä lage modeller av mange typer og danne omfattende og nyttige «bro-teorier». Det morsomme er at det deretter er mulig Ä designe og bygge nye broer (jeg har allerede nevnt at det sjelden er noe mer gÞy enn samarbeid mellom forskere og ingeniÞrer for Ä lÞse store og viktige problemer!)

Alan Kay: Hvordan jeg ville undervise i Computer Science 101

Herbert Simon — Turing-prisvinner og Nobelprisvinner — kalte alt dette for «vitenskapene om det kunstige» (og skrev en flott bok med samme tittel).

Alan Kay: Hvordan jeg ville undervise i Computer Science 101

La meg gi et eksempel. PĂ„ 50-tallet bygde selskaper og universiteter datamaskiner med minneprogram og begynte Ă„ programmere dem — og det var et spesielt Ăžyeblikk da Fortran dukket opp i 1956 — som ikke var det fĂžrste hĂžynivĂ„sprĂ„ket, men muligens det fĂžrste som ble laget sĂ„ godt at det ble brukt i mange forskjellige omrĂ„der, inkludert mange som tidligere bare ble gjort pĂ„ maskinsprĂ„k.

Dette skapte «fenomener».

Alan Kay: Hvordan jeg ville undervise i Computer Science 101

John McCarthy

Historien om Lisp er mer kompleks, men John McCarthy var interessert i Ä finne en "matematisk teori for beregning" og var fast bestemt pÄ Ä fÄ alt til Ä fungere utmerket. eval-funksjonen, som tolker Lisp, kan lett trykkes pÄ en T-skjorte! Sammenlignet med "programmeringssystemet" er dette ubetydelig. Mer viktig er det at denne "beregningsteorien" hadde en mer kraftfull konsept enn Fortran! Dette var den beste broideen!

Minibiliteten til Lisp gjÞr at hele programmeringsideen kan fanges med bare et par trykk pÄ et dypere nivÄ, og bli tenkt pÄ et nivÄ som virker helt umulig nÄr du ser pÄ de enorme artefaktene (det er en av grunnene til at forskere elsker at matematikken er kompakt og kraftfull). Matematikk som brukes her, er ny matematikk, ettersom den tillater begreper som "fÞr" og "etter", og dette fÞrer til "logikk om variabel mengde", som tillater bÄde Ä opprettholde funksjonell avhengighet og logisk tenking, samtidig som den tillater posisjon og tidsforlÞp. (Dette er fortsatt ikke forstÄtt i vÄr tid i den brutale verden av situasjonsprogrammering).

Lisp, som fungerer som et kraftig programmeringssprÄk og metaprogrammeringssprÄk, som kan representere sin egen teori, er et eksempel pÄ ekte datavitenskap. Hvis du lÊrer det og andre lignende ting, vil du kunne tenke dypere og ta stÞrre ansvar for din egen skjebne enn hvis du bare hadde lÊrt Ä programmere i Fortran eller dets moderne ekvivalenter (
 slik kan du nÊrme deg programmere!).

Du vil lÊre mye mer om spesielle designformer som er nÞdvendige i beregninger (for eksempel, det verdsettes vanligvis ikke nÄr beregninger ofte krever Ä gÄ utenfor beregningsmiljÞet: en av de spesielle egenskapene ved lagrede programberegninger er at dette ikke bare er materiale for programmet, men materiale for en helt ny datamaskin).

En annen grunn til Ă„ velge Perl's definisjon er at beregning generelt er mye mer knyttet til utviklingen av systemer av mange typer enn til algoritmer, "datakonstruksjoner" eller til og med programmering som sĂ„dan. For eksempel er en datamaskin et system, beregning er systemer, et lokalt nettverk og internett er systemer, og de fleste programmer bĂžr representere bedre systemer enn de som eksisterer (den gamle programmeringsstilen fra 50-tallet har vedvart til det punktet hvor det virker som om programmering mĂ„ vĂŠre slik — ingenting er mer fjernt fra sannheten).

Internett er et godt eksempel — i motsetning til de fleste programmer i vĂ„r tid, trenger ikke internett Ă„ stoppes for Ă„ fikse eller forbedre noe — det ligner mer pĂ„ et biologisk system — etter vĂ„rt Ăžnske, enn det som de fleste mennesker anser for Ă„ vĂŠre et beregningssystem. Og det er mye mer skalerbart og pĂ„litelig enn nesten alle programvaresystemer som eksisterer i dag. Dette er virkelig verdt Ă„ tenke pĂ„ fĂžr man lĂŠrer nybegynnere i programmering slike mindre kraftige konsepter!

SĂ„, hva vi mĂ„ gjĂžre i det fĂžrste kurset i datavitenskap, er Ă„ ta hensyn til hva studentene konkret kan gjĂžre i starten, og deretter forsĂžke Ă„ holde seg innenfor deres "kognitive belastning" for Ă„ hjelpe dem til Ă„ komme til det som virkelig er viktig. Det er svĂŠrt viktig Ă„ "forbli ekte" og finne mĂ„ter som er intellektuelt ĂŠrlige og egner seg for de som nettopp begynner Ă„ lĂŠre. (Vennligst ikke lĂŠr bort dĂ„rlige ideer bare fordi de virker litt enklere — mange dĂ„rlige ideer er faktisk enklere!).

Studenter mĂ„ starte med Ă„ lage noe som har mange viktige egenskaper som jeg har diskutert her. Dette bĂžr vĂŠre et system av flere dynamisk samhandlende deler og sĂ„ videre. En god mĂ„te Ă„ bestemme hvilket programmeringssprĂ„k som skal brukes, er Ă„ rett og slett lage noe som har tusenvis av samhandlende deler! Hvis det ikke er tilfelle, bĂžr du finne noe som er. Det verste man kan gjĂžre, er Ă„ sette studentene pĂ„ en vei med for lite flyt, som vil begrense de storslĂ„tte ideene. Dette dreper dem — og vi Ăžnsker Ă„ dyrke dem, ikke kaste dem bort.

Om GoTo-skolen

Alan Kay: Hvordan jeg ville undervise i Computer Science 101

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster