学部生はFortranを学ぶべき? 172
ストーリー by soara
適材適所 部門より
適材適所 部門より
あるAnonymous Coward 曰く、
本家「Should Undergraduates Be Taught Fortran?」より。
登場してから40年以上が経っているFortranは、物理や化学、工学系の分野などでプログラミング入門として未だに大学で教えられている。しかし現在ではPythonなど、学部生が入門として学ぶのに適した言語が他にもあるため、Fortranはもう有益ではないという意見も耳にする。研究者としてFortranを学ばないといけない日がくることもあるかもしれないが、それは「化学専攻のためのプログラミング入門」ではないはずだ、ということだそうだ。/.コミュニティの皆はどうお考えだろうか?
大学でFortranを学んだ方、その後役に立ったでしょうか?また、皆様なら学部生が入門として学ぶ言語として何をオススメする?
さいきんのFortranは使っていて楽しい (スコア:5, 参考になる)
物理屋です。毎日Fortranを使ってます。
他にはsh, C, Rubyがまあまあ書けます。
さいきんのFortranはいろいろなことができるので使っていて楽しいです。
gfortranとg95というfreeで使いやすいコンパイラもありますし。
物理か化学をやるんなら、知っていて損はない言語なんじゃないでしょうか。
Fortranについて思いついたことを箇条書きにしてみます。
* implicit none は使えよ
* module は common の代わりに使うな
* いいかげん大域変数(的なもの)を使うのはやめろ
* 自由形式 (free form) で書け
* 構造体 (type) を使え
* 配列の範囲が自由 a(1:N), a(0:N-1), a(-N+1:N), a(3,0:N-1,0:N-1) とか
* 配列の演算が楽
* module, interface を使えばsubroutoneの引数の不整合によるバグが避けられる
* オブジェクト指向プログラミングしろ。Frotran2003ではもっと機能が強化される
* 複素数がはじめから使える
* 数学関数が豊富。C99と同じ数はあると思う
* 拡張子を .F にしておけばCプリプロセッサが使える
* make(1)にはFCとかFCFLAGSとかFortran用の機能もあるんだよ
* autotoolsにも
* LAPACKとかFFTWとかライブラリが豊富
* ポインタも使えるけど、そんなに必要ない。リスト構造を作るときぐらいかな
* 基本、参照渡しだから
* 動的にallocateした配列は基本的にはsubroutineの最後で解放される
* 関数が配列を返せる [srad.jp]
* read/write/他 でテキスト処理も実はまあまあできる
* OpenMPで並列化できる
* command_argument_countとget_command_argumentとでコマンドライン引数も扱えるようになった
* FORTRANとFortranは使い分けてくれ
* スパコンで使える。Cも使えるけど
* いろいろな言語に挑戦してみてはどうか
love && peace && free_software
t-nissie
Re:さいきんのFortranは使っていて楽しい (スコア:5, 参考になる)
同じく物理や化学で計算を生業にしている者です(某日本最大の計算機を作る
プロジェクトでもお世話になっています)。
20年近くやってきたゴリゴリの「高速計算屋」です。
* implicit none は使えよ
→同意。ケアレスミスをふせげる。
* module は common の代わりに使うな
* いいかげん大域変数(的なもの)を使うのはやめろ
* module, interface を使えばsubroutoneの引数の不整合によるバグが避けられる
→物理や化学の計算だと、一番重要な配列。たとえば、その系の原子の持つ情報は
大域変数で持つ方がプログラミングしやすいと思う。
同時にそれはパラメータスタディするときに可変となり、allocateするものだから、
* 動的にallocateした配列は基本的にはsubroutineの最後で解放される
→これは変だということになる。
* 自由形式 (free form) で書け
* 配列の範囲が自由 a(1:N), a(0:N-1), a(-N+1:N), a(3,0:N-1,0:N-1) とか
* 配列の演算が楽* 複素数がはじめから使える* 数学関数が豊富。C99と同じ数はあると思う
→同意。FortranはFORTRAN77から見ると、かなり進歩した言語なのです。
* 構造体 (type) を使え
→現状の並列計算環境においては、自動並列化に失敗することがあるので、typeは
今ひとつ信用できません。
* オブジェクト指向プログラミングしろ。Frotran2003ではもっと機能が強化される
→まあ、そうですね。ただ、我々がFortranを使う理由は「大きな計算機で最適化されていて
速い」からであって、柔軟なプリ・ポスト処理にはrubyなどで対応したらいいと思っています。
* 拡張子を .F にしておけばCプリプロセッサが使える
* make(1)にはFCとかFCFLAGSとかFortran用の機能もあるんだよ* autotoolsにも
* LAPACKとかFFTWとかライブラリが豊富
→これはそのとおり。結局、Cを使う理由はシステムコールを多用したりするプログラムであって、
ゴリゴリの数値計算はFortranで書いて、Cプロプロセッサで環境、計算条件に応じて
コンパイルしなおせるようにしておけば十分だと。
* ポインタも使えるけど、そんなに必要ない。リスト構造を作るときぐらいかな* 基本、参照渡しだから
→はい、そのとおり。あと、我々はとにかく不器用でも速いプログラムを書きたいので、
自動ベクトル化の阻害因子になるポインタの必要性はあまりないです。
* OpenMPで並列化できる
→同意。というか、速い数値計算プログラムを楽に書く環境としてFortranは進歩してきたのだから当然。
* command_argument_countとget_command_argumentとでコマンドライン引数も扱えるようになった
→まあ、数値計算プログラムは硬派なので、引数はパラメータを列記したファイルで十分なのですがね。
* スパコンで使える。Cも使えるけど
→結局、ハイエンドの数値計算サーバのコンパイラのチューニングを、何言語で行うか、
ということに尽きるかと。現状では、Fortranがデフォルトです。
* いろいろな言語に挑戦してみてはどうか
→物理や化学、あるいは流体などの数値計算以外の専門家になるんだったら、いろんな体験が必要でしょう。
あとは、プリ・ポストのためにいろんな言語は使えるほうがいいでしょう。
私は何よりFortranとrubyです。外国の人はFotranとpythonですので、国際的に活躍したければ他のものも。
という感じで、アルバイトでネット関係あるいはハードウェアにアプリケーションを書いたり
する場合はともかく、数値計算屋として生きていくためにはFortranは大変便利なツールなのですね。
Re:さいきんのFortranは使っていて楽しい (スコア:2, 興味深い)
大気関係が専門ですが、就職してずっと、今なおFORTRANが使われています。
過去の資源が、というのもありますが、今なお業界標準だから、というのが大きい。
ただ、以前と違ってFORTRANでCGIを書く人は減りました。
Re:さいきんのFortranは使っていて楽しい (スコア:1)
> 大気関係が専門
ということは、気象の数値予報も Fortran でやってるんでしょうなぁ。
#Fortran が役に立たないという人には天気予報じゃなくてバチが当たります。
ここにぶらさげてみるか (スコア:1, 興味深い)
以前に別なとこで聞いたけど、20年前に理系の現役の大学生の頃は
複雑な多項式計算の類をやるのに「プログラミング電卓」を
みんな持ってて、それで計算していたよーな気がするのですが、
現在プログラム電卓は廃れているようで・・・
じゃあ、いまの学生は何で計算してるの?って聞くと
「EXCELのマクロ」もしくは「計算してない」(!)ってのが
返ってきたんですよね・・・
情報工学系の人がまあ「いまさらFORTRAN?」ってのはわかるんだけれど
じゃあ普通の理学/工学系の子が学部の計算するのに
これから『何を使って複雑な計算をコンピュータに計算をさせるのか』ってのは
なんか実は科学技術教育の未来と深くかかわってる問題のように思うんですよねー・・・
Re:さいきんのFortranは使っていて楽しい (スコア:2)
まあ長年の研究の成果というのもあると思うけど。
ちなみに最速JVMの一つであるIBM JITは、東京基礎研でHPFコンパイラを作ってたスタッフが
そのノウハウを駆使して作ったそうな。だからJava屋としてはFORTRAN(とLISP)には足を
向けて寝られませんね。
http://www.trl.ibm.com/news/ibm_users/trltech_08.htm [ibm.com]
重要なのは言語じゃない (スコア:4, すばらしい洞察)
Re:重要なのは言語じゃない (スコア:2, すばらしい洞察)
元々の話は「化学専攻の学生のためのプログラミング入門」という話ではありませんか?
(教え|教わり)たいのが「プログラミング」なら「プログラミングの各種概念を教えられるなら何でも良い」という話になるでしょうが。
あるプログラミング言語設計者の言 [artima.com]によれば、
てなわけで、答えは「自分の業界で必要なものを学べ。 それはひょっとしたら Fortran かも知れない」というだけの話なのでは。
# 今時、粒子物理でも Fortran はあまりないと思うけどなぁ...
# 流体系の計算物理とかだとあったりします? > 識者
Re:重要なのは言語じゃない (スコア:2, 興味深い)
流体だとFortranともバリバリ現役です。
古くからあるソルバーの拡張はもちろんFORTRAN 77でやるしかないですから。
新しめのものでも、NAL/JAXAのUPACSやFlontFlow-redはFortran 9xですし、FlontFlow-blueはFORTRAN 77です。
理由としては、
が挙げられると思います。
結局、
と同様の構図です。
研究者としては、「ソルバーをC/C++/C#/JAVAで書きました」と言っても論文にはならないし、ソフトウェア会社としては、スクラッチから違う言語で書き直してテストをする分の工数にお金はもらえないし、ユーザはそこにあるものを使用するだけです。
Re:重要なのは言語じゃない (スコア:2, 興味深い)
残念ながら日本では流体でもまだまだFortran、それもF77です。
彼らの大半はComputational Fluid Dynamicsをやっていながら、
驚くほどに計算機やその関連技術には興味を持たないのです。
コードは例えば"COMMON文で変数は実質すべてグローバル"、
といったとても他人には読めないものだったりします。
中の人なのでAC。
Re:重要なのは言語じゃない (スコア:1)
変数の「型」を強く意識する必要がある言語で(弱いと VB の Variant 使ったように、「なんとなく動く」ので怖い)、goto なしで構造化がかけて、それなりに分かりやすい……
となると、Pascal か C か、あるいはその派生になりますかね。結局 ALGOL 系列か。
※Variant 禁止と Option explicit しているなら VBA でもいい
Java はクラスというか、オブジェクト指向が理解できるかどうかにかかっちゃうしなあ。
-- To be sincere...
複数やるべき (スコア:3, すばらしい洞察)
答えはタイトルの通り、複数やるべきだろう。
功徳は色々あるが最大のものは「××言語信者」になることをある程度
防げることだ。
「ハンマーしか道具がないと全ての問題が釘に見える」という言葉が
あるそうだが、そんなふうにならないためには
「様々な言語があるのは様々な問題があるからだ」ということを
早いうちに理解する必要がある。
さらにいうなら、幾つかプログラミング言語を覚えたあとに
コンパイラ技術の勉強をするとなお良い。
Fortranといっても (スコア:2)
いくつかの言語仕様があります。今だとFortran95あたりが一般的でしょうか(gnuのものなど)。
ただ、更に拡張されたFortran2003などもあるわけで、そういう、モダンなFortranを使うので
あれば、話はだいぶ変わるのではないでしょうか。
Fortran77(もう30年も前か)だと、さすがに古めかしく感じますけどね。
#さすがに水準3000とか、それ以前の仕様でコーディングした人はいないか。
Re:Fortranといっても (スコア:5, おもしろおかしい)
C 当時の解説書はFORTRAN66ベースだったので
C FORTRAN77の近代的な?仕様には感心しました。
STOP
END
お約束 (スコア:1, 興味深い)
from 本物のプログラマ [genpaku.org]
Re:Fortranといっても (スコア:1)
学部(といっても10年ぐらい前)では、FORTRAN77でした。 同等の講義としてCも選べたので、Cだけ受けていたような。 暗黙の型宣言や、GOTO文乱立、パンチカード仕様のカラム位置、 このへんは、モダンな言語を触ったことがある人には違和感全開です。
他大学の院に行ってからは、FORTRANがメインのものの、 Fortran90/95でもOKだったので、上記の違和感なく使えています。
現在、私の後輩たち(物理学科)は、Fortranのみしか授業でやらないようです。 そのため、就職組は別の言語(C等)を独学でやってみたり、Cの計算用コードが出てきたときに、 慌てたりしています。
いきなり、どれかの言語に固定してしまうのではなく、どの言語でも応用できるような授業をすべきだと思うのですが...。
#就職してからFortranの変換の仕事が来たときは、やっといてよかった、って感じでした。
#むしろ、マイナー言語を知っていた方が重宝されるかも。
Re:Fortranといっても (スコア:1)
Best regards, でぃーすけ
不要 (スコア:2, 興味深い)
全くの無駄でした
役に立った事など一度もありません
他のクラスがパソコンでCやBASICをやっている時に
なぜ自分は汎用機でFORTRANなのかと
なぜ二桁の掛け算の結果が出るまでに15分もかかるのかと
まあ確かに座学でプログラム言語の一つとして学ぶ分には
完全に枯れた物なので最適かもしれませんが、
講師の趣味で実用性度外視の講義を受けさせられる学生の身にもなって欲しいと思います
Re:不要 (スコア:2)
大学なんだから、講師の趣味でプログラミング言語を選んで良いんじゃないかな?
プログラミングの概念を教えるのが目的で、専門学校のように一、二年後に就職してその言語を使うことが目的じゃない。専攻にもよるけど、いろんな言語に触れて、その設計思想を知る方が好ましい。
どうせ講義で週一コマかそこら教えられたからといって、商売になるレベルの技能が身につくわけじゃないし。
それにあなたの経験がほかのクラスメートと同じわけじゃない。FortranやCOBOLを提供しているサードパーティのベンダーが存在する、つまりまだそれなりに需要はあるんだよ。
Re:不要 (スコア:1)
>講師の趣味で実用性度外視の講義
むしろ、講師、教授が教えられるプログラミング言語的な能力がソレだけ…だから…という事もあるかもしれないけど。
あと、未だにそれをベースに研究とか構想しているからとか。
#講師に能力があっても、お偉いさんな教授が「これ教えとけ」と指示している場合もあるでしょうけどね
/* Kachou Utumi
I'm Not Rich... */
Re:不要 (スコア:1)
うちの大学でも、情報系の専門科目では教授の趣味でMLが採用されている演習があるらしいです。
半年の講義を2つに分けて、半分Java、半分MLという中途半端な構成。それでオブジェクト指向と関数型言語の両方の概念を理解できた人がどれくらいいるのかは分かりません。
1を聞いて0を知れ!
Re:不要 (スコア:3, 興味深い)
そういえば僕の母校も今は関数型言語をかじらせるのにはML使っているらしい。僕が学生の頃は関数型の例としてはLISP1.4だった。
それより、助手に丸投げすることが多い演習科目にちゃんと教授がかかわっているんですね。
Re:不要 (スコア:1)
関数型言語としてMLは非常に優秀だと思います。OCamlは実用性も非常に高いですし。2ヶ月あれば、リストと再帰を使って各種アルゴリズムを実装することにも慣れると思います。
Re:不要 (スコア:2)
誰なら2ヶ月? 学部生の程度はバラバラ、特に今は名前が書ければどこかには入学できる状況だから、そんなに甘くないでしょう。現代だと入学までPCを触ったことがない学生は少ないだろうけど、プログラミングは別。以前より減ってるでしょう。
Re:不要 (スコア:1)
それは極論ではないですか?さすがに名前を書くだけで入れるような大学の学生は想定していません。そのような学生は、関数型言語に限らず何を教えても同じだと思います。入学前にプログラミング経験の無い学生は以前から存在していましたし、他の講義で必要な予備知識はある程度身に付くと思います。1年生の前期の講義だとしたら厳しいですが、2年生位で教えるのなら適切かと思います。その際には#1586247 [srad.jp]で言及されているような体制が必要なのは言うまでもありませんが。
Re:不要 (スコア:1)
「大学」の「情報系」学部でやることは、言語を教えることじゃないですよ。
情報の処理の仕方を考えさせることです。(学ぶ、だと語弊がちょっとあるかも)
専門学校だったらプログラマ養成するんだから言語教える意味はなくもないですけどね。
たとえばアルゴリズムだったり、暗号化の基礎理論だったり、信号理論だったり。言語はそのための手段でしかありませんから、極端な話「なくたって講義としては成り立つ」んです。
つーかね。言語なんてアルゴリズムさえ先にきっちりできてれば、どうにかなるっての。言語ができない人というのは、実のところその前段階の、「どうやりたいことを表現するのかが分からない」人なので。
-- To be sincere...
Re:不要 (スコア:1)
あるプログラミング言語を習得することのみが目的であるような講義は不要ですが、情報系の学部であれば、異なるプログラミングパラダイムを学ぶのは非常に重要なことです。命令型と宣言型では基礎とする理論が全く違いますから。ちなみにプログラミング言語論もアルゴリズム論などと同じくコンピュータサイエンスの中核をなす重要な分野なので、無くても成り立つと言うのは乱暴に過ぎます。
Re:不要 (スコア:1, 興味深い)
> もちろん講義だけじゃ身に着かないから、平行して実習をどかどかやるか
> 課題をがんがん出して、TAをたくさん雇ってサポートさせる
これって実際にできてます?
Re:不要 (スコア:1)
学部生の一部は大学院まで上がります。その際に研究で使われている言語がFortranであれば、Fortranを全く知らないよりはまだ有益なのではないかと思います。
学部1年や 2年で早くも4年 or 大学院でこの研究室に行くと自分が認識できて、かつ、その研究室では Fortranを使っていない、だから、Fortranは要らない、となれば学習する意味はないでしょう。しかしそれを認識できない場合には、広く浅くでも様々な言語に触るのは悪くないと考えます。
もしこれが専門学校であれば、Fortranよりも民間で使われている Javaあたりを学習するべきでしょうね。
MIYAZAKI Yasushi
Re:不要 (スコア:1, 興味深い)
> 実際に学生の時に専攻がFORTRANでしたが
> 全くの無駄でした役に立った事など一度もありません
義務教育レベルならまだしも、大学教育レベルになると、同じクラスであっても将来実験や理論など多様に分かれるから一部の学生には「役に立った事など一度もありません」なんてあっても珍しくもなんともないよね。「自分にとって無駄だったから不要」論を持ち出すやつってそこらへんをどう考えているんだろう。
> 講師の趣味で実用性度外視の講義を受けさせられる学生の身にもなって欲しいと思います
大学でそれをいうか。なんなら情報処理系の専門学校に行った方がよかったと思うよ。大学と専門学校との違いって「専門課程であっても趣味で実用性度外視の講義」などにあると思うし、そこを折り合いつけてやり過ごす力が大学生の必須だと思うんですがね。
Re:不要 (スコア:1, おもしろおかしい)
> 講師の趣味で実用性度外視の講義を受けさせられる学生の身にもなって欲しいと思います
一般教養の講師が泣きながら駆けていくのが見えました。
古き時代を想像してみる (スコア:2)
>>なぜ二桁の掛け算の結果が出るまでに15分もかかるのかと
>
>これどういう意味?
>普通はかけ算の結果なんか一瞬で出るんだけど。
コーディングシートにプログラムを書き,マークシートを塗り塗りして,
それを端末に読み込ませ,間違いがないかを逐一確認し…
などとやっていると,15分では済まないのではないかと。
# コーディングシートはFORTRANの授業で使った。
# FORTRANのマークシートは,紙自体は見たことがあるが,実際に使っている
# 場面は見たことがない。
昔の話です (スコア:2)
勝手な想像の部分は話をこんがらがせる元なので脇においておくとして…
私が受けたFORTRANの授業の話を書きます。
十数年前の、私のいた(情報系ではない)学科のFORTRANの授業は、2年の前期に文法の講義、後期(の前半か後半のどちらか)にTSS端末(学内の情報処理センターの実習室にあった奴)を使った実習でした。で、前期の文法の講義でプログラムを提出する場合、コーディングシートに書くのがきまりになっていました。
(ちなみに、後期の実習時になって初めてアカウントが割り当てられていたので、作ったプログラムをコンピュータ上で実際に動かすことは、前期の時点ではできなかった)
2年の実習では、TSS端末だったので演算結果をみることはその場でできましたが、課題提出のため実行結果とソースを印刷するのはコピー機よりもでかい共用のレーザプリンタ、紙はミシン目入りの連続紙でした。
FORTRANのマークシートの実物を見たのは、4年になって所属した研究室でのこと。物理系の研究室で、数値計算のためにFORTRANを使っていましたが、マークシートは既に使用されておらず、ただの置物(下手するとメモ用紙代わり)でした。研究室にはVT-100や8インチフロッピーディスクなんかもありましたが、実際に使われているのは見てないかも。私が研究室で実際に使ったのはPC-98用のFORTRANコンパイラかSunのWorkStationの奴でした。
Re:昔の話です (スコア:2)
いや,ラインプリンタではなかったと思います。騒音はコピー機程度だった気が。
物は違うと思いますが,情報処理学会web siteのコンピュータ博物館に出ている奴(上の写真) [ipsj.or.jp]に似ていたような。
Re:不要 (スコア:2)
確かに大学で習った Fortran は役に立たなかった (スコア:2, 興味深い)
確かに Fortran の知識を役立てた覚えはない。申し訳ない、mohta さん。
理由は、その後 Z80 のアセンブラも講義で教わったからだ。
結局アセンブラでコーディングするのがつらくてつらくて、 C を勉強してコンパイラの出力結果を元に課題を提出した。
でも、結局コンパイラが出してくるコードがおかしい場合があって、マシン語まで降りる必要があった。
それ以来、どうしても判らない挙動は、マシン語レベルまで降りて分析できるようになった。
まさに塞翁が馬。
.
というわけで私が先生なら、学部生が入門として学ぶ言語はアセンブラです。
Intel の 4004 から Corei7 まで続くあの CPU シリーズとその派生物はあまりにも初心者に可哀想なので、PowerPC で許してあげる。実験機は PS3 な。
fjの教祖様
アセンブラなら (スコア:1)
そこで CASL & COMET がなぜでない(w いや、入門なんだからいいじゃないそれで。
※誰ですか、CAP-X とかつぶやいたのは?
-- To be sincere...
Re:アセンブラなら (スコア:1)
それらの上では FFXIIIが動かないからです。 (あれっ???)
ゲームをやっておいて「仕事だ」と言い張れないからです。 (あれれっっ???)
fjの教祖様
Re:確かに大学で習った Fortran は役に立たなかった (スコア:2)
元やん、元!(とお約束ツッコミ)
「元ヤン」と言ってはいけない。ぽあされちゃうよ:P)
fj.jokes出身:
人によりけりだろうが (スコア:2)
作らせたものは、AccessVBAとVisualBasic6、Java。
傾向としては、Fortranの経験者は「要求された処理の発生理由を追」い、Cの経験者は「処理の見易さと速度を追」った。ちなみに、CとFortranは同年齢で、VisualBasic6は二歳年上。
なんで「VisualBasic6」の経験者の話が出てこないかって?
全く使えなかったからだよ(w
というわけで、「VisualBasic使えます」は、評価の範囲外にしている。個人的に。
今の職場でも、「VisualBasic.Net使えます」な新人は、「グーグルコピペ」でコード作ってくるからプログラムチームから外したけど、人によりけりなんだろうな。
fj.jokes出身:
Re:人によりけりだろうが (スコア:2)
そうだったのかっ(@.@)
もう、明るい未来なんか想像しちゃいけんのかのぅ。
まぁ、そういうおいらも PASCAL と Fortran77 と C しか使えない機械科学生で、OS やらカーネルやらには全く興味がなかったわけで、どれだけ先輩に迷惑かけたか自覚もないわけだが。
fj.jokes出身:
少なくとも物理では現役 (スコア:1)
物理に限らず、学生が何も言語を知らないのなら、教師が得意な言語に学生側が合わせるのが一番スムーズでしょう。
FORTRANじゃなくて (スコア:1)
いつの間にかFortranになってたんですね。
#年がばれるけどID
そもそもプログラミング言語って大学で習うこと? (スコア:1)
プログラミング言語(C, C++, Fortran他)なんて大学に入ったら独学で磨くものじゃないんでしょうか?
プログラミングなんて道具なんだし、鉛筆の使い方を大学で習うようなものです。
そんなの授業で習うようなら、授業料の無駄遣い。
Fortranのソースを授業のレポートなどで提出する必要があれば自分で学べばいいんです。
Re:そもそもプログラミング言語って大学で習うこと? (スコア:1)
大学生は他に勉強すべき事がたくさんあります。 別な方も指摘されていますが、数値計算(Fortran ネタなので)を学ぶためには初めにプログラミングの基礎を教え、その後具体的な計算を通してプログラミングと計算技術を身につけていくのが最も効率的(教員にとっても)。
Fortran ならお約束と型、繰り返し処理、条件文、配列、関数とサブルーチンを教えればほとんどの計算を書ける様になります。 これだけなら4コマくらいあれば十分でしょう。 プログラミングの出来る学生(たぶんほとんどいない)はこの間遊んでいれば良いのです。
Re:そもそもプログラミング言語って大学で習うこと? (スコア:1)
我々も数コマかけて実験器具の使い方を教わったものです。こちらは何かあるとすぐ壊れましたが。
何にせよ、全員が知る必要がある事柄については授業で教えるのが効率がよいでしょう。ジャストインタイムで知っている必要がある=泥縄ではいけない事柄なら、なおさらです。
適材適所 (スコア:1, すばらしい洞察)
数値解析屋にとってCが使いにくいのは、テキストファイルから数値を読み込み、
多次元配列変数に保存してサブルーチンに渡す、というような、数値計算で必ず
必要になる一連の処理をどうすれば実現できるのかが分かりにくいという点です
ね。
Cでこれをやるには文字列処理の方法やポインタの概念を理解する必要があり、
Fortranなら2〜3回目の授業でできることでもCなら数ヶ月後、ということにな
ってしまう。
しかも、授業ならともかく、多くのC入門書ではこういう処理の解説がなされ
ていないので、独学だとなおハードルが高い。
情報系ではなく化学、物理、工学系でのプログラミングの授業であれば、学ぶ
のは言語の仕様そのものではなくアルゴリズムの方でしょうから、すぐに計算
が始められる状態になれるFortranを使うと言うのは十分あり得る話だと思い
ますよ。
Re:そもそも (スコア:1, すばらしい洞察)
そんなこといったら数学だって道具だよ?
教えちゃいかんの?
Re:数値演算ライブラリ (スコア:1)
たしかNECのSX-2まではベクトル演算ユニット(AP)のプログラミングがFortranでしか出来ない [wikipedia.org]という仕様のはずですので、 その意味ではFORTRANの学習は意味があったのだと思います。 SX-3以降はCも利用できるようです。
Re:地物屋です。 (スコア:2)
そういえば去年JAMSTEC横浜研究所の一般公開で,地球シミュレータで動かしているプログラムのソースの一部が展示してありましたが,それもFortranで書かれていましたね。