MITがSICPを研究しなくなった理由

先日、NYC Lispラリーでの年初のスピーチに大きな注目を集めました。ジェラルドジェイサスマンは、偉大で強力なSICPの作者の1人であり、Schemeのゴッドファーザーです。 それはすべてのせいです-伝説となったMIT 6.001がSassmanとAbelsonの本「コンピュータープログラムの構造と解釈」(質問は59分で尋ねられました)に基づいて構築され、なぜ教育を止めたのかという質問に対する答えです。







Sassmanは2つの理由を特定しました。 ただし、それらの最初のものには特別なものは何もないことにすぐに気付きます。 1997年までに、AbelsonとSassmanは80年代のほぼ同じことを話すことにうんざりしていたので、彼らは教職を辞めることを決め、学科の長にコース自体をどうするかを自分で決めるように勧めました。 本当に驚くことは何もありません-あなたがそれを十分に長くするならば、何でも使い古されることができます。



ただし、2番目の理由はもっと深刻です。 Sassmanによれば、彼とAbelson氏は、SICPカリキュラムでは、今日の「エンジニアリング」に向けてエンジニアを準備することができなくなったことに気付きました。 80年代と90年代に、エンジニアはシンプルでよく研究された「パーツ」を組み合わせて複雑なシステムを構築しました。 SICPの目的は、そのようなシステムについて推論するための抽象化言語を提供することでした。



今日はそうではありません。 現在、エンジニアは通常、完全には理解していない複雑なハードウェアのコードを記述します(これは、怠secretや時間の不足ではなく、企業秘密が原因で起こることがよくあります-同じAppleとそのテクノロジーを使用してください)。 ソフトウェア環境は最も広範な機能を備えた巨大なライブラリで構成されているため、ソフトウェアについても同じことが言えます。 Sassmanによれば、今日、学生はほとんどの時間をこれらのライブラリのマニュアルを読んで、単純な目標にリンクする方法を見つけて、すべてが機能し、必要なことを行うようにしています。



Sassmanによれば、「今日のプログラミングは科学に似ています。図書館に参加して「突く」ことです-それが何をするのか見てください。 次に、「これをカスタマイズして、必要なことを行うことができますか?」と自問します。 単純な小さな部品から大規模なシステムを構築する場合、SICPで使用される「合成による分析」アプローチは無関係になりました。 今日は「突く方法」でプログラミングします。



結局、PythonはMITのLispの代替として選ばれました。 教師の言語を支持して、Pythonが非常に多くの種類のプロジェクトの演習を解決するために使用できるライブラリを多数備えているという事実(たとえば、ロボットを制御するためのソフトウェアを作成するため)は、教師の言語を支持します。



しかし、Sassman自身は、Pythonを使用することは「遅延バインディング」ソリューションであると冗談を言いました。SICPトレーニングプランは、それが実施されたものよりも「一貫性がある」からです。 彼は、同僚とともに、最適なトレーニング計画がどうあるべきかをまだ想像できないことを認めました。



一般的な現代の教育と将来のソフトウェアエンジニアが行うべきことについての意見は根本的に異なります。したがって、革新から明確な結論を出すことは不可能です。 そのうちの1人によると、CSを教える基本的な目標は、コンピューターがどのように機能するかを理解することであり、特定のプログラミング言語、さらにはライブラリーを学ぶことではありません。 MITでのSICP時代の終わりについてのAbelsonコースの共著者の意見は、 ここにあります



現代経済では、市場に多数の応用プログラマが緊急に必要であり、大学は将来に向けて学生を準備する責任を果たしています。 当然のことながら、特にキャリアの開始時にすべてを学ぶことは不可能に思えます。 同時に、CSを真剣に研究することで、悪いコードの量と仲間の開発者の苦痛を減らすことができます。



MITの話の1つは、「SICPとLispの研究は、新入生が問題を解決する可能性(問題解決を意味する)と彼らの仕事をする能力に関して、ほとんどの世界を彼らの後ろに置き始める瞬間である」と常に言っていました。 さらに、将来の多くのMIT卒業生は、誰かのライブラリを使用するのではなく、自分でライブラリを作成することだけを行います。 ビジネスの厳しい現実にもかかわらず、私たちの中には、プログラミングをゼロから学び、リソースを効率的に使用し、自転車を構築するプロセスを、他の人のAPIとの毎日の対決や既製のオープンソースのリンクよりも(密かに)楽しんでいる人がいるようです必要なことを行うためのコンポーネント-Sassmanが語ったまさに「仕事を終わらせる」(ただし、この点での新しいアプローチは実稼働タスクにより近い)。 ただし、トレーニング中に学生がコンパイラ/インタプリタを作成しなければならなかった時代は、私たちに思われるよりも早く戻ることができます。



もちろん、これはすべて、SICPに精通することを拒否する理由ではありません。 伝統的に、 自体と講義へのリンクが添付されています。



All Articles