パスワードを忘れた? アカウント作成
42620 story
プログラミング

プログラミングを始める11~14歳にオススメの言語は? 240

ストーリー by hylom
入り口を間違えると変な方向に行くのか? 部門より

あるAnonymous Coward 曰く、

本家/.「Best Introduction To Programming For Bright 11-14-Year-Olds?」より。

11~14歳の優秀な生徒を対象とした、プログラミングの課外クラスを来年の春から受け持つことになっている。条件や変数、ループなどの基本に触れることを目的としているが、子供たちのコンピュータやプログラミング経験には差があるのが常だ。

そこで質問なのだが、子供たちがプログラミングを始めるには、どの言語が最適だろうか?自分が若い頃使っていたQBasicなどは時代遅れで、かつXPでは殆どサポートされていないが、分かりやすく速いのが魅力だ。教育用とされるPascalも勧められたりした。/.諸氏はこの年代でプログラミングを経験しただろうか?そしてどんな言語をオススメする?

さらにオマケの質問だが、フィボナッチ数や素数、またバイナリ計算機などプログラミング初心者がはじめに取り組むパズルやプログラム、タスクなどで一番面白かったのと、一番勉強になったのはなんだろうか?

本家では「アセンブリ言語を触らせてどれ程『優秀』かみてみようではないか・・・」なんて冗談も飛んでいますが、/.Jerの皆様のご意見はいかがでしょうか?ご自身の経験談なども是非。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • お約束だが (スコア:4, すばらしい洞察)

    by Anonymous Coward on 2008年12月11日 17時43分 (#1471629)
    日本語。

    これのできないプログラマの何と多いことか。
  • by Anonymous Coward on 2008年12月11日 19時30分 (#1471695)
    とりあえず英語の基礎を教える。
    大抵のプログラムは英語ベースの命名を行うから、
    基礎が無いと、まずソースを読むということをしてくれない。
  • by nagara (37105) on 2008年12月12日 14時12分 (#1472179)
    その年齢層だと物理的に動くハードの制御をやるのがいいと思います。
    書いたものが実際に動くのは楽しいですよ。興味が持てないと続きませんし。
    概念よりもまず動かしてみるところかと。
    というわけで、選択できる言語はCかアセンブラでしょうか。
    授業でやろうとかだと時間もお金もかかりすぎて難しいかな…

    まぁ対象が興味の持てる言語なら何でもいいと思います。
    何がしたいかを聞いてみるとかからではだめですかね?
    (教える方がつど対応するのが大変かもしれませんけど。)
    考えると授業で一通りの基本的なことをやらせようと思うと難しいですね。

    #中学生頃にDOS/V機のQuickBasicで図形を出してみたけど
    何がおもしろいのかわからなくてあっさりやめてしまいました。
    その後大学のサークルでマイコン制御を覚えてプログラムに復帰した経験より。
    あと、組み込み系プログラマなんでこんな発想になるのかも。
  • by nnemacs (21857) on 2008年12月12日 17時12分 (#1472308)
    ゲームのプログラミングを教えるべきです。子供に興味を持ってもらう事、楽しいと思ってもらう事がなにより大切です。やる気のない生徒に何を教えても身につきません。

    プログラミングというものは、そもそも他人に教えてもらうと言うより、自分自身で身に付ける類のものだと思います。教える立場の人は、生徒が自ら思うようなったり、その気持ちが継続するよう手助けしてあげればいいのです。

    #アラン・ケイなら、どう答えるだろうかと想像しながら書いてみました。
  • スクィーク (スコア:3, 興味深い)

    by gm_camouf01 (31675) on 2008年12月12日 2時04分 (#1471910)
    Squeak [wikipedia.org]
    Smalltalkでも良いんだけど、あのメタな世界の感じは、
    若いうちじゃないと身に付かないなと思った22歳の夏
  • by Anonymous Coward on 2008年12月12日 12時22分 (#1472059)
    とりあえず動くまでに必要な知識が少なければ少ないほど良いと思う。

    昔の8ビットパソコンのBASICは、
    ・電源を入れるだけでよい。開発環境を立ち上げる方法を覚えなくていい。
    ・コンパイル作業も必要ない。
    ・ちょっとした思いつきはダイレクトモードで試せばいい。プログラムを作る必要もない。
    ・#includeとかuseとか#!/use/bin/hogehogeとかのおまじないが必要ない。
    ・GUIメニューのどこに何があって何を設定しておいて、といったことも覚える必要がない。
    といったぐあいに、徹底した手軽さがありました。

    いま、それに匹敵する手軽さは、なかなか難しいかもしれません。
    • by elderwand (34630) on 2008年12月12日 12時37分 (#1472070) 日記
      Python は、インタラクティブ・モードがデフォルトなので、かなりイイ線いってると思いますよ。

      > 昔の8ビットパソコンのBASICは、
      > ・電源を入れるだけでよい。開発環境を立ち上げる方法を覚えなくていい。

      とりあえず、IDLE を立ち上げればよい。IPython だともっといいかも。

      > ・コンパイル作業も必要ない。

      インタプリタなので、

      > ・ちょっとした思いつきはダイレクトモードで試せばいい。プログラムを作る必要もない。

      そのとおり。

      > ・#includeとかuseとか#!/use/bin/hogehogeとかのおまじないが必要ない。

      import が必要のことがありますが、これは、まぁ、仕方ないかと。

      > ・GUIメニューのどこに何があって何を設定しておいて、といったことも覚える必要がない。

      GUI? 何それ?
      親コメント
    • 一方で、目標も必要 (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2008年12月12日 12時58分 (#1472102)
      入門さえすればいいのなら、入門専用のいろんなプログラミング環境みたいなのがありますよ。
      でも、それを勉強したところで、その先が見えてこない。
      オレもこんなのを作ってみたい、この言語をがんばって勉強すればできるはずとか、
      そういう目標も必要だと思うんです。

      あまりヘボくてマイナーすぎる言語だと、やる気が起きないというか、なぜ勉強しなきゃ
      ならないんだという前提条件がくつがえってしまいます。

      そういう意味で、昔は、入門の敷居も低くて、目標もそれなりに見えるところにあったので、
      いい環境だったのかもしれません。売り物のソフトウェアでも、BASICで数キロバイト程度の
      サイズだったりとか。

      いまは、入門の敷居の低さを考慮した場合の解と、実用につながることを考慮した場合の解が、
      乖離しすぎていて、その間に越えられない壁があるように思います。
      親コメント
  • by watayan (143) on 2008年12月12日 13時01分 (#1472109) ホームページ 日記
    V2も出たし,本も出たし。
  • やっぱり・・・ (スコア:2, おもしろおかしい)

    by daiki_44wa (36750) on 2008年12月13日 18時43分 (#1472765) ホームページ 日記
    Schemeかな。
    人間の常識とは少し違う考え方(再帰関数や継続など)でプログラミングするから、かなり良い刺激になると思う。
    高階関数とかも思考パターンにハマってるから、下手にCとかやるよりもいいだろうよ。

    #14の俺が言うのもどうかと思うが・・・ww
    #IDでいいや
    --
    お察しの通り、超濃緑茶です。 そう呼んだほうがいいでしょう。
  • by Kazzanov (33541) on 2008年12月11日 18時28分 (#1471656) 日記
    言語はC
    教材はまずはバブルソート、それから数当てゲーム(mooとかHit&Blowとかいわれるやつ)とオセロをやらせた。

    でもいまやるなら仕事がSIだから、B系ShellかPerlのスクリプトだな。
    --
    マターリな仕事万歳
  • by valient (14991) on 2008年12月12日 12時28分 (#1472061)
    最初に perl を覚えさせるとひねくれた子供になりそうだ。

    やっぱりマシン語かアセンブラを最初にやるといいんじゃないかと。

    自分の場合はN88BASICだった。
  • 自分が最初に触ったのがMSX-BASIC(MSX1)だったので。

    # 以下オフトピ

    まずは「プログラムってなんぞや」から入るべきだと思うので、
    言語に関わらず自分で打ち込んでみるって大事なんじゃないかと。

    当時は「ベーマガ」見ながら打ち込んで遊びましたよ。

    RUN打った後に「SYNTAX ERROR」が出て、直して、またRUN打って…。
    で、全部の内間違いが取れた時にはゲームもクリアできていたとかザラでした。
    (エンディングでエラーで落ちた時のガックリ感とか…。)

    ブラウザからコピペしてコンパイル->実行じゃ覚えなさそう。

    # 習うより慣れろで結局プログラマーになってしまったID

    --
    ---- ばくさん!@一応IT土方
    • 自分も最初はMSX-BASICでしたね。
      あと、学校ではポケコン使ってました(懐かしい。。。)

      >ブラウザからコピペしてコンパイル->実行じゃ覚えなさそう。
      確かに、調べる事に付いては便利になりましたが
      ソース丸ごと探すことに時間を費やしてしまっては。。。
      検索アルゴリズムの勉強にはなるかもですが

      #習うこともできないレアなプログラムをやらされてしまい
      #結果いろいろ覚えたプログラマーID
      親コメント
    • BASICはBASICでも、ポケコンのBASICがシンプルで良いと思います。
      画面に表示される情報量が少ないので、取っ掛かりとして良いのではないかと考えています。

      オフトピですが

      >ブラウザからコピペしてコンパイル->実行じゃ覚えなさそう。

      これに激しく同意。
      自分は新しい言語を覚えるときは、ブラウザとエディタを縦に並べて表示して、打ち込みながら覚えるというスタイルをいまだにとっています。
      効率悪いとは思っているんですが、やめられませんね~。
      --
      あなたとコンビにふぁみりま~と♪
      親コメント
    • ファミリーベーシック→N88BASIC→C→いろいろ

      って感じでやってきましたが、BASIC→Cでわけが
      わからなくなったのでやらないほうがいいと思ってます。

      番地もGOTOも無しでどうやってうごくんだ?って感じでした…。
      --
      #ACは価値ある発言してください
      親コメント
  • by Anonymous Coward on 2008年12月12日 12時45分 (#1472083)
    作者が計算機の講義で使うためにいろいろ改造したという Risa/Asir [kobe-u.ac.jp] が丁度よさそうな気がしないでもない。
  • by Anonymous Coward on 2008年12月12日 12時59分 (#1472106)
    Ruby使いじゃないけどRubyがいいかなというのが個人的な意見です。

    ですがCにしてもスクリプト言語にしてもとっかかり段階でやれることが地味ですよね。
    (もちろんライブラリ・モジュールを利用するとGUIや画面をいじったりできるでしょうが)

    自分はBASICで育った世代なんですが
    当時はちょっとしたコードを入力したり修正したりするだけで
    画面が派手にかわったりして楽しかったなぁと思い出します。

    そういう意味では
    Processing(http://ja.wikipedia.org/wiki/Processing)や
    本家や関連ストーリーで挙げられているScratch(http://scratch.mit.edu/)
    がそこそこ近いのかな。

    ただ当時は家庭用・業務用ゲーム機のレベルがたいして高くなかったので
    「あのあこがれのゲームを手元のBASICでも動かしたい!コンセプトだけでも!」
    という学習上のモチベーションがあったんですが
    今だとちょっと難しいですよね。
    となると実はツクール系がよいのかも?
  • #ごめんなさい。
  • アルゴリズムを学んで欲しい
  • by ahomin (34823) on 2008年12月12日 13時18分 (#1472126)
    どの言語でもアルゴリズムの概念さえ身に付けばどんな言語でも扱える(と信じている)ので、 言語選択は何でもいいんじゃないかと思ってます。
    むしろそのくらいの年齢を対象にするのであれば、どれだけモチベーションを維持させるかの方が重要で、 昔だと良く有りげなBASICでバブルソートとか目に見えて達成感が無い課題を出すと最後まで付いて来るだけの モチベーションが保てず崩壊しがちです。

    チョコチョコと見た目に映像が表示されたり、それっぽくアニメーションの様なものが出来たりするほうが ステップごとに達成感が得られやすくいいような感じです。

    なので、入門としてはVBAの様なもので動きのある課題を出したり、JAVAで(難しい部分は雛形で渡すとして)簡単なお絵かきをしたりするのがいいような気がします。

    --
    今までの経験則が囁き掛けます
  • プログラミングの目標として、文字列とか扱うのは複雑だから、レゴのマインドストームのあの視覚的なプログラミングにしちゃって、変数とかループの概念を教えるっていうのは?で、ある程度できるようになったら、「実はこれ、Java という本格的な言語でもできるんだよ」とか言ってJavaに移行していくと。
    --
    -- 哀れな日本人専用(sorry Japanese only) --
  • by jelkawasaki (35181) on 2008年12月12日 13時22分 (#1472130)
    やはり、Pythonじゃないですが、、、、。
    かのOLPC(子供用のNote)でも、主流言語ですよ、、、。
    Pygameで、ゲームを作って遊ぶとか、、、。
  • まず興味の方向を観察することだと思う。
    そして興味に見合った言語を与える。
    そのあとはいろいろな言語の適性を教えて本人に選ばせる。

    プログラミングの基礎なんてのはどんな言語でも学べるものだろうから、それよりは目的の実現のために最短距離の言語は何かを考えさせるのが良いのではないのかな。
  • by funya (14942) on 2008年12月12日 13時39分 (#1472146)
    http://www.viscuit.com/

    とか。まず、使って楽しくないと。

    Logo でもBasicでも良いと思うけど、Graphics APIが複雑なものはだめかな。
  • プログラミング言語を学ぶ暇があったら、まずは日本語をちゃんと習得すべき。次に数学、あと英語も。

    現在義務教育では日本語ができない日本人が大量生産されてて、非常に困ってます。日常会話には支障ないんだが、込み入った話題とか、正確な情報伝達とか、ちょっとした漢字の読みとか、実用日本語はダメダメなやつ多し。

    プログラミング言語なんて、20過ぎてからでも十分習得できる。ちょっと込み入ったアルゴリズムになるとgibeupしてしまうような おつむ の出来、とか要求仕様書を読みこなせない日本語力で、プログラミングなどとはお笑い草。

    まず、数学的帰納法を使った論証を日本語でちゃんと書ける程度には、日本語力と数学語力をつけろ。つぎは、defineとdeclareの違いが分かる程度の英語力だ

    暴論でしょうか?

    • 込み入った話題とか、正確な情報伝達とか、ちょっとした漢字の読みとか、実用日本語はダメダメなやつ多し。

      それでも総理大臣にはなれるし。というネタの命は短いかも。

      # おっと、ここって閣下の支持者の巣窟だったっけ。
      ## よもや「すくつ」と読んだ者はおるまいな?

      念のために言うと、「大臣」に「閣下」は少なくとも戦前なら正しい日本語。本気で巣窟だと思っているわけではなく、次行のネタの前振りに過ぎないのは言わずもがなというやつか。

      義務教育がどうのという問題じゃないんじゃないかなぁ。東大とか出てても文章変な奴はいる。それに、実用日本語がダメダメな日本人が昔より増えているかどうかは怪しいもんだと思う。おっさんになると若いもんの言語能力が不満に思えてくるってだけかも。その怪しさは、「ロリコン犯罪が増えている」という言説と同じくらいかも。定量できるようなもんじゃないが。

      関係ないけど(と言いつつ本題に戻る)よしたにまこと氏が最初にはまった言語はなんだろう。ちょうどこのトピックの対象年齢くらいだったようだけれど。

      --
      Jubilee
      親コメント
    • 言語じゃないけど、数学を入れるなら論理学も仲間に入れてあげてください。
      親コメント
  • by kokeko (31517) on 2008年12月12日 14時02分 (#1472168) 日記
    アルゴリズムなんか子供には何も楽しくないので
    まずは興味を持てるものを。
    実行が簡単で、環境も簡単。家でも気軽にできるし
    しかも実行結果はわりと楽しいし。

    #プログラムのわからない新人には
    九九プログラム
    をとりあえずやらせてます。

    "Hello World!"
    がでたり、ソートがすばやくできても子供が楽しいと
    思えるとは思えない
    --
    #ACは価値ある発言してください
typodupeerror

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

読み込み中...