関連リスト(0)
【編集】
大学の物理で教えるプログラミング言語何がいいの? 【編集】
更新日時:2017/06/28

1. Python派 【編集】  77pts. 根拠の追加

  W:1352209600  2012/11/06 2
12
ソースコードが簡潔なので、計算のアルゴリズムや概念の学習に集中できる。


  W:1352249855  2012/11/07 1
11
可読性が高い


ライブラリがどんな実装なのかも、いざとなったら読む気になれる 2012/11/08
ipythonで n [1]: %pinfo modulename 2013/07/27
  W:1352252332  2012/11/07 1
11
グラフとか描ける


  W:1352341319  2012/11/08 1
11
enddo, endif, }やらが要らない。


  W:1352361838  2012/11/08 1
11
インデントをつけるクセが自然に(というか強制的に)つく


  W:1374225030  2013/07/19 1
11
下の議論である
・言語を単純なものにして、使わない人でもコンピュータの仕組みを学べる事を考える
・言語を実用的なものにして、使う人がローコストでそのまま実用に移行できる事を考える
のどちらにも対応している。


  W:1352373702  2012/11/08 0
10
インタラクティブに結果を確認しながら実行できる


  W:1374856363  2013/07/27 0
10
数値計算に限って言えば、ほとんどC言語のwrapperと化している。
その分、良点を強化されたと見れる。


  W:1352371797  2012/11/08 0
-10
日本語で書かれたテキスト等が少ない


教える側が資料とかを準備できればよいが、その分負担は増える 2012/11/08
また、ライブラリ利用が前提になるがライブラリのドキュメントだと英語のみが多い 2012/11/08
  W:1352372829  2012/11/08 1
DEAD
Python2 系列とPython 3 系列をどちらを教えるべきか悩ましい


  W:1374224875  2013/07/19 0
11
数値計算関連では、ほぼ完成されている2.7系で良いと思われる。
3.x系が、2.x系と大きく違う点は、文字列の取り扱いを、バイトコードでもできるようになったことであるから。


  W:1352388356  2012/11/09 0
DEAD
あらかじめ、エディタでインデントは空白4文字とか設定しないといけない。


  W:1352388437  2012/11/09 0
10
どの言語を使うにせよ、エディタの基本設定とかは初回にまとめてやった方がいいと思う。


2. Java派 【編集】  62pts. 根拠の追加

  W:1352244600  2012/11/07 1
11
描画関連の比較的高速なAPIが標準サポートであるので、振り子の動きをアニメーションで描いてみよう、とかそういう系がわりと簡単にできる


  W:1352245038  2012/11/07 1
11
デファクトスタンダードのIDEがEclipsで強力


  W:1374225402  2013/07/19 0
DEAD
はじめからIDE使うと、コマンドラインを教える必要がなくなり、言語の学習はできるが、コンピュータの基礎的な概念の学習にならない。


コンピュータの基礎的な学習のためなら、むしろIDEを使ってコーディング自体は易しくした方が良いのではと思います。 逆に、言語の学習において、リアルタイムで記述ミスを指摘してくれるのが良いのかどうかという点は気になります。 2013/07/19
  W:1374239832  2013/07/19 0
11
授業でLinuxを使うのなら、IDE使用でも
グラフプロットやデータファイルを開くのに
コマンドラインはガンガン使うのでは?

減ると言っても gcc hoge.c とかの1行が、
ファンクションキーのタイプとかに置き換わるだけなので、
その点のマイナス効果は小さいと思います。

もっとも、コマンドラインでのコンパイル経験も大事なので、
1度叩いて「こういう方法もある」と触れるのは必要だと思います。


  W:1352362974  2012/11/08 0
10
大体スタンダードなC系の文法で書けるけど、C/C++と比べると配列とかでポインタを意識しなくていいように設計されている


  W:1352372191  2012/11/08 0
10
Windows/Linux/Mac とマルチプラットフォームで動くのが自習用途としてよい


  W:1352374936  2012/11/08 0
10
テキスト等がたくさんある


  W:1363392466  2013/03/16 0
10
ゆるい構文だと、抽象的なエラーメッセージに悩まされたり、良くないコードで走ってしまって落ちたりするけど、Javaは構文がトップレベルで厳格な分、その辺りはかなり的確に叱ってくれる。
なので初心者にとっては詰みにくいし教育にもなる。


  W:1363394240  2013/03/16 0
10
C/C++と比べると、実行時エラー発生時に落ちずにちゃんと例外を投げてくれるので、原因を見つけやすい。
例外の種類や名前も ArrayIndexOutOfBoundsException(直訳:配列のインデックスが確保領域外を指した例外)とか具体的。
VM上で走る言語らしくエラー行番号やスタックトレースも完璧に教えてくれる。


  W:1352244856  2012/11/07 0
DEAD
GUIの標準サポートもある程度実用レベルで整備されているので、「先週の計算モジュールにスライダーとボタンつけてシミュレーションツールにしてみましょう」とかできる。そんな事をやる時間があるかは別として


  W:1352298533  2012/11/07 0
-10
物理計算用のプログラミング教育用としては要らない注文。


  W:1352244865  2012/11/07 0
DEAD
C++と同等レベルの数値演算速度。というか実行環境でボトルネック探しながらあれこれ工夫してJITするぶん、静的コンパイルのC++より有利な場合もあるかも


  W:1352289244  2012/11/07 0
-10
教育用途ではあまり関係ないかも


  W:1352245271  2012/11/07 0
-10
C++と違いオブジェクト指向必須のスタイルなので、大学の物理で教えるには、そのへんの説明が増えてしまう事が微妙


  W:1352244472  2012/11/07 0
DEAD
メモリを食うので大規模計算では不利


  W:1352289322  2012/11/07 0
10
教育用途ではあまり関係ないかも


  W:1352244933  2012/11/07 0
DEAD
ファイル入出力が面倒くさい。というかJavaは単純な処理もかなり冗長に書かなくてはいけない傾向があるので、そのへんで結構挫折するかも


  W:1363392053  2013/03/16 0
10
Java7 の java.nio.file.Files サポートで劇的に改善された。


3. C#派 【編集】  60pts. 根拠の追加

  W:1372303486  2013/06/27 0
10
IDEが強力。
記述中にエラーが分かって
メッセージも日本語なので
初心者にも易しい。


  W:1372303543  2013/06/27 0
10
一応は各種プラットフォームで動く


  W:1372303572  2013/06/27 0
10
C系の中では言語仕様が綺麗でクセが少ない


  W:1372303763  2013/06/27 0
10
日本語ドキュメントが豊富。
ググればMSDNの仕様なり
同じ所で引っかかっているブログなり
いくらでも出てくる。


  W:1372303851  2013/06/27 0
10
ネイティブじゃなくCLR上で動くので
ランタイムエラーの原因が分かりやすい。


  W:1372304217  2013/06/27 0
10
授業の方針的にIDEがまずければコマンドでもコンパイルできる。
それでもエラーメッセージは日本語で丁寧で分かりやすい。


4. C++派 【編集】  22pts. 根拠の追加

  W:1352244344  2012/11/07 1
11
基本的にCの上位互換(細かい事は置いておいて)


  W:1352245429  2012/11/07 1
11
熟成された数値計算ライブラリが豊富


template と operator overload のおかげで行列計算とかは 強い。 2012/11/07
Cのライブラリを使えるのはやはり強い 2013/06/12
  W:1352245385  2012/11/07 0
10
始めはmainの中だけで書く → 関数を覚える → クラスを使ってみる、という素直なステップアップが可能


  W:1363393309  2013/03/16 0
10
数値計算も含めて膨大なユーザーと長い歴史があるので、適当にググればすぐに日本語かつピンポイントな情報が見つかる。


  W:1352244358  2012/11/07 0
DEAD
数値計算で重要な、速さと省メモリの性能が良好。速さではJavaに追いつかれ気味だけど、こっちはメモリ的にまだまだコンパクト


  W:1352289003  2012/11/07 0
-10
教育用途としてはあまり関係無い?


  W:1352244413  2012/11/07 0
DEAD
Visual Studio(VC++)という最強の部類に属するIDEが無償で使える


  W:1352388574  2012/11/09 0
-10
Windows 限定なのがよくない。


  W:1352249844  2012/11/07 0
-10
いかんせん複雑(配列とか)で可読性が低い


  W:1363394777  2013/03/16 0
-10
コンパイル時の構文エラーはそこそこ分かる形で教えてくれるけど、
実行時は直接ネイティブで走るぶん、エラーが出ると文字通り「落ちる」ので、
インタプリタやVM上で走る言語に比べて原因情報が極端に少ない。
「多分どこかで配列が領域外でも指したんじゃない」程度しか分からない。

(IDEとかデバッガとか使うなら別だけど、授業でそんな事まではできないと思う)


5. 日本語派 【編集】  22pts. 根拠の追加

  W:1420525172  2015/01/06 1
11
日本で一番使われている言語。


  W:1420525337  2015/01/06 1
11
コンパイルしなくていい。
他の言語に比べて、インデントとかないし、親しみやすくて、とてもわかりやすい。


6. Julia派 【編集】  20pts. 根拠の追加

  W:1352289900  2012/11/07 0
10
数値計算向けの言語 http://julialang.org/ 文法はシンプルだけど強力


  W:1352372526  2012/11/08 0
10
行列計算、乱数、特殊関数、FFT などのメジャーなライブラリをラップして含んでいるので、大抵のことがすぐにできる。


  W:1352373713  2012/11/08 0
10
インタラクティブに結果を確認しながら実行できる


  W:1352289938  2012/11/07 0
-10
いかんせん開発途中


7. MATLAB派 【編集】  20pts. 根拠の追加

  W:1352373142  2012/11/08 0
10
インタラクティブに結果を確認しながら実行できる


  W:1352373169  2012/11/08 0
10
グラフが作成できる


  W:1352373215  2012/11/08 0
10
行列計算や乱数、FFT、最適化などのライブラリが充実している


  W:1352373274  2012/11/08 0
DEAD
逆にライブラリがどんな動作をしているのかは想像しにくくて、プログラミングの基礎を教えるには向かない


  W:1436368510  2015/07/09 1
10
単なる教え方の問題。ライブラリのアルゴリズムについては、原文へのリファレンスがしっかり記載されているし、学生に書かせたものと、結果比較させればよい。


  W:1352301568  2012/11/08 0
-10
高価なので学生が自宅で復習するといったことが困難。


  W:1352374050  2012/11/08 0
DEAD
そもそも機能の多くをライブラリに頼っていてプログラミング言語の基礎を学ぶ用途にはふさわしくない。


使いこなせば使いこなすほど、プログラミングの基礎的な部分から離れていく気がする 2012/11/08
  W:1436368734  2015/07/09 0
10
プログラミングの基礎はロジックであり、ライブラリの有無とは関係ない。ライブラリを使わず、コードを書かせて学ばせればよい。教師が採点の手抜きをしているだけ。


8. R派 【編集】  19pts. 根拠の追加

  W:1352289961  2012/11/07 0
10
グラフが描ける


  W:1352289991  2012/11/07 0
10
統計処理はもちろん、数値計算もそこそこできる


  W:1352373723  2012/11/08 0
10
インタラクティブに結果を確認しながら実行できる


  W:1352298394  2012/11/07 1
-11
物理ではあまり使われない。数学科なら研究室によっては、これじゃないとダメってとこがあるけれど。


9. Mathematica派 【編集】  10pts. 根拠の追加

  W:1352372848  2012/11/08 0
10
数式処理ができる


  W:1352372864  2012/11/08 0
10
グラフが表示できる


  W:1352372905  2012/11/08 0
10
もちろん数値計算もできる


  W:1352372953  2012/11/08 0
10
インタラクティブに結果を確認しながら実行できる


  W:1352286381  2012/11/07 0
-10
高価なので学生が自宅で復習するといったことが困難。


  W:1352373021  2012/11/08 0
-10
いろいろできすぎて複雑なので、入門には向かない


ちゃんと教えるとすると講師の負荷が大きそう 2012/11/08
  W:1352373098  2012/11/08 0
-10
リストを基本として関数型的に処理を加えていく特徴があるので、初心者は慣れるまで大変そう


10. GNU Octave派 【編集】  10pts. 根拠の追加

  W:1352373514  2012/11/08 0
10
グラフが作成できる


  W:1352373740  2012/11/08 0
10
インタラクティブに結果を確認しながら実行できる


  W:1352373486  2012/11/08 0
DEAD
行列計算、乱数、FFT 等ライブラリが充実


  W:1352373844  2012/11/08 0
-10
ライブラリがどんな動作をしているのかは想像しにくくて、プログラミングの基礎を教えるには向かない


  W:1352374017  2012/11/08 0
-10
そもそも機能の多くをライブラリに頼っていてプログラミング言語の基礎を学ぶ用途にはふさわしくない。


11. REDUCE派 【編集】  0pts. 根拠の追加

  W:1352373333  2012/11/08 0
10
数式処理ができる


  W:1352374384  2012/11/08 0
-10
あくまで数式処理システムであってプログラミング言語として教えるべきものか疑問


12. FORTRAN派 【編集】  -0.8pts. 根拠の追加

  W:1352249903  2012/11/07 0
10
物理分野で使っている人が未だ多い。


  W:1352249998  2012/11/07 0
10
過去の遺産を使えるようになる。


  W:1355569142  2012/12/15 0
10
配列の添字が標準では 1:N で宣言で 0:N-1 や -10:10 のようにもできる。


  W:1352195628  2012/11/06 0
6.7
ソースコードが簡単


  W:1352288841  2012/11/07 0
-3.3
簡単というのは曖昧。他の言語と比べてどんな優位性があるのかを示すべき


  W:1352298331  2012/11/07 0
3.3
90・95になると色々なことができるようになるけれど(他の言語に遅ればせながら追いつく感じ)、複雑さも増し、読みにくさもます。という意味で、77ベースで学習するなら、特に多くのことをしないので、速いし、簡潔。


  W:1352300409  2012/11/08 0
3.3
read、 write、 do、 end do、if then、end if、stop、end など表記が日常的英単語で誰にでも分かる。


  W:1352301515  2012/11/08 0
DEAD
よく使うもので全体を見渡すと .gt. とかはわかりにくい。よく考えれば greater than だとわかるけれど...


real*8 とかもちょっとね... 2012/11/08
  W:1355142423  2012/12/10 0
3.3
fortran 90なら、大小記号は普通に使える


  W:1352300662  2012/11/08 0
DEAD
暗黙の型宣言が使える。教える側に嫌う人が多いようだけど、i,j,k,l,m,nは整数型と割り切ってしまえば、型宣言なんてしなくてすむ。


  W:1352301349  2012/11/08 1
-1.7
予想外の動作で、教える方も発見するのが難しいし、暗黙の型宣言はやはり有害


lambda とかも整数になるし 2012/11/08
いっそコンパイルエラーしてくれるといいんだけどね 2012/11/08
コンパイラによっては -fimplicit-none でデフォルトとか、-Wimplicit で警告だして、警告をさらに -Werror でエラーにとかできるかも、ただし、このおまじないはちょっとアレ 2012/11/08
それはいいことを聞いたw 2012/11/08
  W:1352301204  2012/11/08 0
-1.6
数百行のコードをいちいち目でスペルチェックするのは精神的にキツイ。


  W:1352301552  2012/11/08 0
DEAD
初心者はそんな長いコード書かない。寧ろ型宣言でつまづく。


  W:1352302243  2012/11/08 1
-1.6
むしろ型宣言で躓いてくれないと勉強にならない。


  W:1354002691  2012/11/27 2
-12
配列と関数呼び出しが () で同じなので、判別しづらい


  W:1352246531  2012/11/07 0
-10
文法的に、多言語へ移行する場合の再学習コストが大きい


  W:1352341277  2012/11/08 0
-10
endifとenddoを見間違える。


  W:1352372766  2012/11/08 1
-5.5
ファイル入出力の open 文の unit 番号やフォーマットを行番号指定するのが無駄に複雑


  W:1352396555  2012/11/09 0
5.5
すべて変数指定できる。
ストリーム概念を使って、入出力を直感的に教育できるので有用。


  W:1352379419  2012/11/08 0
DEAD
open文とか使わなくても、write(10,*) とやれば fort.10に出力されたりする。ファイル名はmvで変えればいい。
それが嫌な人だけopenすればいい。

フォーマットも計算するだけなら必要ない。


  W:1352387066  2012/11/09 1
-5.5
fort.10 に書き込まれるというのことも知らないといけないわけで、それ自身がバッドノウハウと化しているのでは?
FORTRAN には暗黙の内にやられることが多い上に、それらが直感的でないのも問題。


  W:1352195691  2012/11/06 1
DEAD
数値計算以外にほとんど使い道がない。


  W:1352248832  2012/11/07 0
11
大学で教えるから、色々なことに使える必要は無い。
物理なら物理で、どういうことができるかの想像を持ってもらえばよい。


  W:1355568921  2012/12/15 0
DEAD
FORTRAN77 では external を使って関数を引数に与える場合、引数の型の整合性チェックができない。
http://www.nag-j.co.jp/fortran/FI_17.html#AUTOTOC_17_10


  W:1355568996  2012/12/15 0
10


13. 英語派 【編集】  -1pts. 根拠の追加

  W:1355135843  2012/12/10 0
10
勉強になる。


冗談抜きに、ある程度英単語に慣れていれば、プログラミング入門にも有利かも。苦手だとアルファベットの羅列がきつそう。 2013/07/20
  W:1355135713  2012/12/10 0
DEAD
世界の共通言語だから。


  W:1355143139  2012/12/10 0
-10
その点が「大学の物理で教えるプログラミング言語」にふさわしいかは疑問。


  W:1355135748  2012/12/10 0
DEAD
いろんな人とコミュニーケーションがとれて楽しい!!


  W:1355142036  2012/12/10 0
-10
授業でプログラミング言語を教えることと楽しいことは何ら関連性がない。


  W:1355142067  2012/12/10 1
-11
プログラミング言語ではない。


14. C派 【編集】  -10pts. 根拠の追加

  W:1352195607  2012/11/06 0
DEAD
汎用性が高い


  W:1352209790  2012/11/06 0
-5
数値計算でやりたいことをするためにかかる労力が、比較的多い。


  W:1352209831  2012/11/06 0
-5
可読性が低い。


  W:1352290419  2012/11/07 0
DEAD
文法が単純で覚えることが比較的少ない。


  W:1352298449  2012/11/07 0
-10
波括弧多用はゲシュタルト崩壊を起こす。


波括弧についてはむしろ、複数行で書き忘れてもエラーにならない事のほうが問題かもしれない 2012/11/08
  W:1352335238  2012/11/08 0
DEAD
慣れるとシンプルでendifとかがむしろ面倒に感じる


  W:1352341254  2012/11/08 0
-10
趣味が入ることが多いから、なかなか強くは言えないかもしれないけど、慣れると・・・と言い出すとなんでも良くなる。
endifもenddoと混乱するw


  W:1363392985  2013/03/16 0
-10
論題の用途からして、上位互換のC++がある状況で、あえてCに限定するメリットがほぼ無い。情報系で基礎から学ぶためなら良いけども。




選択肢の追加
preload
参考リンク 【編集】
コメント
関連ツイート
作成日時:2012/11/17  更新日時:2017/06/28

preload