オープンソースカンファレンス2023 東京・秋

  • (by K, 2023.10.25)

(1) 基本情報

  • https://event.ospn.jp/osc2023-fall/
    Open Source Conference 2023 Tokyo/Fall
    2023年10月21日(土) 10:00~16:00(ライトニングトーク:16:30~17:30)
    大田区産業プラザPiO

(2) OSASK計画のブース

  • 今回のテーマ: easy-C ~ 小学生にやってもらいました!
  • 机に置いていた書籍: 「30日でできる!OS自作入門」
  • 会場には、easy-Cにチャレンジしている小学2年生と4年生も来ていました。

(3) 関連する情報

  • [3-1] easy-Cはここからダウンロードできます(もちろんオープンソースです)。ただし、現状ではeasy-CはWindows専用です(すみません!)。
  • [3-3] 小学4年生が夏休みの自由研究で自力で作ったアドベンチャーゲームは、こちらで紹介しています(211行・28場面)。ダウンロードもできます。

(4) 会場で伝えていたこと

  • [4-1] 「小学生に、大人が使うようなプログラミング言語を教えられるか?」多分これに対して多くの技術者はNoと考えたのでしょう(特に低学年)。それでLOGOやScratchが作られたのだと思います。でも、本当にNoなのでしょうか。今回私はC言語を小学生(小学2年生と4年生)に教えてみました。確かにいくつかの困難があります。でもそれはC言語に少し小細工を入れれば克服できました。つまり全く新しい言語を導入しなくてもなんとかなるのです。・・・当然ですが、このeasy-Cからプログラミング入門をしたほうがC++やJavaやPythonやRubyへの移行は容易になります。
  • [4-2] これらの小細工は、学年が上がってアルファベットの小文字が自由に扱えるようになれば、必要ではなくなります。それなら、無理して低学年で教えないで、小文字がわかるようになるのを待てばいいではないかという意見がありました。しかし、私は早く教えられるのなら早く教えるに越したことはないと思います。・・・むしろプログラミングをきっかけにして、アルファベットを覚えてもいいと思うくらいです。
  • [4-3] 小細工を導入した経緯:
    • まず頻出のprintf("%d ",K);を PR K; にしました。最初から(とか"とか%とかdとかは、ハードルが高すぎます。間違えるたびにエラーになってやる気を損ないます。
    • 次にifを IF にしました。
    • こうなると、gotoが4文字で長いなと思ったので、 GO にしました。
    • あとはprintf(...); scanf("%d", &K);を K=INPUT(...); にしました。これでポインタの説明をしないで済みます。
    • 変数も宣言せずに使えるようにしてあります。

(5) 会場でいただいたご意見やご質問(ありがとうございます!)

  • [5-1] 見た目がC言語と違い過ぎないか?むしろBASICに見えるぞ。これって、C言語のマクロで実装したわけでもないんだよね?
    • ううう。そうですマクロではないです。・・・アルファベットの大文字だけでできるようにしているために、確かに見た目はかなりBASICです。でも基本的にC言語に一対一で対応している変換ルールですし、混ぜ書きも許していますので、どうかそこはご容赦を・・・。
    • [参考] 変換ルール一覧: https://essen.osask.jp/?a23_intro90
  • [5-2] PR, IF, GO みたいに2文字の命令が多いと、もはやBASICというよりもアセンブラに見えますよ!
    • おお、なるほど!たしかに!!(笑)。
  • [5-3] INPUT命令に対して、バックスラッシュとかダブルクオーテーションとかを入力すると、ばっちり誤動作しますね!これは言語のバグですか?(笑)。
    • おおう!そうです、それはバグです。いやもう、油断していると攻撃されるからOSCは楽しいですね(笑)。
  • [5-4] 東京・春(OSC20230401)や名古屋(OSC20230528)からの進捗は?
    • ついに小学生にeasy-C入門をやってもらうことができました!そして挫折することなく、作品を作るところまで行きました!!やったー。

こめんと欄


コメントお名前NameLink

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-10-26 (木) 20:31:21 (176d)