2022-02-24
IchigoJamによるプログラミング&コンピューター入門から、AIや地図も使ったJavaScriptでの本格ウェブアプリ開発入門まで、福井県庁と共同開催した高校でのプログラミング授業の実証版。高校生からの感想文が届きました。高校生にもLED制御や、ケーブルを使った通信プロトコル実習など、生身のコンピューターを使った実習が印象に残ったようで何よりです!興味を持ったが吉日、自分でどんどん調べて手を動かしてみるほどに、上達します。迷ったら、Code for FUKUIIchigoJam-FANTwitter #IchigoJam などのコミュニティや、宛にご連絡ください! 福井県立武生商工高校 工業キャンパス2年生のみなさんと

もらった質問に一気に回答していきます。

本格プログラミングはどんなもの?
→ 今回解説した「セットアップ、メインループ」の組み合わせです。複雑なデータを扱う場合、その分複雑になります。
他の言語は?

→ 今回触ってもらったJavaScriptの他、速さ優先のC言語やZen言語、GPUを操るためのGLSL、アプリづくりに便利なDartなど、用途に合わせていろいろあります!

IchigoJamの限界は?
→ 1つのプログラムは1kbyteまでと小さいですが本格シューティングゲーム「IchigoVaders」など工夫次第で楽しいゲームが作れます。無理矢理がんばらなくても、LRUNコマンドで複数のプログラムを組み合わせることもできるので、割と超大作も狙えます。

HTMLでできること
→ 普段目にするウェブサイトを作ることができます。CSS(シーエスエス)で飾ったり、JavaScript(ジャバスクリプト)で動きを付けたり、HTMLタグを拡張してVRアプリづくりや、GPUを扱うGLSLとの連携、高音質音源づくりまで、割といろいろできちゃいます。

IoTとメリット、デメリット
→ メリットは便利なこと人がやるより安くなること。デメリットは電源、通信が必要なので人がやった方が高くつくことがあること。工夫と技術革新でどんどんメリットが大きくなります!

手の認識、顔もできる?、Facemesh
できます

オセロ
→ Kidspod;にありました!「オセロ/Kidspod;

他のゲームは?
Kidspod;を見てみましょう!

JavaScriptのメリット、デメリット
→ メリットは、ブラウザが動く環境なら何でも動くことと、開発ツールなど環境を作る手間がいらないこと。デメリットは型にルーズなので、大規模プログラムを作る際にちょっと不便なことあり。(TypeScriptを使う、何かツールで補うなど別途手段を使います)

JavaScriptがゲームに使用される理由
→ PC、iPhone、Android向けに1つ作るだけで軽量で簡単に配布できるから。

一番難しかったプログラムは?
→ 28kbyteという限られた容量の中にIchigoJamに入れたい機能を詰め込むのは難しくも、楽しいプログラミングでした!

プログラミング言語で簡単なもの
→ IchigoJam BASIC!

アプリの分岐法
→ IF文!

RPGを作るのに必要な時間
→ 「Beat the Z」のような簡単なものなら30分、クリアするまで何十時間もかかるRPGなら何十人ものスタッフで年単位。まずはシンプルに作ってみたい部分を切り出してコンパクトに作るのがオススメ。

JavaScriptで関数は?
→ const main = (n) =< n * n; のように二乗する関数をコンパクトに書けます!

プログラミング難易度とCPU性能は比例するか
→ しません。ただ、複雑で高機能なプログラミング言語を遅いCPU上で開発するのは辛いです。

BASIC意外の言語のメリットとデメリット
→ プログラミング言語それぞれに得意不得意な分野があります。ただ、どの言語でも学んで作って試す環境を用意する必要があり、そのためにはある程度パソコンの扱いに慣れて置く必要があります。

ホームページ作成
→ 13才以上であれば無料でアカウントを作って、ホームページを作れる、GitHubがおすすめです。「じぶんのウェブサイトをつくろう! 13才以上なら誰でも無料で持てるホームページ&HTMLとCSSはじめのいっぽ

プログラミング言語の種類、最も使われている言語
→ 世界一オープンソースを集めるサイト「GitHub」では、「JavaScript」が一番とのこと。

ロボットプログラミングを知りたい
→ 乗れちゃうロボット「Radish」のプログラミング例をどうぞ!

IchigoJamの応用例
→ GPSと通信デバイスをつなげて、バスロケシステムにも使われています「バスロケーションシステムの維持費を1/10に! さくらのIoTを活用しバス位置情報をGoogleマップに提供 | さくらインターネット

PLCのシーケンス制御の回路をIchigoJamで
→ できるはず!「M5Stack用PLCモジュール - スイッチサイエンス」も参考に、ぜひIchigoJam版、実験しましょう!

LED以外の制御
→ シリアルフルカラーLEDの制御、楽しいですよ!「SDGs x プログラミング!17色のイルミネーションで飾るさばえSDGs推進センター/めがね会館9F

もっと難しいゲームは?
SDGsをテーマにしたVRゲームは、Quest2のコントローラで遊ぶJavaScriptで作ったちょっとだけ複雑なゲームです。遊ぶ難易度はパラメータ次第、厳しすぎるゲームもたまにはいいですね。

スマホアプリはどう作るか?
→ スマホのブラウザで遊ぶならHTML+JavaScriptでできちゃいます。ダウンロードするアプリを作るには、SwiftやKotlin、Dart(Flutter)などを使って作ります。

ネットワークで確実に伝える方法
→ プロトコルをしっかり定めることです。曖昧だと間違ってしまったりします。またノイズに強くするために2回同じものを送ったり、チェック用のコードを追加したり、既存のプロトコルにもいろんな工夫があっておもしろいですよ!

プログラミング、楽しみましょう!


習うより慣れよ。シンプルなお題を決めて、作ってみるのもいいですね。
Hana道場発のイチマツ模様チャレンジ、PCN上田のSHIROさんによるバリエーション「市松模様を描いてみよう - SHIROのIchigoJam日記」のボール式がおもしろい!更にIchigoJam-FANに投稿「イチマツ模様を私もプログラムしてみました。 by 中村さん」もまた、数学的に、動作的に美しい!

ランダムに埋まっていく様を見るのが好きなので、フォークして、作成。1行シンプルバージョン! RUN on IchigoJam

1 X=RND(32):Y=RND(22):LCX,Y:?CHR$(X%2=Y%2):CONT RUN

こうするとできるかも?・・・プログラミング・・・、おや?・・・そうか・・・、こうなら?できた!の快感がクセになりますよ。

links
- 福井県庁 x Code for FUKUI、武生商工高校1期生へ、つくって楽しむプログラミング概論1日目「はじめてのプログラミング」
- つくってまなぶ、楽しいプログラミング概論 制御と計測とネットワーク編
- 高校情報Iを想定した、シンプルな棒グラフを描くプログラムとシビックテック JavaScript編

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS