物理学とコンピューターサイエンスの共同カリキュラムと教科書のアイデア[非公開]


13

読者が有能なコンピュータープログラマーであると仮定する物理学の教科書を書きたい(そして概要を説明し始めたい)。通常の物理学の教科書は物理的な公式を教え、ペン、紙、電卓で解決される問題を与えます。私はコンピュータが物理システムをモデル化することができますどのように、計算物理学を強調ブックを提供したいとの種類の問題を提供します:解決することができるプログラムの書き込みセット物理学の問題を。サードパーティのオープンソースライブラリを使用してほとんどの計算を処理しますが、JavaやC#などの高レベル言語を使用したいと思います。

私がこれに取り組むことを楽しんでいるという事実に加えて、物理学-コンピューター科学の共同カリキュラム学校で提供されるべきであり、これはこれを実現するためのより大きな議題の一部です。物理学の学生(私のように)は、抽象的な問題や一連の問題を解決するためにコンピューターを使用し、活用する方法を学ぶべきだと思います。プログラミング言語は、多くの調査分野に従事するための有用な媒体と考えるべきだと思います。

これは追求する価値のあるアイデアですか?これらの2つの科目の合併は、学部の大学カリキュラムの形で実現可能ですか?利用すべき特定のツールや注意すべき落とし穴はありますか?大学のコースなど、この方法論を想定している人はいますか?私が説明しているような本(教科書など)はありますか(物理学やその他のテーマについて)。


3
申し訳ありませんが、本のコンピューターサイエンスの側面はどこですか?物理学とコンピュータープログラミングのように聞こえますが、これはまったく異なるものです。
ピーターテイラー

2
物理学の本にはCSの余地がたくさんあります。古典や量子オブジェクトのシミュレーションを構築するときなどは、我々は確かなどの表現、の状態、並行処理、アルゴリズム、トレードオフと格闘する必要があります
limist

2
@Peter Taylorのコメントから推測できるかもしれませんが、本に良いCSがあることを確認してください。また、imo Pythonは、Javaや(特に)C#よりも優れた選択肢です。私の経験(科学環境で19年以上)では、科学者はあなたが言及した他の人よりもPythonを知っている可能性が高いです。私は現在Javaをやっていますが、科学でC#をやっている人は誰もいません。
グリーンマット

2
私が理解していることから、Rも良い選択かもしれません、数値解析に非常に良いと聞いたことがあります。何らかの実験をシミュレートするプログラムを作成する場合、結果を分析するために別のプログラムを作成することができます。2つの言語が最適かもしれません。1つはシミュレーションの作成用、もう1つは結果のデータの分析用です。
FrustratedWithFormsDesigner

1
これを数年熟成するために、言及する必要があるものがあります。さまざまな人々を引用して、「物理学は経験科学です」。現実の世界で何かを見て、自分で測定し、数学的モデルが実際の現象と一致していることを理解することに代わるものはありません。(私の個人的なケースでは、ペニーを見ていたし、羽を排気透明チューブの内側に正確に同じ速度で落下完全に私の心を吹いた重力計算加速度に最小二乗法を行うと、それをそこに右にアップしました。!。)
ジョンR.ストローム

回答:


7

あなたのものは一般的に良いアイデアであり、追求されています:Sussman and WisdomのThe Structure and Interpretation of Classical Mechanicsを見ましたか?Schemeを使用して高度な古典物理学を教えます。

余談ですが、計算は、教育、学習、思考はもちろんのこと、モデリングの力を根本的に拡張するため、多くの科目の教育をコンピューティングの基盤で徹底的に見直す必要があります。書籍Masterminds of Programmingで、(Haskellの名声の)Paul Hudakはまさにそのようなオーバーホールを主張しています。もちろん、Sussmanは「古い」科目を教えるためにコンピューターを使用する新しい方法も求めました。SICMは彼がそうしている美しい例です。彼が次に量子力学を教えることを願っています!


5

博士 UTオースティンのDavid GavendaとLuther Frommholdは、1970年代半ばに、時分割のData General Novaシステムを使用して、その正確なことを行おうとしていました。ガベンダ博士は引退したと思いますが、フロムホールド博士がどうなったのかはわかりません。(デイブ・ガベンダは間違いなく善人の一人でした。)

UTオースティンCS部門のGordon Novak博士は、その反対側の作業を行っていました。計算言語学の彼の論文は、静力学における新入生レベルのはしご問題を理解し、解決できるプログラムでした。(完全開示:ゴードンは昔からの友人です。)

また、Sussman and WisdomによるStructure and Interpretation of Classical Mechanicsもご覧ください。

ただし、これが良いアイデアかどうかはわかりません。いくつかのかなりのデモを行うことができ、いくつかのことを見やすくしますが、初歩的な物理学の多くは学生に方法を教え、材料の直感的な把握を与えます。仕方。


3

私はそれは素晴らしいアイデアだと思うし、あなたが選んだコンピューター言語があまりにもあいまいでない限り、成功するかもしれない。とにかく、科学界以外の誰も使用しない言語を選択した場合、何も達成していません。


私の経験に基づいて(コンピューターサイエンスのバックグラウンドがほとんどない科学者によって書かれたコードで過去20年の大半を扱っています)、これが適切に書かれ、科学カリキュラムで使用され、科学者が開発するコードを改善する場合、 Java、C#、またはその他の「より一般的な」何かの代わりにFORTRANを使用している場合でも、大幅に改善されます。
グリーンマット

@GreenMatt間違いなく、他の場所ではめったに使用されない典型的なアカデミア言語として考えていたのは、LISPやMatlabのようなものでした。
-biziclop

@biziclop:LISPがあいまいなことに同意しますが、Matlabがかなりの量を使用しているのを見ました。
グリーンマット

LISP、あいまいですか?親愛なる主
...-アント

2
@Anto学界以外ではめったに使用されていないように、また少数の高度に専門化された領域ではわかりにくい。
-biziclop

0

これは追求する価値のあるアイデアですか?

確かにそう思います!このようなアイデアは、私がまだ学部生であることを願っています。実を言うと、私が書いたPerlスクリプトによって手動計算が解決されたラボを一度訪れました。ソースコードも添付しました。TAはプログラミングをあまり知りませんでしたが、ようやく戻ってきたときは満点でした。また、ラボを完成させるのに時間がかかりませんでした。

これらの2つの科目の合併は、学部の大学カリキュラムの形で実現可能ですか?

なぜだか分からない!

利用すべき特定のツールや注意すべき落とし穴はありますか?

私の頭上では、Wekaはデータ分析のための良いツールかもしれません。Java APIを持っているので、Java開発者がかなりアクセスできるはずで、おそらくいくつかの興味深い演習を行うことができると思います。


0
これらの2つの科目の合併は、学部の大学カリキュラムの形で実現可能ですか?

私は、三重の合併、物理学、応用数学、計算が理にかなっていると長い間感じていました。おそらく、4番目のコンピューターグラフィックスを追加しても-少なくとも十分なグラフを生成して自閉症を獲得するのに十分です。計算は、ある意味、実験と理論に続いて科学を行う3番目の方法になりました。そして、それを本当に上手にするには、3つすべての基礎が必要になります。また、科学を志向するプログラマーのための専門的なサポートの仕事もあります。プログラマーの最初の愛はコンピューターであり、数学/科学は二次的です。理想的には、異なる主な関心を持つグループを満足させる方法があり、ある者はコンピューターを最初に望み、ある者は数学を応用し、さらに別の者は科学を主な焦点とします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.