Alan Kay: Jinsi ningefundisha Sayansi ya Kompyuta 101

"Moja ya sababu za kwenda chuo kikuu ni kuhama zaidi ya mafunzo rahisi ya ufundi na badala yake kufahamu mawazo ya kina."

Alan Kay: Jinsi ningefundisha Sayansi ya Kompyuta 101

Hebu tufikirie swali hili kidogo. Miaka kadhaa iliyopita, idara za Sayansi ya Kompyuta zilinialika kutoa mihadhara katika vyuo vikuu kadhaa. Karibu kwa bahati, niliuliza hadhira yangu ya kwanza ya wanafunzi wa chini, wanafunzi waliohitimu, na maprofesa kuhusu ufafanuzi wao wa "Sayansi ya Kompyuta." Kila mtu angeweza tu kutoa ufafanuzi wa uhandisi. Nilifanya hivi katika kila sehemu mpya, na kila mahali kulikuwa na matokeo sawa.

Swali lingine lilikuwa: "Douglas Engelbart ni nani?" Watu kadhaa walisema, "haikuwa kitu cha kufanya na kipanya cha kompyuta?" (na hili lilinikatisha tamaa sana, kwa kuwa jumuiya yangu ya wanasayansi ilikuwa imeweka jitihada nyingi katika kuhakikisha kwamba jibu la swali hili linawezekana kwa kubofya mara mbili au tatu za kipanya na kusadiki kwamba Engelbart kweli alikuwa na kitu cha kufanya na kipanya cha kompyuta) .

Sehemu ya shida ilikuwa ukosefu wa udadisi, kwa sehemu finyu ya malengo ya kibinafsi ambayo hayakuhusiana na kujifunza, ukosefu wa ufahamu wa sayansi hii ilikuwa nini, na kadhalika.

Nimekuwa nikifanya kazi kwa muda katika idara ya sayansi ya kompyuta katika Chuo Kikuu cha California kwa miaka kadhaa (kimsingi mimi ni profesa, lakini si lazima niende kwenye mikutano ya idara). Mara kwa mara mimi hufundisha madarasa, wakati mwingine kwa wanafunzi wa mwaka wa kwanza. Kwa miaka mingi, kiwango cha chini cha udadisi katika Sayansi ya Kompyuta kimeshuka sana (lakini kiwango cha umaarufu pia kimeongezeka, kwani kompyuta inaonekana kama njia ya kazi inayolipa vizuri ikiwa unaweza kuweka nambari na kupata cheti kutoka juu. 10 shule). Ipasavyo, hakuna mwanafunzi hata mmoja aliyewahi kulalamika kwamba lugha ya kwanza katika Chuo Kikuu cha California ni C++!

Inaonekana kwangu kuwa tunakabiliwa na hali ambayo maana zote mbili za "Kompyuta" na "Sayansi" zimeharibiwa na dhana dhaifu, kubwa kuunda neno jipya - aina ya lebo kwenye jeans - ambayo inasikika nzuri lakini ni nzuri. tupu kabisa. Neno linalohusiana ambalo limeharibiwa vile vile ni "uhandisi wa programu", ambayo, tena, haikutumia mawazo ya busara zaidi ya "programu" na "uhandisi", lakini iliunganisha tu (hii ilifanyika kwa makusudi katika miaka ya sitini, wakati ilifanyika. neno lililoundwa).

Mojawapo ya sababu za kwenda chuo kikuu ni kuendelea zaidi ya mafunzo rahisi ya ufundi na badala yake kufahamu mawazo ya kina. Inaonekana kwangu kuwa ni jambo la busara kwa utangulizi wa utaalamu kujaribuβ€”kupitia mifano ikiwezekanaβ€”kuwafanya wanafunzi wajishughulishe na matatizo ya maisha halisi na kuanza kuelewa ni nini hasa kinachovutia, muhimu, na muhimu katika uwanja huo.

Wanafunzi wa darasa la kwanza hufurahi wanapoonyeshwa jinsi rula iliyo juu ya rula nyingine inakuwa mashine ya kuongeza, ambayo wanaweza kuwashinda watoto wa darasa la 5 kwa kuongeza sehemu. Na kisha watafurahi kushiriki katika maendeleo ya mashine zilizoboreshwa za kuongeza. Waligusa kompyuta halisi - chombo cha kimwili na kiakili kinachotusaidia kufikiri. Walijifunza njia nzuri sana ya kuwakilisha nambari - bora zaidi kuliko kile kinachofundishwa shuleni!

Waliweza kuchanganya wazo lao la kawaida la "kuongeza" kama "kukusanya" na kitu sawa na mali mpya yenye nguvu. Waliipanga ili kuweza kutatua matatizo mbalimbali.

Pia waliipanua. Nakadhalika. Hii si kompyuta ya kidijitali. Na hii sio kompyuta iliyo na programu iliyokaririwa. Lakini hiyo ndiyo kiini cha kompyuta. Kama tu utaratibu wa antikythera - Hii kwa ujumla ni kiini cha kompyuta na kompyuta.

Alan Kay: Jinsi ningefundisha Sayansi ya Kompyuta 101

Antikythera Mechanism

Je, tunaweza kufika umbali gani na tunaweza kufanya kiasi gani kabla mambo hayajaharibika na kupotea katika mambo ya kufikirika? Siku zote nimekuwa sehemu ya tabia Alan Perlis - mshindi wa kwanza wa Tuzo ya Turing, ambaye anaweza kuwa aligundua neno "Sayansi ya Kompyuta" - ambaye katika miaka ya 60 alisema: "Sayansi ya Kompyuta ni sayansi ya michakato." Michakato yote.

Kwa ajili ya Quora, tusijaribu kusukuma hili zaidi au kuligeuza kuwa fundisho la kidini. Wacha tutumie wazo hilo kwa furaha Ala Perlisakufikiria vizuri zaidi kuhusu uwanja wetu. Na hasa kuhusu jinsi ya kuifundisha. Sasa tunahitaji kuangalia maana ya kisasa ya "sayansi", na Perlis alikuwa na uhakika kabisa kwamba haipaswi kupunguzwa kwa maana za zamani (kama vile "mkusanyiko wa ujuzi") na matumizi (kama vile "sayansi ya maktaba" au hata "kijamii." sayansi") "). Kwa "sayansi" alijaribu kuelewa jambo kwa kuunda mifano/ramani zinazojaribu kuonyesha, "kufuatilia" na kutabiri matukio.

Alan Kay: Jinsi ningefundisha Sayansi ya Kompyuta 101

Nimetoa mahojiano kadhaa kuhusu jinsi ramani na miundo bora zaidi inaweza kutoshea T-shati, jinsi milinganyo ya Maxwell na wengine hufanya. Ulinganisho ni kwamba kuna β€œsayansi ya madaraja,” ingawa madaraja mengi yametengenezwa na mwanadamu. Lakini mara daraja linapojengwa, linawakilisha matukio ambayo wanasayansi wanaweza kujifunza, madaraja yanaweza kutumika kutengeneza mifano ya aina nyingi, na kuunda "nadharia za daraja" za kina na muhimu. Furaha ni kwamba unaweza kisha kubuni na kujenga madaraja mapya (nimetaja tayari kuwa hakuna kitu cha kufurahisha zaidi kuliko wanasayansi na wahandisi wanaofanya kazi pamoja kutatua shida kubwa na muhimu!)

Alan Kay: Jinsi ningefundisha Sayansi ya Kompyuta 101

Herbert Simon, mshindi wa Tuzo ya Turing na Tuzo ya Nobel, aliita yote "sayansi ya bandia" (na aliandika kitabu bora sana na jina sawa).

Alan Kay: Jinsi ningefundisha Sayansi ya Kompyuta 101

Ngoja nikupe mfano. Katika miaka ya 50, makampuni na vyuo vikuu vilijenga kompyuta za kumbukumbu na kuanza kuzipanga - na kulikuwa na wakati maalum wakati Fortran ilitoka mwaka wa 1956 - ambayo haikuwa lugha ya kwanza ya ngazi ya juu, lakini labda ya kwanza ilifanya vizuri sana kwamba imekuwa. kutumika katika maeneo mengi tofauti, ikijumuisha mengi ambayo hapo awali yalifanywa tu katika lugha ya mashine.

Haya yote yalizua "matukio".

Alan Kay: Jinsi ningefundisha Sayansi ya Kompyuta 101

John McCarthy

Historia ya Lisp ni ngumu zaidi, lakini John McCarthy alipendezwa na kujaribu kupata "nadharia ya hisabati ya hesabu" na aliazimia kufanya kila kitu kifanye kazi kikamilifu. Kazi ya eval, ambayo hutafsiri Lisp, inaweza kutoshea kwa urahisi kwenye T-shati! Ikilinganishwa na "mfumo wa programu," hii sio muhimu. Muhimu zaidi, hii "nadharia ya hesabu" ilikuwa dhana yenye nguvu zaidi kuliko Fortran! Hili lilikuwa wazo bora zaidi la daraja!

Asili ndogo ya Lisp inaruhusu wazo zima la programu kunaswa kwa kubofya kadhaa kwa kiwango cha kina na kufikiria kwa kiwango ambacho kinaonekana kuwa ngumu sana unapoangalia mabaki makubwa (hii ni moja ya sababu. kwa nini wanasayansi wanapenda hisabati kuwa ngumu na yenye nguvu). Hisabati inayotumika hapa ni hisabati mpya kwa sababu inaruhusu dhana kama vile "kabla" na "baada ya" na hii husababisha "mantiki inayobadilika" ambayo inaruhusu utegemezi wa kiutendaji na mtiririko wa kimantiki wa fikra kuhifadhiwa huku pia ikiruhusu nafasi na kifungu. ya wakati. (Hii bado haijaeleweka katika wakati wetu katika ulimwengu wa ukatili wa programu ya hali).

Lisp, kama lugha ya programu yenye nguvu na lugha ya metali ambayo inaweza kuwakilisha nadharia yake mwenyewe, ni mfano wa sayansi ya kweli ya kompyuta. Ikiwa utaijifunza na mambo mengine yanayofanana, utaweza kufikiria kwa undani zaidi na kuwajibika zaidi kwa hatima yako mwenyewe kuliko ikiwa umejifunza tu kupanga katika Fortran au sawa na yake ya kisasa (... ili uweze kuwa karibu na watengeneza programu! )

Utajifunza mengi zaidi juu ya aina maalum za muundo unaohitajika katika kompyuta (kwa mfano, kawaida haithaminiwi wakati kompyuta inahitaji kwenda nje ya mazingira ya kompyuta: moja ya sifa maalum za kompyuta laini iliyohifadhiwa ni kwamba sio tu. nyenzo za programu, lakini nyenzo za kompyuta mpya kabisa).

Sababu nyingine ya kuchagua ufafanuzi wa Perlis ni kwamba, kwa ujumla, kompyuta inahusika zaidi na uundaji wa mifumo ya aina nyingi kuliko algorithms, "miundo ya data" au hata programu yenyewe. Kwa mfano, kompyuta ni mfumo, kompyuta ni mfumo, mtandao wa ndani na mtandao ni mifumo, na programu nyingi zinapaswa kuwa mifumo bora kuliko ilivyo (mtindo wa zamani wa programu kutoka miaka ya 50 ulidumu hadi inaonekana kwamba programu inapaswa kuwa. kama hii - hakuna kinachoweza kuwa zaidi kutoka kwa ukweli).

Mtandao ni mfano mzuri - tofauti na programu nyingi siku hizi, Mtandao hauhitaji kusimamishwa ili kurekebisha au kuboresha chochote - ni kama mfumo wa kibayolojia - kwa nia yetu - kuliko vile watu wengi hufikiria kama mfumo wa kompyuta. Na ni zaidi scalable na kuaminika kuliko karibu mifumo yote ya programu inapatikana leo. Hii inafaa kufikiria kabla ya kufundisha dhana zenye nguvu kidogo kwa watayarishaji programu wapya!

Kwa hivyo tunachohitaji kufanya katika kozi ya mwaka wa kwanza ya Sayansi ya Kompyuta ni kuzingatia kile ambacho wanafunzi wanaweza kuwa wakifanya mwanzoni kabisa, na kisha kujaribu kusalia ndani ya "mzigo wao wa utambuzi" ili kuwasaidia kufikia kile ambacho ni muhimu sana . Ni muhimu "kukaa halisi" na kutafuta njia ambazo ni za uaminifu kiakili na zinazofaa kwa wale wanaoanza. (Tafadhali usifundishe mawazo mabaya kwa sababu tu yanaonekana rahisi zaidi - mawazo mengi mabaya ni rahisi zaidi!).

Wanafunzi waanze kwa kuunda kitu ambacho kina sifa nyingi muhimu nilizojadili hapa. Inapaswa kuwa mfumo wa sehemu kadhaa zinazoingiliana kwa nguvu, na kadhalika. Njia nzuri ya kuamua ni lugha gani ya programu ya kutumia ni kutengeneza tu kitu ambacho kina maelfu ya sehemu zinazoingiliana! Ikiwa sivyo, basi unapaswa kupata moja. Jambo baya zaidi unaloweza kufanya ni kuwaweka wanafunzi kwenye njia ya ufasaha mdogo sana, ambayo ingepunguza sana mawazo makubwa. Inawaua tu - na tunataka kuwalea, sio kuwaua.

Kuhusu GoTo School

Alan Kay: Jinsi ningefundisha Sayansi ya Kompyuta 101

Chanzo: mapenzi.com

Kuongeza maoni