Alan Kay: Si do ta mësoja Informatikën 101

Një nga arsyet për të regjistruar në universitet është të dalësh përtej trajnimet e thjeshta profesionale dhe në vend të kësaj të kapesh për ide më të thella.

Alan Kay: Si do ta mësoja Informatikën 101

Le të mendojmë pak për këtë pyetje. Disa vjet më parë, departamentet e Shkencës së Kompjuterit më ftuan të mbaj lecture në disa universitete. Gati rastësisht e pyesja audiencën time të parë, e cila përbëhej nga studentë të vitit të fundit, doktorantë dhe profesorë, për përkufizimin e "Shkencës së Kompjuterit". Të gjithë mundën të jepnin vetëm një përkufizim inxhinierik. E kam bërë këtë në çdo vend të ri dhe gjithmonë kam marrë rezultate të ngjashme.

Një tjetër pyetje ishte: "Kush ishte Douglas Engelbart?". Disa njerëz thanë: "nuk ishte ai ndonjëherë i lidhur me mausin kompjuterik?" (dhe kjo më zhgënjeu shumë, sepse komuniteti im shkencor kishte punuar shumë për ta bërë të mundur që përgjigjja për këtë pyetje të jepet pas dy-tre klikimeve dhe të kuptohet se Engelbart ishte vërtet i lidhur me mausin kompjuterik).

Pjesërisht problemi ishte mungesa e kuriozitetit, pjesërisht unëzimi i qëllimeve personale, të cilat nuk ishin të lidhura me mësimin, dhe pjesërisht mungesa e një ideje se çfarë përfshin kjo shkencë, e shumë e tjera.

Kam punuar me kohë të pjesshme në departamentin e Shkencave Kompjuterike të Universitetit të Kalifornisë për disa vjet (në fakt, jam profesor, por nuk kam nevojë të shkoj në mbledhjet e departamentit). Periudha pas periudhave, unë mbaj mësime, ndonjëherë për studentët e parë. Gjatë këtyre viteve, niveli i ulët i kuriozitetit për Shkencën e Kompjuterit është reduktuar ndjeshëm (por gjithashtu ka rritur popullaritetin, sepse shkenca kompjuterike shihet si një rrugë për një punë të paguar mirë nëse di të programosh dhe ke marrë një certifikatë nga shkollat më të mira). Prandaj, asnjë student nuk ka ankuar deri tani se gjuha e parë në Universitetin e Kalifornisë është C++!

Më duket se jemi përballur me një situatë në të cilën të dyja kuptimet e "Kompjuter" dhe "Shkencë" janë shkatërruar nga konceptet masive të dobëta për të krijuar një term të ri - një lloj etikete për xhinset - e cila tingëllon mirë, por është mjaft bosh. Termi i lidhur, i cili gjithashtu është shkatërruar, "inxhinieria e softuerit", i cili përsëri nuk përdori idetë më të shkëlqyera të "programimit" dhe "inxhinierisë", por thjesht i kombinoi ato (kjo u bë në vitet e gjashtëdhjeta, kur u shpik termi).

Një nga arsyet për të regjistruar në universitet është të dalësh përtej trajnimet e thjeshta profesionale dhe në vend të kësaj të kapesh për ide më të thella. Më duket mjaft e arsyeshme që për një hyrje në specializim të provojmë - nëse është e mundur, me ndihmën e shembujve - që ata që mësojnë të angazhohen me probleme reale dhe të fillojnë të kuptojnë se çfarë është vërtet interesante, e rëndësishme dhe qendrore në këtë fushë.

Studentët e klasës të parë gëzohen kur u tregojnë se si një linjë e vendosur mbi një tjetër linjë bëhet një aritmetar, me të cilin ata mund të kalojnë djemtë e klasës së pestë kur shtojnë një pjesë fraksionale. Dhe pastaj ata do të jenë të lumtur që të angazhohen në zhvillimin e aritmetarëve më të përmirësuar. Ata prekin një kompjuter të vërtetë - një mjet fizik dhe mendor që na ndihmon të mendojmë. Ata kanë mësuar një mënyrë shumë efektive për të përfaqësuar numrat - më të efektshëm se sa mësohet në shkolla!

Ata arritën të lidhin idenë e tyre të qartë "shtimit" si "grumbullim" me diçka të ngjashme me vetitë e reja të fuqishme. E programuan atë në mënyrë që të ishte në gjendje të zgjidhte një mori problemesh.

Ata gjithashtu e zgjeruan atë. Dhe kështu me radhë. Ky nuk është një kompjuter digjital. Dhe kjo nuk është një kompjuter me program të ruajtur. Por kjo është thelbi i kompjuterit. Po ashtu si mekanizmi Antikythera është në thelb e gjithë natyra e kompjuterit dhe llogaritjeve.

Alan Kay: Si do ta mësoja Informatikën 101

Mekanizmi Antikythera

Sa larg mund të shkojmë dhe sa shumë mund të bëjmë para se gjithçka të dalë jashtë kontrollit dhe ne të humbasim në abstraksione? Unë kam qenë gjithmonë i interesuar në karakterizimin e Alan Turing - fituesi i parë i çmimit Turing, që ndoshta shpiku termin "Shkenca e Kompjuterit" - i cili në vitet '60 tha: "Shkenca e Kompjuterit është shkenca e proceseve". Të gjithë proceseve.

Për kompaninë Quora, le të mos përpiqemi ta shtyjmë këtë më tej ose ta kthejmë në një doktrinë religjioze. Le ta përdorim thjesht idenë të Alan Turing, për të menduar më mirë për fushën tonë. Veçanërisht për mënyrën se si ta mësojmë këtë. Tani, na duhet të shohim kuptimin modern të 'shkencës', dhe Perlis ishte mjaft i sigurt se nuk duhet të hollojë me kuptimet e vjetra (për shembull, si 'akumulim njohurish') dhe përdorimet (p.sh., 'bibliotekë' ose madje 'shkencat shoqërore'). Në 'shkencë', ai përpiqej të kuptonte fenomenin, duke krijuar modele/harta që tentonin të tregojnë, 'ndjekin' dhe parashikojnë dukuri.

Alan Kay: Si do ta mësoja Informatikën 101

Kam dhënë disa intervista për mënyrën se si modelet dhe hartat më të mira shpesh mund të përshtaten për një bluzë, ashtu si funksionet e Maxwell-it dhe të tjerëve. Analogjia është se ka një 'shkencë të urave', ndonëse shumica e urave janë krijesa të njeriut. Por sapo ura është ndërtuar, ajo pasqyron dukuri, shkencëtarët mund t’i studiojnë ato, dhe nga urat është e mundur të krijohen modele të shumëllojshme dhe të formohen 'teori urash' të mirëfillta dhe të dobishme. E bukura është se pastaj mund të projektohen dhe ndërtohen ura të reja (më tashmë përmenda se ndoshta nuk ka asgjë më emocionuese se puna e përbashkët e shkencëtarëve dhe inxhinierëve për zgjidhjen e problemeve të mëdha dhe të rëndësishme!)

Alan Kay: Si do ta mësoja Informatikën 101

Herbert Simon, fitues i çmimit Turing dhe Çmimit Nobël, e quajti gjithë këtë 'shkencë mbi artificialishtin' (dhe shkroi një libër të shkëlqyer me të njëjtin titull).

Alan Kay: Si do ta mësoja Informatikën 101

Të jap një shembull. Në vitet '50, kompanitë dhe universitetet filluan të ndërtuan kompjuterë me programe të ruajtshme dhe filluan t'i programonin ata — dhe kishte një moment të veçantë kur në vitin 1956 u shfaq Fortran — që nuk ishte gjuha e parë e nivelit të lartë, por ndoshta e para e krijuar kaq mirë, sa që u përdor në shumë fusha të ndryshme, duke përfshirë të tilla që më parë ishin bërë vetëm në gjuhën makinë.

E gjithë kjo krijoi 'fenomene'.

Alan Kay: Si do ta mësoja Informatikën 101

John McCarthy

Historia e Lisp-it është më e ndërlikuar, por John McCarthy ishte i interesuar për përpjekjen për të gjetur 'teorinë matematike të llogaritjes' dhe ishte i bindur se gjithçka do të funksiononte përsosmërisht. Funksioni eval, i cili interpreton Lisp-in, lehtë vendoset në një bluzë! Krahasuar me 'sistemin e programimit' — kjo është e vogël. Më e rëndësishmja, kjo 'teori llogaritjeje' kishte një koncept më të fuqishëm se Fortran! Kjo ishte ideja më e mirë e urës!

Miniaturizimi i Lisp-it lejon që e gjithë ideja e programimit të kapet me disa shtypje në një nivel më të thellë dhe të mendohet në një nivel që duket thjesht e pamundur, kur shikon artefaktet e mëdha (kjo është një nga arsyet pse shkencëtarët preferojnë që matematika të jetë kompakte dhe e fuqishme). Matematika e përdorur këtu është një matematikë e re, pasi lejon koncepte si 'para' dhe 'pas', dhe kjo çon në 'logjikën e variablave', e cila lejon ruajtjen e varësisë funksionale dhe logjikës, gjithashtu duke lejuar pozitat dhe kalimin e kohës. (Kjo ende nuk kuptohet në kohën tonë në botën e ashpër të programimit situacional).

Lisp, si një gjuhë e fuqishme programimi dhe metalanguage që është në gjendje të paraqesë teorinë e tij, është një shembull i vërtetë i shkencës kompjuterike. Nëse e mësoni atë dhe gjëra të ngjashme, atëherë do të jeni në gjendje të mendoni më thellë dhe të keni më shumë përgjegjësi për fatin tuaj, sesa nëse thjesht do të kishit mësuar të programoni në Fortran ose ekuivalentet e tij moderne (… kështu që do të keni mundësi të afrohesh më afër programuesve!).

Do të mësoni shumë më tepër rreth llojeve speciale të dizajnit, që janë të nevojshme në llogaritje (p.sh., zakonisht nuk vlerësohet kur llogaritjet shpesh kërkojnë të dalin përtej ambientit të llogaritjes: një nga karakteristikat e veçanta të llogaritjeve të programeve të ruajtura është se nuk është vetëm një material për programin, por një material për një kompjuter krejtësisht të ri).

Një tjetër arsye për zgjedhjen e përcaktimit të Perlis është se në përgjithësi llogaritja është shumë më e lidhur me krijimin e sistemeve të shumtë, sesa me algoritet, 'strukturat e dhënash' ose madje programimin si i tillë. Për shembull, kompjuteri është një sistem, llogaritjet janë sisteme, rrjeti lokal dhe interneti janë sisteme, dhe shumica e programeve duhet të paraqesin sisteme më të mira sesa ato që janë (stili i vjetër i programimit nga vitet '50 ka vazhduar deri në atë pikë, sa duket se programimi duhet të jetë njësoj — nuk ka asgjë më të largët nga e vërteta).

Internet është një shembull i mirë - ndryshe nga shumica e programeve në kohën tonë, interneti nuk ka nevojë të ndalet për të riparuar ose përmirësuar diçka - ai është më shumë si një sistem biologjik - në përputhje me qëllimin tonë, sesa një sistem kompjuterik siç e përceptojnë shumica e njerëzve. Dhe ai është shumë më i shkallëzueshëm dhe i besueshëm se thuajse të gjitha sistemet softuerike që ekzistojnë sot. Kjo vlen të mendohet para se të mësojmë fillestarët në programim konceptet që nuk janë aq të fuqishme!

Pra, çfarë duhet të bëjmë në kursin e parë të Shkencës kompjuterike, është të merremi me atë që konkretisht studentët mund të bëjnë në fillim dhe pastaj të përpiqemi të mbetemi brenda 'ngarkesës së tyre njohëse' për t'i ndihmuar ata të arrijnë në atë çka është me të vërtetë e rëndësishme. Kaq e rëndësishme është të 'mbetesh i vërtetë' dhe të gjesh mënyra që të jenë inteligjente dhe të përshtatshme për ata që sapo fillojnë të mësojnë. (Ju lutem, mos i mësoni ide të këqija vetëm sepse duken pak më të thjeshta - shumë ide të këqija në të vërtetë janë më të thjeshta!).

Studentët duhet të fillojnë me krijimin e diçkaje që do të kishte shumë karakteristika të rëndësishme që kam diskutuar këtu. Kjo duhet të jetë një sistem me disa pjesë që ndërveprojnë dinamikisht e kështu me radhë. Një mënyrë e mirë për të vendosur se cili gjuhë programimi të përdoret, është thjesht të bësh diçka që ka mijëra pjesë që ndërveprojnë! Nëse nuk ka, atëherë duhet të gjesh një të tillë. Më e keqja që mund të bësh është të vendosësh studentët në një rrugë të tepërt të dobët, e cila do ta kufizonte shumë idetë e mëdha. Kjo thjesht i vret ata - dhe ne duam t'i rrisim ata, jo t'i vrasim.

Rreth shkollës GoTo

Alan Kay: Si do ta mësoja Informatikën 101

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster