トーク:Ruby

最新のコメント:1 年前 | トピック:入門書でfoo,barは避けるべき | 投稿者:すじにくシチュー

入門書でfoo,barは避けるべき 編集

日本の文科省などの作成した高校生向けのプログラミング教材や、文科省による新共通試験の作文例、各社の高校検定教科書におけるプログラミング教材などでは、foo,barとか見られません。hogeとかfugaとかも論外です。

リンク「Ruby」プログラミング教育で先行 地元の誇りを醸成、IT人材輩出へ | 2021年8月号 | 先端教育オンライン

リンク先の大学入学共通テスト「情報」教科の想定問題では、得票数を意味する変数は Tokuhyou です。このように、変数名にたとえば「kazu」のような日本語にラテン文字を使う方法は、文科省などの作成した高校生向けのプログラミング教材でも見られる手法です。


市販のプログラミング言語入門書でも、foobarとかそういう事はしていません。入門の教材でfoobarとかをしているのは大半ネットばかりです。

つまり出版界隈および教育界隈ではfoobarとかはプログラマー界隈の流行にすぎず、少なくとも初心者に教える優先事項ではないと見なされていますし、教育的な価値を感じられていません。

なのに foo とか bar とか使うのは、ギーク的な自己満足です。入門の段階において、そういうコード例は避けるべきです。

foobarとか使うなら、aとかbとか使うほうがマシです。


日本語のラテン表記だと仕事で困るとか、表記揺れなどhensuかhensuuか(「変数」のつもり)などのでいうのなら海外とのやりとりで困るとかいうなら、仕事や海外との時にやりとりが必要になったときに新たに英語で変数名をつけるように説明すればいいだけです。

例えるなら、小学生に四季報やら日経新聞などを読むように教育する教育者は愚かでしょう。

小中学校でrubyを使った教育の事例があります。リンク 「Ruby」プログラミング教育で先行 地元の誇りを醸成、IT人材輩出へ | 2021年8月号 | 先端教育オンライン ※リンク先は有料記事。全文を読むには有料。冒頭は無料。

私は文科省および教科書会社の教育テクニックを信用します。裏を返すと、市販の教材とは異なる書き方をしている人たちの教育力を信用していません。

万人に便利な文章法はありません。初心者に分かりやすく説明すれば、保守性などの実用性は劣ります(hensuのように)。しかしそれでも入門書である以上、分かりやすさを重視した文章でなければなりません。

また、日本人に分かりやすく説明すれば、海外に分かりづらくなります。そういうのは仕方のない事です。

状況によって説明方法を変えることこそが文章力なのであり、孔子も「人によって道を説く」と言っています。どの状況でも統一的な説明をしようとするスタイルは、私は反対です。

wikiはコミュニティなので、もしfoobarとか入門書で使うのが合意だというなら仕方なく私は従いますが、上記のような疑問は表明させていただきます。


リファレンスマニュアルのように網羅的に書くスタイルは、入門とは分けるべきです。実際、wikibooksでもC++ではMore C++ Idioms が用意されるなど、分離されています。

初心者がよく使う機能は、市販のうすめの入門書にあるような機能に限られています。内容を精選して、全体像を教えることを優先すべきだと思います。

どうしても教える必要があるなら、最低限必要なことと、知らなくても当面は問題ないことは、セクションを分離すべきです。セクション名に「発展的な話題」とかの話題をつけて、そういう場所に放り込むべきです。

網羅的に書くのは、バカでも出来ると、よく言われます。なぜなら、公式サイトを写せばいいからです。だから「教育は初等的に教えるほうが難しい」と昔から教育界隈では言われています。--すじにくシチュー (トーク) 2022年6月9日 (木) 09:23 (UTC)返信


オブジェクトを先に教えてから、if条件分岐やfor繰り返しなどの制御構造を教えるというスタイルは、日本の中学高校のプログラミング教育では採用されていないです。検定教科書の現物で簡単に確認できます。

言語開発者のまつもとひとゆき氏はオブジェクトの発想に着想を得てrubyを開発しましたが、しかし中学生・高校生のような若者には経緯は関係ない話です。

半導体製造装置の操作方法を知らなくてもパソコンを使えるのと同じ。ちまたの有料のパソコン教室で半導体製造装置の使い方を教えるのは詐欺商売でしょう。

そもそも「オブジェクト」という概念の普及した1990年代では、「少ない予備知識でも、直感的かつプログラミングできるようにオブジェクトを導入しよう」という経緯があったと思います。なにかの書籍で、「物理学者など数値計算を用途とするだけの、コンピュータ工学(※当時の呼び方)専門外の技術者でもコンピュータを利用しやすいようにしよう」という発想が、オブジェクトの理念のひとつだったと記憶しています。

こういう経緯を考えれば、繰り返し・条件分岐などの制御構造よりも先にオブジェクトの節を長々と説明するのは、本末転倒です。まあ、昔の論者によって理念は違うのかもしれませんが。--すじにくシチュー (トーク) 2022年6月9日 (木) 09:47 (UTC)返信

ページ「Ruby」に戻る。