「プログラミング」タグアーカイブ

コンピューター無しで子供にプログラミング体験させるキット

Space Race Game for Studentは、印刷して使えるプログラミング体験キットです。

地球や月、人工衛星や宇宙人の駒と、「進め」「左折」「n回繰り返す」「もし□なら」といった命令パーツが一枚の紙にカラーでデザインされていて、切り離して使います。

碁盤上のボードに駒を配置し、たとえば「地球から月へ、宇宙船などにぶつからずに行く」みたいな問題を出し、それを命令パーツを組み合わせて実行するゲームとなっています。簡単な問題を出し、審判をしてあげれば、すぐに子供同士で遊べるようになるのではないでしょうか。

子供向けのロボット/プログラミング教育の研究会に子供を連れて行ったことがあり、そこでいろいろなロボットを体験させてもらったのですが、その中にはこのキットの内容とほぼ同じことを実際のロボットで実行するというものもありました。

ロボットの上に命令ブロックを差し込んで並べる形でプログラミングをし、大きなボードの上で動かして障害物を避けられるか確認する、といったものです。

うちの子も楽しく遊んでいて、もし買ってもらえるとなれば間違いなく喜んだことでしょう(教育の研究会なので販売とかはしていなかった)。ただ、このロボットでできるプログラミングの複雑さを考えると、買って家に置いたとしてもそう長いことは遊べないかな、と。おもちゃとしては高価なので、科学館や児童館などに有って、順番にいろんな子供が体験でき、指導できる大人もついていればいいのかなと感じました。

価格の面からいえば、このような紙のキットで、プリンターの印刷代だけでほぼ同じことはできますね。プログラミングというものを体験してもらう最初の最初、子供がそっち方面に興味がありそうかどうかを見るのにいいかなと思いました。

一番セキュアなプログラムは、書かないことだ

書かなければバグも出ない、は真理で、コードの量で生産性を測ることが間違ってることの何よりの証拠ですね。GitHub で公開されて大人気となっている nocodeは、そんな最高の手段を表現したソフトウェアです。

当初公開されたファイルは、以下の3つ

  • README.md
  • LICENSE (Apacheライセンス)
  • CONTRIBUTING.md (コードを含まない限り、あらゆる変更を歓迎)

ソースコードはありませんね。

その後、README にあった使い方

echo "" > /dev/null

は「Windows対応」で削除されたようです。また、Docker 対応で

"FROM scratch"

だけの Dockerfile が追加されましたが、「Docker の脆弱性の可能性を考えるとこれは追加すべきではない」という意見も出ています。

Issues がすごい

Issues に、現時点で300を超える要望が上がっています。プロジェクトへの期待の多さを感じますね。

一番人気はこれ。タイトルは「」。コメントも「」が多いです。議論が空白なことがセキュリティにつながるかわかりませんが。

他にも、「#2 PCの電源を入れないといけない (Kindle や ニンテンドーSwitch など既に多彩なプラットフォームに対応しているのでは)」「#137 MITライセンスにするべきでは? (から各種ライセンスの提案)」「#179 nocode はテストするのが非常に困難では」「#195 何もしてないのに動きません! (他にも、Ubuntuで動かない、Commodore64で動かない、IEで動かないなどのissuesも)」「#8 .gitignore でコードが混入しないようにすべき (指定は **/**)」「#80 ドキュメントが必要では? それも多言語で (トルコ語「」とブルガリア語「」が既に提案されています。日本語で書くなら「」といったあたりでしょうか)」といった多くの Issues が上がってきており、活発な議論が繰り広げられています。

via Hacker News

プログラミング言語TrumpScript

TrumpScript は、高名なドナルド・トランプ氏を基にした新たなプログラミング言語です。現在のプログラミング言語の中に、トランプ氏の豪華な金髪バーコードヘアにも気に入られるような言語が無いことから制作されました。

https://www.flickr.com/photos/80038275@N00/17008571157/

特徴

  • 浮動小数点数無しで整数のみ。アメリカに中途半端はありません
  • 数は100万以上に限ります。それ以下の数字は取るに足らないからです
  • import はできません。すべてのコードはアメリカで作った国産でなければなりません
  • True/False(真/偽)ではなくfact/lie(事実/嘘)を使います
  • 良く知られた、トランプ氏の好きな(2000個ちょっとの)英単語のみ。立候補者の名前は変数として使えます
  • ほとんどのエラーメッセージはトランプ語録から採用されました
  • プログラムは「アメリカは偉大だ(“America is great.”)」で終了しなければなりません
  • TrumpScriptはそのままではWindowsで動きません。なぜならトランプ氏はPCを信じるような男ではないからです(註: PC=パソコン、と、PC=政治的正しさ、をかけてます)
  • 大文字小文字は完全に無視します

文法

文法の方はというと、演算や条件文についてはおおむね普通のものが用意されていて、TSの記法を覚えればすぐ書けるでしょう。

  • is や are は代入。?で終われば比較になります
  • make America great で、America に great を代入できます
  • tell や say で出力できます
  • as long as でループします
  • 不要な単語は全部無視されるので、うまく使えばかなり自然な演説文と両立させられます

トランプ氏が失敗について語りたがらないのと同様に、プログラムは多くの場合静かに失敗します。デバッグをゲーム的に楽しんでください。

実行

テストファイルがいくつかあるので、まずはこれを試してみるのがいいかもしれません。

ヒラリー・クリントン氏とのディベートを再現したスクリプトを動かすと、こうなりました。

trumpscript-hilary

元ネタがわかりません。まだ直接対決はないと思うので、コメントか何かで応酬した時のものでしょうか。

テストスクリプトには手元ではエラーになるものも多いです。

また、エラーになるのが正しいものも。not_english.txt では、スペイン語で書かれたスクリプトに対して、

trumpscript-not-english

「ここは英語で喋る国だ(“This is a country where we speak English”)」という例外が発生してます。

他にも、「トランプはそんなことは聞きたくない(“Trump doesn’t want to hear it”)」など、少ないエラーの中にもトランプ氏のきらりと光る名言があるようです。

作者

ライス大学のハッカソンでコンピューター専攻の二人の学生サム・シャドウェルさん(Sam Shadwell)とクリス・ブラウンさん(Chris Brown)らによって作られたこの新言語、初日夜の酔っぱらってのブレインストームと翌日の20時間のプログラミングで完成したそうです。

ハッカソンの優勝は逃したということですが、GitHubで公開されたコードに対して多数のバグ報告や修正提案が送られていて、日々改良されているようです。

この言語によって、「トランプ氏がアメリカを再び偉大にするように、プログラミングを再び偉大にすることを願っている」ということです。

via The Verge

シリコンバレーでは女子中学生のダンスもコードの話になる

codecracker

パロアルトにある女子中高一貫校カスティエーハの8年生(中学2年生相当)がダンスの授業で発表したのは、ナットクラッカー(くるみ割り人形)ならぬコードクラッカー(コード割り人形)。

codecracker-1

クリスマスのプレゼントとしてプログラミングできるくるみ割り人形を貰ったクレア。しかしねずみの王に率いられたネズミたちにパソコンを奪われそうになります。

codebraker-bubble-sort

個人情報を盗んだねずみの王を、クレアがバブルソートを使って撃退しようとするシーン

Re/code のカーラ・スィッシャー氏が言うように「シリコンバレーでしかありそうにない」出し物でしょうね。

via Re/code

Untrusted – JavaScriptをいじって先へ進むRogueライクゲーム

ローグライクゲーム、というジャンルがあります。Rogue(ローグ)を代表とする自動的に生成される迷路・迷宮から脱出するというゲームで、日本で有名なものでも、ネットハック、トルネコの大冒険、チョコボの不思議なダンジョンなど多数あります。

Untrusted は、そのようなローグ風ゲームのバリエーションなのですが、JavaScriptのコードを操作することでパズル的な迷宮を解き、先へ進むというのが最大の特徴です。

untrusted-3

画面左の迷宮で、自分のキャラクター”@”を、階段”□”まで、カーソルキーを使って導かなければいけません。しかし、普通に上下左右に移動しただけでは、出口にたどり着くことはできなくなっています。

そこで、右側のコードに書かれた、迷宮を生成するJavaScriptのコードのうち、書き換えて良いという黒地の部分を変更し、Ctrl+5 で実行するとあら不思議、壁や出口の場所を書き換えてしまうことで、次の階へと進むことができるようになるというわけです。

いかだを使ったり鍵を探したりと、面ごとに違う趣向の障害が配置されています。

その階がどういうトラップなのか、どんな障害が設けられているかというヒントがJavaScriptのコメントとして書かれているので、解く際の参考になるでしょう。

untrusted-2

壁を描画している部分の位置を書き換えるとか、出口の場所を移動するとか、で解ける面もありますが、後の面ではそれらを防ぐようなバリデーション・コードが追加されたりして、同じ手は2度使えないようになっています。

UntrustedのソースコードはオープンソースとしてGitHub上で公開されています。ソースコードを見れば現在のダンジョンが何階あるかはわかってしまうのですが。

# HackerNewsで紹介されたせいで、現在ゲームはちょっと重かったり、正しく動かなかったりすることがあるようです。その場合は、footerにリンクのあるミラーサイトで遊んだり、オープンソースですから自分のところで動かしたりということもできます。

via HackerNews

デバッグの6段階 (Six Stages of Debugging)

  1. ありえません
  2. 私のマシンでは再現しません
  3. それは起こるべきじゃありません
  4. なんで起こるのかな?
  5. あー、なるほど
  6. なんで今まで動いてたんだろう?

あるある。サポート担当者として1や2の返答をしてしまうと、あとでバツの悪い思いをしちゃいますね。

少なくとも2003年には流通していた文章を、発掘した人のブログから

via HackerNews