なぜcファミリーは、LISPファミリーではなく、数学/ CSプログラムの標準CS研究連隊なのですか?[閉まっている]


14

私は自己改善のためにLISPに慣れてきました。私が気づいたことの1つは、LISPはCと言うよりも数学のパラダイム内にあるということです。構文と設計構造は、アルゴリズムの実際の数学的モデルを直接反映しているようです。優れた数学ベースのCSプログラムでさえ、LISPではなくCを学習する理由は、私には意味がありません。LISPはCよりも高い数学概念をより直接的に採用していると思います。Cで数学構造をモデル化できないと言っているのではありません。LISPが数学者にハードワイヤーされているように見えることに気付いています。

私は、JAVA学校でのジョエル・スポルスキーの暴言の多くを読みましたが、彼の評価に同意しますが、私の学校はその理由でJavaを教えませんでした。彼らは、ポインター、アルゴリズム設計、再帰、さらにはアセンブリ命令などの基本概念を教えるのに厳格でした。ただし、これらはすべてCおよびc ++で行いました。誰もこれおよび/またはその歴史の理由を知っていますか?


結局のところ、コンピューターサイエンスの学位はある程度言語にとらわれないものでなければなりません。CSの考え方は、コンピューターサイエンスが理論的であるため、新しい言語を学べるということです。外部には、CSがプログラマーおよび科学者になる方法を包括的に教えているようです。これは当てはまりません。言語の学習方法を学ぶことがCSの目的です。
クリス

2
LISPが「アルゴリズムの実際の数学モデルをエコー」するのとほぼ同じ方法で、Cはハードウェアの実際の構造をエコーし​​、Cのコンストラクトがメモリにマップされる方法は簡単です(当然、組み込みシステムに特に便利です)。しかし、私はあなたに完全に同意します。LISPで学部課程の授業をもう少し受講していただければ幸いでした。実際にさらに掘り下げることができました
ビルVB

回答:


13

OK。だから、退屈な答えは、結局のところ、ほとんどの学校は教授が満足していることを教え、ほとんどの教授はLispをハックして成長しなかったということです。彼らは、アルゴルベースの言語を使用して、フィールドで初期の年を過ごしました。このため、数年後、彼らがカリキュラムを構築しているとき、Pascal、C、C ++、Javaの基礎でCSを教える学校になります。

次に、ティアが低く、数年若い学校があります。そして、彼らは道をリードする学校によって設定されたバーを見上げます、そして、彼らは学生がCを知っているそれらの学校を去り、彼ら自身の学生が同じことを期待しているのを見るので、彼らはCを教え始め、次にC ++、そしてJava。

最後に、学生が履歴書に望むキーワードと一致する技術を教えるだけの技術機関または「ローエンド」機関があります。したがって、Javaを取得するだけです。

とは言っても、一部の学校 Lispを教えていますが、Lispは基本的な言語というよりはむしろ選択的な言語かもしれません。そして、Lispをスタンドアロン言語として教えていない学校でさえ、AIコースで広範に使用しているので、初心者のAIコースはLispプログラミングの開始に集中します。


2
聞こえます Cとc ++に敬意を払うことはありません。彼らは私のキャリア全体で私の選択した言語ですが、LISPはCよりも数学の学生にとってはるかに優れた教育ツールになるでしょう。誰も知らなかったが、CS学位の目的は技術分野のトレーニングではなく、数学とコンピューターサイエンスの概念を習得することです。LISPはこの目的により適しているようです。
ジョナサンヘンソン

両方ともその場所があると思うし、大学はあなたが心を広げるCSの学位まで、より理論的/学術的なトラックを持つことから利益を得るかもしれない。そのトラックには、Lisp、Prolog、Algolベースなど、さまざまな言語が含まれている必要があります。また、実践ベースのトラックは、その日の実用的なフレーバーに集中しています。
アンドレイブトフ

@ジョナサン・ヘンソン:スポット!
クリス

9

これは本当に大学次第です。Scheme(lispの方言)は、MITでコンピューターサイエンスの入門コースの言語として古くから使用されてきましたが、最近はPythonに置き換えられました。私は工学学校のCSでBSを取得しました。最初の1年間はC、Scheme、Prolog、C ++に触れました。いいミックスだったと思う。

あなたの脳が世界を見つめる一つの方法に固まる前に、複数のパラダイムにさらされるよりも、あなたが始めた言語がずっと重要でないと固く信じています。


1

基本的に、コンピューターサイエンス理論は数学です。ただし、ソフトウェアエンジニアリングはそうではありません。数学の概念を直接モデル化することは、固有の利点ではありません。多くの場合、欠点になる可能性があると主張します。

優れた理論と優れたプログラムは、必ずしも関連しているわけではありません。


「優れた理論と優れたプログラムは、必ずしも関連しているわけではありません。」:プログラミングとは、問題を解決する抽象化を構築し、組み合わせることです。そして、ウィキペディアによると、「理論は...タイプの抽象的な思考または一般化した思考、またはそのような思考の結果です。」(en.wikipedia.org/wiki/Theory)それで、理論と(良い)プログラミングは本当に非常に近いものです。
ジョルジオ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.