タグ

ブックマーク / blog.goo.ne.jp/viscuit (26)

  • プログラミング教育の先 - ビスケットのあれこれ

    個人に対するプログラミング教育のモチベーションは,他人よりも人生において優位にたちたい・幸せになりたいということでしょうから,それはそれでどんな理由でもよいと思います.大事なことです. それに対して,義務教育でのプログラミング教育の意味はまったく違ってます.義務教育のきちんとした定義はあるんでしょうが,僕が一番大事だと思っているのは,社会全体での共通理解を底上げする,ということです.ついでに,僕自身ずっと言っているのは,これは子供の教育だけの話ではないですよ.大人もちゃんと理解しておいてほしいことですよ,ということです.社会全体での共通理解の底上げが大事です. たとえば,先日起きた人工衛星の「ひとみ」の事故の話です. http://jbpress.ismedia.jp/articles/-/46999 この記事では,もはやものづくりそのものの考え方が古くなっているということが書かれています

    プログラミング教育の先 - ビスケットのあれこれ
  • プログラミングを学ぶことによって獲得できる能力を言ってはいけない - ビスケットのあれこれ

    何度も繰り返して言ってますが,プログラミングを全員が学ぶ必要があるのはコンピュータとは何かを知るためです.何度も質問をされますが「プログラミングを学ぶとどんな能力がつくでしょうか」に対して僕は一切答えるつもりはありません.というか,我々(コンピュータの専門家)は答えるべきではないと思っています. 心からいうと,たとえば佐藤さんのブログで 自己研鑽力,ルール適応力,根回し力,といったことが言われていて,僕も共感できますし.神谷さんの「子どもにプログラミングを学ばせるべき6つの理由」の内容も同意です.うすうす感じています.きっと正しいと思います. ただ,こういった力がつきそうということは,プログラミングを教えて普通に観察していると気がつくことなので,できれば外部からではなく,内部つまり学校の先生たちに気がついて欲しい.だって子供にいろんな力をつけさせるというのは先生たちの業であって,重要

    プログラミングを学ぶことによって獲得できる能力を言ってはいけない - ビスケットのあれこれ
  • オブジェクト指向の問題点 - ビスケットのあれこれ

    オブジェクト指向プログラミングを神格化するような記事が流れてきたので,僕が知っている問題点について書いてみたいと思います.僕がまだ学生だったころは,オブジェクト指向の評価もまだそれほど定まっていなくて,オブジェクト指向の次はどんなパラダイムが出てくるかとか普通に学生レベルで議論していたものですが,ここまで強大になってしまうとそれを打ち負かそうなんて気にはならないのでしょうか.僕にはオブジェクト指向が普遍的な真理という感じは全然しなくて,ここまで使われてる理由は,現実的なテクノロジーで大きなシステムを作らなければならない必要性のほうを優先した結果であると認識しています.オブジェクト指向がその後の25年ほどもずっと安定してその地位を保てるほど素晴らしいものとは思えないのです. 以下で上げる問題点は,個別に解決している研究はあったりしますし,僕も論文を書いたりしましたけど,実際の言語に導入されて

    オブジェクト指向の問題点 - ビスケットのあれこれ
  • 小学校でのプログラミングの授業案 - ビスケットのあれこれ

    プログラミングを小学校からやるという方針がやっとでましたね.僕も以前から主張していましたが,政府の後押しが出たのは喜ばしいことです.ところが,やはりというか「そんなことは小学生のうちからやる必要はない」という意見もチラホラでています.コンピュータが嫌いな人から出ているのならまだしも,コンピュータの専門家の中からも聞こえてきます.こんなのいつひっくり返るかわからない危うい決定なんですから,せめて専門家の間では足並みを揃えたいところですが. こうなる理由は「プログラミングを教える」ということがちゃんと定義されないで,それぞれが思ったことを言っているからですね.ということなので,僕が考えている小学生向けの授業をざっとご紹介しようと思います. 僕は,各学年で45分の授業を2回ずつで,6年間で12回(毎週2コマではなくて年間で2コマです)というのを考えています.プログラミングを教えると色々な効果があ

    小学校でのプログラミングの授業案 - ビスケットのあれこれ
  • 小学校の田んぼとプログラミング教育 - ビスケットのあれこれ

    僕はこのブログで「プログラミングを学ぶべき理由」をずっと説明してきました.要約すると,プログラミングはこれから重要なスキルであると言われているけれども,それ以前に,「コンピュータとはなにか」ということを知るためにプログラミングを学ぶべきなんですよ,ということです. 「コンピュータとはなにか」というのが説明が難しい.だいたいコンピュータの専門家でもここはうまく言語化できていないんじゃないでしょうか.僕もかなり手探りな状態です. それで,最近つかっている例が田んぼです.多くの小学校に小さな田んぼや畑があって,担当の学年が決まっているのだと思いますが,お米や野菜を育てています.秋には収穫されて,それが給に出されたりします.なんのために,これを小学生にやらせているのでしょうか.普通にスーパーに行けばお米や野菜は簡単に手に入ることができます.大人になっても趣味で農園をやっている人はいますけれど,大

    小学校の田んぼとプログラミング教育 - ビスケットのあれこれ
  • プログラミングを学ぶべきたった一つの理由 - ビスケットのあれこれ

    いよいよプログラミング教育ブームですが,自分の子供に教える・教えないという範囲ならば好き嫌いで済みますけれど,小学校義務教育への導入という極端な話になると,なかなか議論は尽きません.とはいえ,海外に遅れてはいけないということで,反対派を一気に押し切るというのは私は好きではありません.私の根底にあるのは,これほど面白くて大好きなコンピュータを万人に好きになってもらいたい,という気持ちがあるからです.義務教育への導入の理由は万人を説得できるものでなければならないと考えています. たとえば,最近出版された神谷さんの「子どもにプログラミングを学ばせるべき6つの理由」というを例にとりますが,このは非常にうまく現在のプログラミング教育ブームをまとめている良いです.今のブームの理由がわかると思います.しかし,ここであげているような6つの理由では,根っこから反対している人を説得できないのではないかと

    プログラミングを学ぶべきたった一つの理由 - ビスケットのあれこれ
  • 相対アドレスを思いついたきっかけの事件 - ビスケットのあれこれ

    僕がコンピュータ上の名前について興味を持つようになったのは,博士課程1年くらいの時に受けたいたずら電話事件でした.これは中々面白い事件なので書いてみます. 当時,大学の近くで一人暮らしをしてまして,家には電話が引いてます.大学で研究者同士の連絡に電子メールは使えましたけど,まだまだ一般の人とのやりとりは電話の時代でした.インターネットはあったけど,まだWebはありませんでした.ネットのアプリというのは電子メール,ネットニュースくらいでしたかね. 電話といえば,丁度ダイヤルQ2というサービスが始まったころです.これまでの通話料だけじゃなく,情報量を代行して情報提供者へ支払らうというものでした.株価とか競馬とか星占いとか,今だったらWebで提供されそうな情報だけじゃなくて,音声掲示板というサービスを提供している会社も現れました.今の出会い系掲示板みたいなものですが,暗証番号がかかっているところ

    相対アドレスを思いついたきっかけの事件 - ビスケットのあれこれ
    nobyuki
    nobyuki 2015/06/04
  • 年金番号の流出の話 - ビスケットのあれこれ

    プログラミングから脱線すると色々と言いたくなるという. 年金番号がウイルスにかかって流出してしまって,想定される被害は年金番号の成り済ましが怖いので,流出してしまった人たちに番号を再発行して郵送するとかニュースで言ってました. 実は,僕の学位論文の一部で,オープンシステムにおける名前付けの問題について議論しています.ちゃんと論文にもなっています.そのときの議論の延長線上に今回の年金番号流出もからんでいるので,その話をしましょう. 当時の話題の中心は,インターネットでした.世界のコンピュータにそれぞれ一意の番号をつけて(つまり,全部のコンピュータが違う番号をもっている),その上で,ある番号のコンピュータにメッセージを送りたければ,どうやってそのコンピュータを探すか(ルーティング)という問題を解けば良い,ということにしていました.その後に出てきたIPv6も色々と修正してますが同じです. ルーテ

    年金番号の流出の話 - ビスケットのあれこれ
    nobyuki
    nobyuki 2015/06/02
  • 文字の入力の問題 - ビスケットのあれこれ

    今回はプログラミングの話題からちょっとズレて,コンピュータへの文字の入力の問題について書いてみます. 日の小学校の教育では手書きが中心ですが,海外では手書きはマイナーで,普通にコンピュータで作文やレポートを書かせているのだそうです.どうしてここまで差がついたのか.これは日教育界が古き良き伝統を重んじるとか(そういう傾向はあるのかもしれませんが)それだけではないと思います. アルファベットを言語としてもつ国はアジア以外はほとんどだと思いますが,彼らにとってのキーボードというのは入力したい文字とキーが1対1に対応している,直接入力デバイスです.彼らが手書きを捨てて,キーボードを選ぶというのは,が活字を使っているというのと同じくらい自然なテクノロジーへの対応です. 日語でそれに対応しているのが漢字タイプライターというものです.すべての漢字がずらーっと2000個くらい並んでいて,それを選

    文字の入力の問題 - ビスケットのあれこれ
  • 繰り返し構文は,作業をサボるだけなのか - ビスケットのあれこれ

    先日のプログラミング教育系の研究会で面白い問題提起がありました.プログラミングを教えててこういう生徒がよくいるよねー.という話です.僕はその日に小学生の活動を見学したのですが,ある子は,ドリトルで知っている構文(線を引く)ということだけを使って複雑な絵を描かせました.全部で200行近くあって,いわゆる制御文というのは一切使っていません.制御文と変数をうまく使うとそれらのプログラムは10行くらい(つまり1/20)に短くなるのですが.ただひたすら似たような文を入力していました.そういったプログラムを書いた子にはどう反応すべきかという問題提起です. ある意見.「難しい構文を知る前に作った作品なんだから,そういう苦労は褒めるべきであろう」まあ,僕もこの意見には賛成です.概ねみなさんそうでしょう.問題は次の段階.「プログラミングの質は作業をサボることなんだから,こういうのは良くない.ちゃんと制御文

    繰り返し構文は,作業をサボるだけなのか - ビスケットのあれこれ
    nobyuki
    nobyuki 2015/03/23
  • プログラミングを学ぶ理由を万人に説得する方法 - ビスケットのあれこれ

    「プログラミングを学ぶ」「プログラミングで学ぶ」この言い方は,最初見たとき中々うまい言葉を使うなぁと思いました.プログラミング教育では,国語とか音楽とか他の教科の授業でも使えるんだという例がいろいろと乗ってますし,僕らもビスケットを活用して生き物の動き方を観察する学習に使ったりと,プログラミングを直接の目的としない学びに使っています.これが「プログラミングで学ぶ」ということですね. ところが,これらは分類には向かない言葉でもあります.たとえば,プログラミングを学ぶ理由の1つに「論理的思考力」がつく,と言われていますがそれはどっちに属するのでしょうか.いつも真っ先に出てくる理由なので「プログラミングを学ぶ」に分類される感じもしますね.国語や音楽と比べればずっと前者よりです.しかし,論理的思考力は,プログラミングじゃなくても学べます.むしろビスケットのような,あまり深く考えないでさらっとや

    プログラミングを学ぶ理由を万人に説得する方法 - ビスケットのあれこれ
  • プログラミングを学ぶ理由 - ビスケットのあれこれ

    プログラミングを教える理由 子どもにプログラミングを教えるのがブームになってきました.僕は12年前から自分を曲げずにやってきてますが,今のブームにちょっと違和感を覚えてます.それは「なぜプログラミングを教えるべきなのか」がちょっと違うからです. 某省からアンケートのようなものが来て,プログラミングを子どもに教えるとどんな力を育てると思いますか,という質問がありまして.よく言われるのは「論理的思考力」ということなんだろうけれど,「論理的思考力」って何?こんなのプログラミング教育ブーム以前から必要とされた能力だし,これを鍛えるツールとかいろいろありましたよね.将棋とかその手のゲームはみんなそうだし.ドラクエでもそれなりに考えなきゃならない部分もあります.僕は,プログラミングで論理的思考力が付くとは思うけれど,それは主の目的ではないと思っています. 他の科目で考えてみます.たとえば,なぜ「音楽

    プログラミングを学ぶ理由 - ビスケットのあれこれ
  • ビスケットのルーツ - ビスケットのあれこれ

    ビスケットは非常に独特な言語と思われているが,実はそのルーツとなるビジュアル言語が二つある.それらを知ると,ビスケットはそんなに変わった言語ではないことがわかるだろう. ひとつは,KidSimというビジュアル言語である.マックの上で動く,アイコンを動かすシミュレータである.この言語はその後Cocoaと名前を変え,さらにStagecast Creatorという名前で製品化された. http://www.stagecast.com/ 簡単な例を示すと, このプログラムで,赤い顔が右に動く,という意味になる. さらに, このプログラムは,赤い顔と水色の顔が隣り合っていると,赤は一つ下に下がって,水色をオレンジにする. たとえば, のような画面で,これらのプログラムを実行すると, 最初に赤は右に進んで,水色に衝突すると,それをオレンジに変えて,一つ下がって,...これを繰り返して,最後にはすべての

    ビスケットのルーツ - ビスケットのあれこれ
  • オブジェクト指向は子ども向けには難しい - ビスケットのあれこれ

    オブジェクト指向は子ども向けには難しいということをもう少しちゃんと書いてみようと思う. オブジェクト指向プログラミングの最初の言語 Smalltalk は子ども向けとして作られたと言われているけれど,やっぱり僕は難しいと思う.構成要素が多すぎる. 僕のオブジェクト指向の理解は,沢山の文があって,それらの文の主語が数種類のとき,その文の主語でまとめて,主語を省略して文を記述できる,というものである.リンゴは赤い.リンゴは丸い.リンゴはおいしい.をまとめて,リンゴについて言います.赤い,丸い,おいしい.という感じ.オブジェクト指向のありがたさは,文が沢山ないとわからない.1つや2つの文で,それらの主語を省略できたからといって,ありがたみは感じないだろう. Squeak, Scratch, そしてプログラミンであるが,これらのオブジェクト指向の部分について.これらの言語に共通しているのは,見た目

    オブジェクト指向は子ども向けには難しい - ビスケットのあれこれ
  • 「コンピュータを粘土にしよう」の裏の意味 - ビスケットのあれこれ

    プログラミング言語はいろんな種類があるけれど,ビスケットはその中のどういう位置づけのものなのか. プログラミング言語を大きく分けると,手続き型と宣言型に分かれる.この二つの大きな違いは,時間軸.手続き型はコンピュータの計算の手順を順番に指示し,宣言型は処理の順番ではなくて,違う関係性で並べる.たとえば,宣言型言語の一つに関数型言語があるが,これは計算のデータの流れに注目して並べ,実際にどういう順序で計算がおこなわれるかは問わない.論理型言語というのも宣言型言語のひとつだが,こちらはデータの流れも記述しない.データの関係性だけ記述する.ビスケットはこれらの中では,論理型言語に最も似ているのだけれど,さらに狭く,ビスケットが記述しているのは「具体例の変化」という関係(before と after)だけである. ユーザインタフェースの研究で,実例による操作指示というのがある.たとえば,「ファイル

    「コンピュータを粘土にしよう」の裏の意味 - ビスケットのあれこれ
  • Scratchのここが嫌いだ(2) - ビスケットのあれこれ

    僕が伝えたいメッセージは コンピュータは君たちのものだよ こんなに可能性があるんだよ ということ,逆にこれだけは伝えたくないというメッセージは, コンピュータはこんなに便利ですよ でした. 可能性の話をします.音楽で考えてみましょう.音がポーンと一つなったとき,「これが音楽の基なんだ,ふーん」と思うでしょう.音が二つポンポンとなると,少し印象が変わってきます.悲しく聞こえたり,楽しく聞こえたり.音が三つ四つと増えると,もうメロディと言えそうなものが聞こえてもっと色々な感情が表現できます.音楽ってすごい可能性があるなあと思えるでしょう.逆は,最初からサザンの曲を聴かせても違う意味で音楽の素晴らしさは伝わるかもしれませんが,自分で作ろうとか音楽そのものの可能性とかは伝わらないと思います. Scratchの画面を見ると,タブで整理されているとはいえ,何か色んなアイコンが大量に並んでいます.まあ

    Scratchのここが嫌いだ(2) - ビスケットのあれこれ
  • Scratchのここが嫌いだ(1) - ビスケットのあれこれ

    今までは,一般人に対するプログラミング教育の重要性を共に説いて行く仲ということで,表立ってScratchの批判はして来なかったのですが,安倍首相までがプログラミング教育を言い出したので,そろそろ良いかと思って,ちょっと書いておきます.(1)となっているのは,この先何回続くかわからないから. コンピュータ科学を専攻している人は,この先を読む前に自分でScratchとViscuitを比較してみるのもよいかと思います.良い勉強になるはずです. まず,こういうツールには(特に子供向けと言っているツール)伝えたいメッセージというのが必須です. 僕はViscuitを作ったときに子供たちに伝えたかったメッセージは コンピュータは君たちのものだよ こんなに可能性があるんだよ ということでした.この二つをかけ算すると,この可能性を切り開くのは君たちなんだよ,ということです. それと,逆にこれだけは伝えたくな

    Scratchのここが嫌いだ(1) - ビスケットのあれこれ
  • MoonBlockはこうなったらいいのに - ビスケットのあれこれ

    Scratchはすでに広く評価されているものですから,「嫌いだ」というタイトルで半分釣りみたいに書きました. MoonBlockは出たばっかりだし,日で生まれたものですから,応援する気持ちの方が強いです. ということで,少し表現を和らげて「こうなったらいいのに」にしました.でも,きっちり批判します. こういうものは,思想が大事ですから. この記事とか「ScratchとMOONBlock(前田ブロック)はどう違うの?」 http://wise9.jp/archives/8264 良いと思います.僕がScratchを批判している部分と同じようなことを言ってますね. 特に,ループとか配列とかより結果だろう,というのはまさにその通り. 一番よいのは,Javascriptが生成されるということでしょうか.これは僕もやりたいと常々思っていて.さすがだなと思いました. プログラミングが,一枚のシート上

    MoonBlockはこうなったらいいのに - ビスケットのあれこれ
  • 小学校1年生にプログラミングを教える例のやつ - ビスケットのあれこれ

    先日,武雄市とディー・エヌ・エーと東洋大学とで,武雄市の小学校1年生にプログラミング教育をする取り組みについてニュースになりましたね.こういうことがニュースになるのは当に素晴らしいことで,陰ながら応援したいと思います. 僕はプログラミング言語オタクなので,どういうツールを使うのかが非常に気になっています.この記者会見の中継は見ていなかったのでちょっと間違ったことをいうかもしれませんが.この朝日新聞の記事に少しだけ画面がありました. 画面はこちら.ここにその画像を貼りたいですが,直リンク禁止しているみたいで(ハックすれば簡単にできますが)すみません,リンク先をごらんになってください. (開発中の画面に文句を言うのは申し訳ないのですが,日製のものに期待をこめている部分もあります) まず,気になるのは「まえにすすむ」という命令です.ここに出ているキャラクターは手前を向いています.なので,この

    小学校1年生にプログラミングを教える例のやつ - ビスケットのあれこれ
  • 一般の人への情報教育 - ビスケットのあれこれ

    昨日の情報教育のある集まりに出席して思ったことです. 世の中がコンピュータだらけの時代に「社会の構成員が等しく持っている(べき)知識・思考基盤」(久野さん)というのが何であるか.コンピュータが一般的ではなかった時代と同じであるはずがない.そういうのをざっくりと「情報教育」と言ってしまいます.で,情報教育で何を教えるべきか.社会人を,コンピュータの専門家,専門家予備軍,違う分野の専門家,そこまで全然行かない一般の人,に分類したとします.僕が興味があるのが「そこまで全然行かない一般の人」が知るべきこととはなにかです. 大問題なのは,古い技術しか知らないというのもありますが,教育に携わっている人たち全員に共通認識がないという点だと思います. 仮にこういうことをトップダウンで決めてロビー活動を沢山やったところで,他の分野との利権に勝てる気がしません.それより実質的にそうなっちゃう方向はないのか.

    一般の人への情報教育 - ビスケットのあれこれ