アラン・ケむ: コンピュヌタヌ サむ゚ンス 101 をどのように教えるか

「実際に倧孊に行く理由の䞀぀は、単玔な職業蚓緎を超えお、より深いアむデアを理解するためです。」

アラン・ケむ: コンピュヌタヌ サむ゚ンス 101 をどのように教えるか

この質問に぀いお少し考えおみたしょう。 数幎前、私はコンピュヌタサむ゚ンス孊郚からいく぀かの倧孊で講矩をするよう誘われたした。 ほが偶然に、私は初めおの聎衆である孊郚生、倧孊院生、教授に「コンピュヌタヌ サむ゚ンス」の定矩に぀いお尋ねたした。 誰もが工孊的な定矩しか䞎えるこずができたせんでした。 これを新しい堎所ごずに行ったずころ、どこでも同様の結果が埗られたした。

もう䞀぀の質問は、「ダグラス・゚ンゲルバヌトずは誰ですか?」ずいうものでした。 䜕人かの人は、「コンピュヌタのマりスが関係しおいるのではないか」ず蚀いたした。 (そしお、これは私にずっお非垞に残念でした。なぜなら、私の科孊界は、この質問に察する答えがマりスの XNUMX  XNUMX 回のクリックで可胜であるこずを確認するために倚倧な努力を払っおおり、゚ンゲルバヌトが本圓にコンピュヌタヌのマりスず関係があるず確信しおいたからです。) 。

問題の䞀郚は奜奇心の欠劂、䞀郚は孊習に関係のない個人的な目暙の狭さ、䞀郚はこの科孊が䜕であるかに぀いおの理解䞍足などでした。

私はカリフォルニア倧孊のコンピュヌタ サむ゚ンス孊郚で数幎間パヌトタむムで働いおいたす (私は本質的には教授ですが、孊郚の䌚議に出垭する必芁はありたせん)。 私は時々、10幎生向けにクラスを教えおいたす。 長幎にわたっお、もずもず䜎いコンピュヌタ サむ゚ンスぞの関心は倧幅に䜎䞋したした (しかし、プログラミングができおトップから蚌明曞を取埗できれば、コンピュヌティングは高収入の仕事ぞの道ずみなされおいるため、人気のレベルも䞊昇しおいたす) XNUMX校。 したがっお、カリフォルニア倧孊の第䞀蚀語が C++ であるこずに文句を蚀う孊生は䞀人もいたせん。

私たちは、「コンピュヌタヌ」ず「科孊」の䞡方の意味が、匱くお巚倧な抂念によっお砎壊され、ゞヌンズに付けられた䞀皮のラベルずいう新しい甚語を生み出す状況に盎面しおいるように思えたす。聞こえはいいですが、実際はそうではありたせん。かなり空いおいたす。 同様に砎壊された関連甚語に「゜フトりェア ゚ンゞニアリング」がありたす。これもたた、「プログラミング」ず「゚ンゞニアリング」の最も独創的なアむデアを䜿甚せず、単にそれらを組み合わせただけです (これは XNUMX 幎代に意図的に行われたした。造語。

実際に倧孊に行く理由の XNUMX ぀は、単玔な職業蚓緎を超えお、より深いアむデアを理解するこずです。 専門分野ぞの入門ずしお、可胜であれば䟋を通しお、孊生を珟実の問題に取り組たせ、䜕が実際に興味深く、重芁で、䜕がこの分野の䞭心であるのかを理解し始めるように努めるこずは、非垞に合理的であるように私には思われたす。

5 幎生は、定芏を別の定芏の䞊に眮くず足し算機になり、分数の足し算で XNUMX 幎生に勝぀こずができる様子を芋お倧喜びしたす。 そしお、圌らは改良された加算機の開発に喜んで参加するでしょう。 圌らは、私たちの思考を助ける物理的か぀粟神的なツヌルである本物のコンピュヌタヌに觊れたした。 圌らは数字を衚す本圓に効果的な方法を孊びたした。孊校で教えるよりも効果的です。

圌らは、「远加する」こずを「蓄積する」ずいう垞識的な考えず、匷力な新しい特性を備えた同様のものず組み合わせるこずができたした。 圌らはさたざたな問題を解決できるようにプログラムしたした。

圌らはそれを拡匵したした。 等々。 これはデゞタルコンピュヌタではありたせん。 そしお、これはプログラムを蚘憶したコンピュヌタヌではありたせん。 しかし、それがコンピュヌタの本質なのです。 ず同じように アンティキティラのメカニズム - これは䞀般に、コンピュヌタずコンピュヌティングの本質です。

アラン・ケむ: コンピュヌタヌ サむ゚ンス 101 をどのように教えるか

アンティキティラのメカニズム

物事が手に負えなくなり、抜象抂念に陥っおしたう前に、どこたで進めお、どれだけのこずができるのでしょうか? 私はい぀も性栌描写に興味がありたした アラン・パヌリス - 最初のチュヌリング賞受賞者で、「コンピュヌタ サむ゚ンス」ずいう甚語を発明した可胜性がある人 - 60 幎代に「コンピュヌタ サむ゚ンスはプロセスの科孊である」ず蚀いたした。 すべおのプロセス。

Quora のために、これをさらに掚し進めたり、宗教的な教矩に倉えたりするのはやめたしょう。 アむデアを楜しく䜿いたしょう アラ・ペルリサ私たちの分野に぀いおもっずよく考えるために。 そしお特にそれを教える方法に぀いお。 私たちは今、「科孊」の珟代的な意味を怜蚎する必芁があり、パヌリスはそれが叀い意味「知識の収集」などや甚途「図曞通科孊」や「瀟䌚」などで薄められるべきではないずかなり自信を持っおいたした。科孊")")。 「科孊」によっお、圌は珟象を瀺し、「远跡」し、予枬しようずするモデル/マップを䜜成するこずによっお珟象を理解しようずしたした。

アラン・ケむ: コンピュヌタヌ サむ゚ンス 101 をどのように教えるか

私は、最高の地図やモデルがいかにしお T シャツにフィットするか、マクスりェルの方皋匏などがどのように行われるかに぀いお、いく぀かのむンタビュヌに応じおきたした。 ほずんどの橋は人工のものであるにもかかわらず、「橋の科孊」が存圚するずいうたずえです。 しかし、橋が建蚭されるず、それは科孊者が研究できる珟象を衚し、橋を䜿甚しおさたざたな皮類のモデルを䜜成し、包括的で有甚な「橋理論」を圢成するこずができたす。 楜しいのは、新しい橋を蚭蚈しお建蚭できるこずです (科孊者ず゚ンゞニアが協力しお倧きな重芁な問題を解決するこずほど楜しいこずはないずすでに述べたした)。

アラン・ケむ: コンピュヌタヌ サむ゚ンス 101 をどのように教えるか

チュヌリング賞ずノヌベル賞を受賞したハヌバヌト・サむモンは、これらすべおを「人工の科孊」ず呌びたしたそしお同じタむトルの玠晎らしい本を曞きたした。

アラン・ケむ: コンピュヌタヌ サむ゚ンス 101 をどのように教えるか

䟋を挙げおみたしょう。 50 幎代、䌁業や倧孊はメモリヌ コンピュヌタヌを構築し、プログラミングを開始したした。そしお 1956 幎に Fortran が登堎したずき、特別な瞬間がありたした。これは最初の高氎準蚀語ではありたせんでしたが、おそらく、非垞によく䜜られた最初の蚀語であり、以前は機械語でのみ行われおいたものも倚く、さたざたな分野で䜿甚されおいたす。

これらすべおが「珟象」を匕き起こしたした。

アラン・ケむ: コンピュヌタヌ サむ゚ンス 101 をどのように教えるか

ゞョン・マッカヌシヌ

Lisp の歎史はもっず耇雑ですが、ゞョン マッカヌシヌは「蚈算の数孊理論」を芋぀けるこずに興味を持ち、すべおを完璧に機胜させるこずを決意したした。 Lisp を解釈する eval 関数は、T シャツに簡単に収たりたす。 「プログラミングシステム」に比べれば埮々たるものです。 さらに重芁なこずに、この「蚈算理論」は Fortran よりも匷力な抂念でした。 これは最高の橋のアむデアでした。

Lisp のミニチュアな性質により、プログラミングのアむデア党䜓を数回クリックするだけでより深いレベルで捉えるこずができ、巚倧な成果物を芋るず単玔に䞍可胜に思えるレベルでじっくり考えるこずができたす (これが理由の XNUMX ぀です)なぜ科孊者は数孊がコンパクトで匷力であるこずを奜むのか)。 ここで䜿甚される数孊は新しい数孊です。なぜなら、「前」や「埌」などの抂念が可胜になり、これが「可倉論理」に぀ながり、関数の䟝存性ず論理的な思考の流れの䞡方を維持しながら、䜍眮や経過も考慮できるからです。時間の。 (このこずは、状況に応じたプログラミングの残酷な䞖界の珟代でもただ理解されおいたせん)。

Lisp は、独自の理論を衚珟できる匷力なプログラミング蚀語およびメタ蚀語ずしお、真のコンピュヌタヌ サむ゚ンスの䞀䟋です。 Fortran やその他の同様のこずを孊べば、単に Fortran やそれに盞圓する最新蚀語でプログラミングを孊んだ堎合よりも、より深く考えるこずができ、自分の運呜に察しおより責任を持぀こずができるようになりたす (...したがっお、プログラマヌに近づくこずができたす!) 。

コンピュヌティングに必芁な特別な皮類の蚭蚈に぀いお、さらに詳しく孊ぶこずができたす (たずえば、コンピュヌティングではコンピュヌティング環境の倖に出る必芁が倚い堎合、通垞は評䟡されたせん。ストアド ゜フト コンピュヌティングの特殊な特城の XNUMX ぀は、単なるコンピュヌティングではないずいうこずです。プログラムの玠材ではありたすが、たったく新しいコンピュヌタヌの玠材です)。

Perlis の定矩を遞択するもう 50 ぀の理由は、䞀般にコンピュヌティングは、アルゎリズムや「デヌタ構造」、さらにはプログラミング自䜓よりも、さたざたな皮類のシステムの䜜成にはるかに関心があるずいうこずです。 たずえば、コンピュヌタはシステムであり、コンピュヌティングはシステムであり、ロヌカル ネットワヌクずむンタヌネットもシステムであり、ほずんどのプログラムは実際よりも優れたシステムであるべきです (XNUMX 幎代の叀いスタむルのプログラミングは、プログラミングは次のように行われる必芁があるず思われるたで続きたした)。このように、真実からかけ離れたものは䜕もありたせん。

むンタヌネットがその良い䟋です。最近のほずんどの゜フトりェアずは異なり、むンタヌネットは䜕かを修正したり改善したりするために停止する必芁はありたせん。むンタヌネットは、ほずんどの人がコンピュヌティング システムずしお考えおいるものよりも、私たちの意図により、生物孊的なシステムに䌌おいたす。 たた、珟圚利甚可胜なほがすべおの゜フトりェア システムよりもはるかに拡匵性ず信頌性が優れおいたす。 これは、初心者プログラマにそれほど匷力ではない抂念を教える前に、よく考える䟡倀がありたす。

したがっお、コンピュヌタ サむ゚ンス コヌスの XNUMX 幎目で私たちが行う必芁があるのは、孊生が最初に䜕をしおいるかを正確に考慮し、孊生が本圓に重芁なこずに到達できるように「認知負荷」の範囲内に留たるように努めるこずです。 「珟実を保ち」、知的に正盎で、始めたばかりの人に適した方法を芋぀けるこずが重芁です。 (少し単玔そうに芋えるからずいっお、悪いアむデアを教えないでください。倚くの悪いアむデアは実際にはもっず単玔です!)。

孊生は、ここで説明した重芁な特性を倚く備えたものを䜜成するこずから始める必芁がありたす。 それは、動的に盞互䜜甚するいく぀かの郚分からなるシステムである必芁がありたす。 どのプログラミング蚀語を䜿甚するかを決める良い方法は、䜕千もの盞互䜜甚する郚分を持぀ものを単玔に䜜成するこずです。 そうでない堎合は、芋぀けおください。 最もやっおはいけないこずは、流暢さがあたりにも䜎い道に生埒を誘導するこずです。そうなるず、倧きなアむデアが倧幅に制限されおしたいたす。 それは圌らを殺すだけです - そしお私たちは圌らを殺すのではなく育おたいのです。

GoToスクヌルに぀いお

アラン・ケむ: コンピュヌタヌ サむ゚ンス 101 をどのように教えるか

出所 habr.com

コメントを远加したす