プログラミングを始める11~14歳にオススメの言語は? 240
ストーリー by hylom
入り口を間違えると変な方向に行くのか? 部門より
入り口を間違えると変な方向に行くのか? 部門より
あるAnonymous Coward 曰く、
本家/.「Best Introduction To Programming For Bright 11-14-Year-Olds?」より。
11~14歳の優秀な生徒を対象とした、プログラミングの課外クラスを来年の春から受け持つことになっている。条件や変数、ループなどの基本に触れることを目的としているが、子供たちのコンピュータやプログラミング経験には差があるのが常だ。
そこで質問なのだが、子供たちがプログラミングを始めるには、どの言語が最適だろうか?自分が若い頃使っていたQBasicなどは時代遅れで、かつXPでは殆どサポートされていないが、分かりやすく速いのが魅力だ。教育用とされるPascalも勧められたりした。/.諸氏はこの年代でプログラミングを経験しただろうか?そしてどんな言語をオススメする?
さらにオマケの質問だが、フィボナッチ数や素数、またバイナリ計算機などプログラミング初心者がはじめに取り組むパズルやプログラム、タスクなどで一番面白かったのと、一番勉強になったのはなんだろうか?本家では「アセンブリ言語を触らせてどれ程『優秀』かみてみようではないか・・・」なんて冗談も飛んでいますが、/.Jerの皆様のご意見はいかがでしょうか?ご自身の経験談なども是非。
お約束だが (スコア:4, すばらしい洞察)
これのできないプログラマの何と多いことか。
Re:お約束だが (スコア:2, おもしろおかしい)
ということで、やっぱり日本語か。
# あれ?
Re:お約束だが (スコア:1)
/* Kachou Utumi
I'm Not Rich... */
Re:お約束だが (スコア:1, おもしろおかしい)
Re:お約束だが (スコア:1)
Re:お約束だが (スコア:1)
ぴゅう太の生まれた年--(時間の経過)-->自分が生まれた年
「ぴゅう太」->「ぴょん太」->「ぴょん吉」と連想して...
どうでもいい話なので、スルーで
ぶっちゃけどっちも知らんなあ
それよか、ccod(http://ccod.sourceforge.net/)はどうよ?
まずは記述量の少ないスクリプトモードから初めて、慣れてきたら素のC、そしてC++へ
Re:お約束だが (スコア:1)
#ACは価値ある発言してください
Re:お約束だが (スコア:1)
まえへ 10
みぎへ 90
ペンをあげろ
・・・なんじゃそりゃ。
# 中学校のコンピュータの授業で、
# FM Townsで習いました。
Re:お約束だが (スコア:1)
ということで、擬似言語なんかいいんじゃないですかね。
学校で最初に習ったのはキーボード打ち込む作業じゃなくて、紙と鉛筆でした。
良い経験だったと今振り返って思います。
Re:お約束だが (スコア:2, 参考になる)
私が経験したのは、既にNECのPC-9801が発売されていた頃の話。なんたる無意味…
Re:お約束だが (スコア:1, 興味深い)
外人に日本語強制的に教えるのもいいかもしれない。
どこの国の人間かによるが (スコア:4, すばらしい洞察)
大抵のプログラムは英語ベースの命名を行うから、
基礎が無いと、まずソースを読むということをしてくれない。
黒歴史 (スコア:1)
とか読みながらでもプログラムは書けるんだぞ。
#ただ書けるだけ。
Re:黒歴史 (スコア:1, おもしろおかしい)
…書けてなくないですか?
Re:黒歴史 (スコア:1)
「じーおーてぃーおー 120は、次は120行目だって意味らしいぞ!」
って、本見ながら打ち込んでたぞっ
# ローマ字覚える前でした
ハード側からのアプローチは? (スコア:4, 興味深い)
書いたものが実際に動くのは楽しいですよ。興味が持てないと続きませんし。
概念よりもまず動かしてみるところかと。
というわけで、選択できる言語はCかアセンブラでしょうか。
授業でやろうとかだと時間もお金もかかりすぎて難しいかな…
まぁ対象が興味の持てる言語なら何でもいいと思います。
何がしたいかを聞いてみるとかからではだめですかね?
(教える方がつど対応するのが大変かもしれませんけど。)
考えると授業で一通りの基本的なことをやらせようと思うと難しいですね。
#中学生頃にDOS/V機のQuickBasicで図形を出してみたけど
何がおもしろいのかわからなくてあっさりやめてしまいました。
その後大学のサークルでマイコン制御を覚えてプログラムに復帰した経験より。
あと、組み込み系プログラマなんでこんな発想になるのかも。
言語はなんでもいいから (スコア:4, すばらしい洞察)
プログラミングというものは、そもそも他人に教えてもらうと言うより、自分自身で身に付ける類のものだと思います。教える立場の人は、生徒が自ら思うようなったり、その気持ちが継続するよう手助けしてあげればいいのです。
#アラン・ケイなら、どう答えるだろうかと想像しながら書いてみました。
Re:言語はなんでもいいから (スコア:2, すばらしい洞察)
実際の子供の反応を見てたらこんな台詞は絶対出てこないけどね。
「プログラミングはもっと崇高なものだ!」と教えることこそ傲慢であるといえましょう。
全く興味ナスな子供はそもそも教えを請うべきではありません。
// ハッ!壮大に釣られちまったぜ!(:>^
スクィーク (スコア:3, 興味深い)
Smalltalkでも良いんだけど、あのメタな世界の感じは、
若いうちじゃないと身に付かないなと思った22歳の夏
おまじないが少なければそれでいい (スコア:2, 興味深い)
昔の8ビットパソコンのBASICは、
・電源を入れるだけでよい。開発環境を立ち上げる方法を覚えなくていい。
・コンパイル作業も必要ない。
・ちょっとした思いつきはダイレクトモードで試せばいい。プログラムを作る必要もない。
・#includeとかuseとか#!/use/bin/hogehogeとかのおまじないが必要ない。
・GUIメニューのどこに何があって何を設定しておいて、といったことも覚える必要がない。
といったぐあいに、徹底した手軽さがありました。
いま、それに匹敵する手軽さは、なかなか難しいかもしれません。
Re:おまじないが少なければそれでいい (スコア:2, 参考になる)
> 昔の8ビットパソコンのBASICは、
> ・電源を入れるだけでよい。開発環境を立ち上げる方法を覚えなくていい。
とりあえず、IDLE を立ち上げればよい。IPython だともっといいかも。
> ・コンパイル作業も必要ない。
インタプリタなので、
> ・ちょっとした思いつきはダイレクトモードで試せばいい。プログラムを作る必要もない。
そのとおり。
> ・#includeとかuseとか#!/use/bin/hogehogeとかのおまじないが必要ない。
import が必要のことがありますが、これは、まぁ、仕方ないかと。
> ・GUIメニューのどこに何があって何を設定しておいて、といったことも覚える必要がない。
GUI? 何それ?
一方で、目標も必要 (スコア:1, すばらしい洞察)
でも、それを勉強したところで、その先が見えてこない。
オレもこんなのを作ってみたい、この言語をがんばって勉強すればできるはずとか、
そういう目標も必要だと思うんです。
あまりヘボくてマイナーすぎる言語だと、やる気が起きないというか、なぜ勉強しなきゃ
ならないんだという前提条件がくつがえってしまいます。
そういう意味で、昔は、入門の敷居も低くて、目標もそれなりに見えるところにあったので、
いい環境だったのかもしれません。売り物のソフトウェアでも、BASICで数キロバイト程度の
サイズだったりとか。
いまは、入門の敷居の低さを考慮した場合の解と、実用につながることを考慮した場合の解が、
乖離しすぎていて、その間に越えられない壁があるように思います。
ドリトルをよろしく (スコア:2, 興味深い)
やっぱり・・・ (スコア:2, おもしろおかしい)
人間の常識とは少し違う考え方(再帰関数や継続など)でプログラミングするから、かなり良い刺激になると思う。
高階関数とかも思考パターンにハマってるから、下手にCとかやるよりもいいだろうよ。
#14の俺が言うのもどうかと思うが・・・ww
#IDでいいや
お察しの通り、超濃緑茶です。 そう呼んだほうがいいでしょう。
俺が教えた時 (スコア:1)
教材はまずはバブルソート、それから数当てゲーム(mooとかHit&Blowとかいわれるやつ)とオセロをやらせた。
でもいまやるなら仕事がSIだから、B系ShellかPerlのスクリプトだな。
Re:俺が教えた時 (スコア:1, すばらしい洞察)
正直いって教える側の手抜き、思い上がりでしょう。指導方法の悪さをカバーする言葉以外のなにものでもない。なんでこういう歪んだ考えになったか考えたら、
> この世界から足を洗うのに早すぎるということはない。
この世界ってなに?って話。子供に野球(サッカーでも)を教えるときに「この指導方法でオチこぼれるなら適性が無かったってだけの話。この世界から足を洗うのに早すぎるということはない。」なんていう人は極端なプロ志向の一部だけじゃないでしょうか?
それでなくってもこの業界って周囲の無理解を嘆くことが多いのに、君の方針はそれを加速させるだけ。
学習しない人に未来はない (スコア:2, 興味深い)
>先人が歩んだ道のりは、コンピュータの歴史の教科書か何かで1日で早足で知っておくだけでいいと思う。
例えばニュートン力学や相対性理論を「再発明」する必要はないと思うけれど、
それらを「理解」していない人は物理学者とは言えない。
E=MC^2 などの式をコピーして、意味も分からずそれに数値を当てはめている限りは、
いつまでたってもニュートンやアインシュタインを超えられない。式を理解せず、
その意味も応用もできない人間は、先人の通った道をただなぞってるだけ。
そんなのは物理学者ではない。
>スタート地点が同じで、同じ道を、同じ速度で歩んだら、いつまでたっても先人に追い付けない。
今も昔もプログラマーになるのに必要となる「知識」や「技能」にはさほど大きな違いは
ない。ただし今の人達は昔に比べてそれを遙かに簡単に学習する環境が与えられている。
十分な書籍も、強力な個人用コンピューターも、インターネット環境さえ用意されている。
洋書だってamazonで簡単に手に入る。
あとはただ学習するだけじゃないか。
なんと簡単なことだろう!
これで文句を言ってたらバチがあたるぞ。
>基礎から積み上げて我流の変な癖をつけてしまうくらいなら、
>多くの優れたコードをコピペしまくって動くものをでっち上げるほうが、
>スタンダードな作法が身についてよいと思います。
それじゃ身につかないんだってば.
見るだけじゃなくて、考えて、理解して、実践しないと。
#コンピューターだと写本のように「書き写す」必要さえない。
そして考えるためには、その基礎となる知識が必要。
無知な人間には考える自由さえ与えられない。
電卓を叩いたりExcelに数値を書き込んだり、意味も分からずサンプルコードを繋ぎ合わせることが
「コンピューターを使うこと」だと思ってる人なら勝手にすればいい。いつまでたってもお遊びの
似非プログラマーから抜け出せないだろうけど、それも本人の選んだ道だ。
ただし、邪魔はしないでねと。
Re:学習しない人に未来はない (スコア:2, すばらしい洞察)
工学技術の多くは理解しなくても使えるための技術だ。
理学系の発想と工学系の発想はバランスが大切
とりあえず (スコア:1)
やっぱりマシン語かアセンブラを最初にやるといいんじゃないかと。
自分の場合はN88BASICだった。
最初だったらBASICかなぁ… (スコア:1)
# 以下オフトピ
まずは「プログラムってなんぞや」から入るべきだと思うので、
言語に関わらず自分で打ち込んでみるって大事なんじゃないかと。
当時は「ベーマガ」見ながら打ち込んで遊びましたよ。
RUN打った後に「SYNTAX ERROR」が出て、直して、またRUN打って…。
で、全部の内間違いが取れた時にはゲームもクリアできていたとかザラでした。
(エンディングでエラーで落ちた時のガックリ感とか…。)
ブラウザからコピペしてコンパイル->実行じゃ覚えなさそう。
# 習うより慣れろで結局プログラマーになってしまったID
---- ばくさん!@一応IT土方
Re:最初だったらBASICかなぁ… (スコア:1)
あと、学校ではポケコン使ってました(懐かしい。。。)
>ブラウザからコピペしてコンパイル->実行じゃ覚えなさそう。
確かに、調べる事に付いては便利になりましたが
ソース丸ごと探すことに時間を費やしてしまっては。。。
検索アルゴリズムの勉強にはなるかもですが
#習うこともできないレアなプログラムをやらされてしまい
#結果いろいろ覚えたプログラマーID
Re:最初だったらBASICかなぁ… (スコア:1)
画面に表示される情報量が少ないので、取っ掛かりとして良いのではないかと考えています。
オフトピですが
>ブラウザからコピペしてコンパイル->実行じゃ覚えなさそう。
これに激しく同意。
自分は新しい言語を覚えるときは、ブラウザとエディタを縦に並べて表示して、打ち込みながら覚えるというスタイルをいまだにとっています。
効率悪いとは思っているんですが、やめられませんね~。
Re:最初だったらBASICかなぁ… (スコア:1)
って感じでやってきましたが、BASIC→Cでわけが
わからなくなったのでやらないほうがいいと思ってます。
番地もGOTOも無しでどうやってうごくんだ?って感じでした…。
#ACは価値ある発言してください
厳密に言えばプログラミング言語ではないが (スコア:1, 興味深い)
Re:厳密に言えばプログラミング言語ではないが (スコア:1)
#誰も聞いてないけれどID
http://srad.jp/comments.pl?sid=428615&cid=1463383 [srad.jp]
視覚フィードバックのすぐれたものを (スコア:1, 参考になる)
ですがCにしてもスクリプト言語にしてもとっかかり段階でやれることが地味ですよね。
(もちろんライブラリ・モジュールを利用するとGUIや画面をいじったりできるでしょうが)
自分はBASICで育った世代なんですが
当時はちょっとしたコードを入力したり修正したりするだけで
画面が派手にかわったりして楽しかったなぁと思い出します。
そういう意味では
Processing(http://ja.wikipedia.org/wiki/Processing)や
本家や関連ストーリーで挙げられているScratch(http://scratch.mit.edu/)
がそこそこ近いのかな。
ただ当時は家庭用・業務用ゲーム機のレベルがたいして高くなかったので
「あのあこがれのゲームを手元のBASICでも動かしたい!コンセプトだけでも!」
という学習上のモチベーションがあったんですが
今だとちょっと難しいですよね。
となると実はツクール系がよいのかも?
Re:視覚フィードバックのすぐれたものを (スコア:1)
OOPを理解させるのに、ビジュアルな環境が提供されます。
RPGツクール (スコア:1)
Re:RPGツクール (スコア:1)
#よく考えてみれば言語じゃないしorz
眠気と戦う活字中毒者
言語以前に (スコア:1)
対象にもよるだろうが (スコア:1)
むしろそのくらいの年齢を対象にするのであれば、どれだけモチベーションを維持させるかの方が重要で、 昔だと良く有りげなBASICでバブルソートとか目に見えて達成感が無い課題を出すと最後まで付いて来るだけの モチベーションが保てず崩壊しがちです。
チョコチョコと見た目に映像が表示されたり、それっぽくアニメーションの様なものが出来たりするほうが ステップごとに達成感が得られやすくいいような感じです。
なので、入門としてはVBAの様なもので動きのある課題を出したり、JAVAで(難しい部分は雛形で渡すとして)簡単なお絵かきをしたりするのがいいような気がします。
--
今までの経験則が囁き掛けます
レゴのマインドストームとかは? (スコア:1)
-- 哀れな日本人専用(sorry Japanese only) --
PythonでPygame (スコア:1)
かのOLPC(子供用のNote)でも、主流言語ですよ、、、。
Pygameで、ゲームを作って遊ぶとか、、、。
まず言語ではなくて (スコア:1)
そして興味に見合った言語を与える。
そのあとはいろいろな言語の適性を教えて本人に選ばせる。
プログラミングの基礎なんてのはどんな言語でも学べるものだろうから、それよりは目的の実現のために最短距離の言語は何かを考えさせるのが良いのではないのかな。
Visual 系なら (スコア:1)
とか。まず、使って楽しくないと。
Logo でもBasicでも良いと思うけど、Graphics APIが複雑なものはだめかな。
1に日本語 、2に数学、3に英語 (スコア:1)
現在義務教育では日本語ができない日本人が大量生産されてて、非常に困ってます。日常会話には支障ないんだが、込み入った話題とか、正確な情報伝達とか、ちょっとした漢字の読みとか、実用日本語はダメダメなやつ多し。
プログラミング言語なんて、20過ぎてからでも十分習得できる。ちょっと込み入ったアルゴリズムになるとgibeupしてしまうような おつむ の出来、とか要求仕様書を読みこなせない日本語力で、プログラミングなどとはお笑い草。
まず、数学的帰納法を使った論証を日本語でちゃんと書ける程度には、日本語力と数学語力をつけろ。つぎは、defineとdeclareの違いが分かる程度の英語力だ
暴論でしょうか?
Re:1に日本語 、2に数学、3に英語 (スコア:2)
それでも総理大臣にはなれるし。というネタの命は短いかも。
# おっと、ここって閣下の支持者の巣窟だったっけ。
## よもや「すくつ」と読んだ者はおるまいな?
念のために言うと、「大臣」に「閣下」は少なくとも戦前なら正しい日本語。本気で巣窟だと思っているわけではなく、次行のネタの前振りに過ぎないのは言わずもがなというやつか。
義務教育がどうのという問題じゃないんじゃないかなぁ。東大とか出てても文章変な奴はいる。それに、実用日本語がダメダメな日本人が昔より増えているかどうかは怪しいもんだと思う。おっさんになると若いもんの言語能力が不満に思えてくるってだけかも。その怪しさは、「ロリコン犯罪が増えている」という言説と同じくらいかも。定量できるようなもんじゃないが。
関係ないけど(と言いつつ本題に戻る)よしたにまこと氏が最初にはまった言語はなんだろう。ちょうどこのトピックの対象年齢くらいだったようだけれど。
Jubilee
Re:1に日本語 、2に数学、3に英語 (スコア:1)
Re:採用の問題じゃないの? (スコア:2, 興味深い)
コードばりばり書きたくてそういう会社に入ったはずなのに、
実際には最上流工程しかやらせてもらえなくて統合開発環境なんか買ってもらえないし
ここ数年仕事ではメーラとワードとエクセルとパワーポイントしか使ってねえよ
と友人が悩んでましたよ
JavaScript (スコア:1)
まずは興味を持てるものを。
実行が簡単で、環境も簡単。家でも気軽にできるし
しかも実行結果はわりと楽しいし。
#プログラムのわからない新人には
九九プログラム
をとりあえずやらせてます。
"Hello World!"
がでたり、ソートがすばやくできても子供が楽しいと
思えるとは思えない
#ACは価値ある発言してください