福野泰介の一日一創 - create every day

児童養護施設の未就学児から高校生まで幅広く、プログラミングと電子工作の楽しさ伝える「KidsVenture with PCN仙台・PCN東京」の開催でした。

こちら園内、IchigoJamでプログラミングワークショップの会場となった、お部屋。


LEDのコントロール、かわくだりゲーム、ゲーム機でおなじみジョイスティックと、光センサーまで、2時間楽しんでくれました! 何度もリセットして初めから!ってやる、6才の子、かわいかった!そう、何度でも納得行くまでできるのが、プログラミングのいいところ。


掲載されたら原稿料もでちゃう、電子工作マガジン&ベーマガ、プレゼント!
高専出身者4名でミニトークイベント&質疑応答、エンジニアという仕事の楽しさも紹介してきました。


楽しんでくれたこどもたち、周りのお友達にも伝えてみよう!みんなで学ぶのも楽しいよ。
こちらパッパッとでる5つの数を暗算して、応えるゲーム「VSあんざん」
まずはひとり用、短いバージョン(とりあえず打ち込んで遊びたい人へ)

1 A=0:FORI=1TO5:CLS:LCRND(32),RND(21):B=RND(9)+1:?B:A=A+B:WAIT30:NEXT:CLS:INPUT"ANS?",N:IFA=N?"SEIKAI!!"ELSE?"HAZURE:";A

次に、上記をわかりやすく行を分けてかいたバージョン(内容は全く一緒、読みやすい?)

10 A=0 20 FOR I=1 TO 5 30 CLS:LC RND(32),RND(21) 40 B=RND(9)+1:?B 50 A=A+B 60 WAIT30 70 NEXT 80 CLS:INPUT"ANS?",N 90 IF A=N ?"SEIKAI!!" ELSE ?"HAZURE:";A

正解するたびに、どんどん速く難しくなっていくバージョン

5 W=60 10 A=0 20 FOR I=1 TO 5 30 CLS:LC RND(32),RND(21) 40 B=RND(9)+1:?B 50 A=A+B 60 WAIT W 70 NEXT 80 CLS:INPUT"ANS?",N 90 IF A=N ?"SEIKAI!!":W=W-5:WAIT 30:GOTO 10 100 ?"HAZURE:";A

最後に、2人で対戦するバージョン

5 W=60 10 A=0 20 FOR I=1 TO 5 30 CLS:LC RND(32),RND(21) 40 B=RND(9)+1:?B 50 A=A+B 60 WAIT W 70 NEXT 80 CLS:INPUT"PLAYER1 ANS?",N 81 INPUT"PLAYER2 ANS?",M 82 IF N=M GOTO 90 83 IF A=N ?"PLAYER1 WON!":END 84 IF A=M ?"PLAYER2 WON!":END 85 GOTO 100 90 IF A=N ?"SEIKAI!!":W=W-5:WAIT 30:GOTO 10 100 ?"HAZURE:";A

リファレンスや、教科書をみながら、ひとつずつ解読、変えたり、消したり、いろいろ改造して好きなように遊ぶのがプログラミング上達の近道!
わからないところ、Twitter で #IchigoJam 付けて、質問してね。


PCNこどもプロコンなど、いろいろチャレンジしちゃおう!

福井県あわら市細呂木小学校にて、IchigoJamを使ったあわら市の教員向けプログラミング研修会、市内を中心に30名の教職員の方に受講いただきました。

プログラミングは全くの初めての方ばかり。 小学生に体験してもらっているように、IchigoJamスピードパックから取り出し、まずは配線。 電源をいれたら、ウォーミングアップで「A」と打って、エンター、エラーを出す。「Syntax error」と英語を話すコンピューター、かっこいい。


何度間違ってもキれません。自転車の練習で最初にやらないといけないのは安全な転び方。プログラミングも同じ、まずは間違っても安心体験。


小学生にオススメしたいペアスタイル、交互にキーボードを打ってもらい体験を共有。エルチカゲームも、かわくだりゲームも、盛り上がりました! 受講いただいた先生に聞いたところ、シナリオがあったら自分でもできそうとのこと!

まずは、45分2コマ用に、コンピューターサイエンスの基本とプログラミングを楽しく学ぶカリキュラムの指導案(授業の設計図)づくりがいい様子。 まずは、スライドの順番や、細部の表現をブラッシュアップ!


ちょっと手間取る最初の接続、モバイルバッテリーへの電源線2本を省略せずに記述版。
便宜的に番号は振っていますが、どの順番につないでも大丈夫です。


接続終わったらスイッチオン!起動の速さと、いつ切っても壊れない頑丈さがIchigoJamのウリ!


「このLEDをつけてもらおう」今回追加したスライド


L E D 1 と4つキーボードでタイプして、最後に、エンター!


ついた!コンピューターと物理が結びついたおもしろさが、直感的に分かる瞬間。

中略


LEDをつけたりけしたり、好きなタイミングにして遊んだ後、


保存!4つまでOKですが、0番への保存はスペシャルです。


電源を切って


テレビとキーボードの線を抜いて、バッテリーだけがつながった状態にします。


ボタン押しながらIchigoJam起動で自動的に自分たちで作った、0番プログラムが起動!


これをエルチカロボットの呼ぶ


実はすでにたくさんのロボットが身の回りに!


その中身にはコンピューター。そのコンピューターに保存されているのが、誰かが作ったプログラム!


コンピューターはどこにいる?


お家のコンピューター、探してみよう!
はじめてのプログラミング with IchigoJam」フルバージョンは計59スライド

いよいよ来年に迫った、プログラミング教育スタート。学習指導案として、まとめてみます!
(下記、まずは大まかな項目のみ)

学習指導案「はじめてのプログラミング with IchigoJam」

・基本項目
学年:3年生
科目:総合的な学習の時間
回数:1回(45分)
学習形態:一斉授業、体験学習

・順序
キーボードをさわる前でもOK
ローマ字を学習する前でもOK(関連させるといい)

・使用機材
スライド
IchigoJam(生徒2人に1台)

・目的
コンピューターの特徴、速さと記憶力を知る。
コンピューターが社会で活用されていることを知る。
プログラミングによって、コンピューターを活用できることを知る。
アルファベットの大文字と記号がキーボードで打てるようになる。
簡単な英単語を知る。


あわら市細呂木小学校、天井が高くて広くて心地良い今回の会場は、全校生徒が毎日一緒に給食を食べるランチルームでした!

links
- 動画&スライド公開、プログラミングB分類、総合と英語2コマ使った「はじめてのプログラミング」 - 鯖江市進徳小学校でモデル授業

- 今こそ地域との「自由研究」復活を!? 第4回こどもプログラミングサミット2018 in Fukui フォトレポート&所感
- 石川県かほく市にPFUあり! 教員向けこどもプログラミング講演会とクリスマスタイピンプログラミング!
- 自発性を引き出すプログラミング体験 - 福井県越前町でも教員向けプログラミング研修、創造的IT人材とは!?
- キラキラの笑顔づくり法を応募しよう!ソニー科学教育研究会にて教員向けIchigoJamプログラミング研修 with PCN福大附属
- 鯖江市全15小中学校を結んだ教員向けプログラミング研修とネクストステップ、総務省実証事業と同日開催

国立高専、正式には「独立行政法人 国立高等専門学校機構 〇〇工業高等専門学校」と長い。
高専は日本独自の教育カリキュラム、「高専はKOSENであり訳さない!」と、高専機構理事長の谷口さん。


高専の英語サイトは「KOSEN」とシンプルで目立つ表記。


こちら、高専の日本語サイト、文字が長い。

もし改名すれば各学校は相当シンプルになる。例えば福井高専で、次のように12文字短縮。
独立行政法人国立高等専門学校機構 福井工業高等専門学校
独立行政法人高専機構 福井高専

ちなみに、福井高専のドメインは、fukui-nct。 以前の英語名称 Fukui National Collage of Technology だった頃の名残り。
現在書いてある訳語「National Institue of Technology」は、国立の研究所?と誤解を生むだけなので削除したい。


初開催となる、高専の未来を語る会、食事しながらざっくばらんスタイルで開催(写真ぶれでスミマセン)
高専機構谷口理事長による高専への熱い思いからスタート!


高専OB、10名による、3分間で自己紹介と高専の未来への提言!


高専機構と高専卒起業家。
未来の高専に関して、提案、提言は多岐に渡った、2時間半にも及んだ、愛あるディスカッション。
次回も楽しみです!

1つ、追加の提言「高専の目的を変更」
現行の目的:深く専門の学芸を教授し、職業に必要な能力を育成する
新しい目的:深く専門の学芸を教授し、複雑な世界に対処できる能力を育成する

専門性はそのままに、国際バカロレアのエッセンスを混ぜ、社会との関わりを強化しました。
職業という言葉は従事するイメージが強く、起業家、イノベーターに結びつかないので廃止希望。
教育の基本理念(目的・方針)に関する教育基本法の規定の概要
* 過去、改正の動きもあったようです


生きる力は、変化できる力、創り出す力。高専起業家OBパワー発揮していきましょう!
(*OBは、OB。boyの意味は忘れます)


この日のお昼は、専攻科インターン成果発表会のため石川工業高等専門学科へ。
この看板をパッと見て高専だと認識できる人は少ないと思ったほうがいいでしょう。
ここも「石川高専」とすれば、わかりやすいし目に付きやすい。


高校で必修となるGIS、高専ではもう一歩先いっておくべきですね。
jigインターン生、ナリによるSPARQL入門はこちら。
SPARQL初心者の学習日誌 :: 開発者サイト|オープンデータプラットフォーム


福井県内のIT企業と、地域ICTクラブで開催した、越前がにロボコンを大会前からサポートしてくれました!
高専生の実践力と、地域とIT力が共にアップするローカルロボコン、ローカルプロコン、ぜひ広めたい。

約3ヶ月という長期インターンを専攻科(5年卒業後の2年間課程)にて実施している石川高専。インターンについて発表する学生は皆、社会との関わりで学ぶ大切さを感じている様子。 まさに体験に勝る学習なし。できるだけ早いタイミングでのインターンと、その単位認定化を進めると、一層強い高専生になるでしょう。

地域のおもしろい企業の社会人による招待講義や、地元自治体へのヒアリングなど、実社会との接点を増やし、成果を埋めば、知名度問題、やる気問題共に解決!


女の子向けのプログラミングを実践する、神戸高専出身、激レア高専卒女性起業家、幸田フミさんとも再会!
児童養護施設の女児のために、働く女性ができること。:FUMITALK – FUMIKODA JOURNAL【フミコダ】
高専生の女性割合は20%。海外での工学部では女子の方が多いなど、性差の問題ではなく、日本の問題。

理系思考と女子比率が低い、日本の特徴は、小中学校の先生が理系ではないことがきっと原因。
日本の女子高生はなぜ理系になりたがらないのか | 舞田敏彦のデータで読み解くDUALな疑問 | 日経DUAL、)

理系、かつ、自分に近いお兄さんお姉さんから学ぶプログラミングによるインパクトは大きく、文系男子偏重を正す大きなチャンス!
総務省|若年層に対するプログラミング教育の普及推進事業|「IchigoJamでものづくり」~地域人材を活かして行うもの作りを通した科学技術体感型授業~」福井高専学生が小学生向けメンターに
高専生が伝える小学生プログラミング at スゴイ津幡町まちなか科学館、高専生先生の意気込み&感想動画 / KidsVenture x 石川高専

こちら本日の装備品、コンパクトにまとめた光るネクタイ LPC810 x 単4電池バージョン。

七色に輝くネクタイのプログラム(LPC810をあやつろうを使って、IchigoJamから書き込む)

10 POKE#700,0,4,0,16,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,251,255,239,47,72,223,33,1,96,47,72,1,104,3,34,210,67,17,64,1,96,45,72,45,73,1,96,45,72,12,33,1,96,1,36,36,7,50,38,48,2 20 POKE#746,32,96,0,32,0,33,2,70,2,42,0,221,3,58,0,35,1,37,40,66,0,208,51,70,91,26,0,43,0,218,91,66,163,84,127,180,0,240,21,248,0,240,51,248,127,188,33,74,163,24,31,70,3,63,3,58,1,59,1,63,61,120 30 POKE#784,29,112,1,58,249,209,1,49,177,66,221,209,1,48,6,40,217,209,215,231,24,72,33,70,21,76,4,34,128,37,11,120,34,96,43,66,8,208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,96,7,224,0,0,34,96,0,0,0,0,0,0 40 POKE#7C6,0,0,0,0,0,0,109,8,233,209,73,28,1,56,228,209,112,71,7,79,1,63,253,209,112,71,128,128,4,64,16,0,4,64,192,193,0,64,191,255,255,255,0,32,0,160,0,35,0,160,128,26,6,0,96,0,0,0 50 A=#700:L=256:LRUN1 SAVE0 NEW 1 'LPC810 Writer 110 UART3,2:OUT2,0:OUT1,0:WAIT9:OUT1,1 120 CLS:?"?":GSB@R 130 ?"Synchronized":GSB@R 140 ?12000:?:GSB@R:GSB@R 150 ?"A 0":GSB@R:GSB@R 160 ?"U 23130":GSB@R 170 ?"W 268436096 ";L:GSB@R:UART1,2:LC0,-1:FORI=0TOL-1:?CHR$(PEEK(A+I));:NEXT:UART3,2:LC0,6:? 180 ?"P 0 0":GSB@R 190 ?"E 0 0":GSB@R 200 ?"P 0 0":GSB@R 210 ?"C 0 268436096 256":GSB@R 220 OUT2,1:OUT1,0:OUT1,1:LED1:END 300 @R:K=INKEY():IF K=13 K=INKEY():WAIT9:RTN ELSE CONT SAVE1 LRUN0

続いて、電子工作。

単4電池2本の電池ボックスをDOUT側5VとGNDへ。
制御用マイコン LPC810 のVCC、GND、PIO0_2 を、DIN側の5V、GND、DINにはんだづけ!

asm15、Armマシン語のプログラムはこちら
(IchigoJamで慣れた小中学生向け「やさしいArmマシン語入門」を読むと解読できます)

DATA L #10000400 ' stack DATA L #21 ' entry point DATA L 0, 0, 0, 0, 0 DATA L #EFFFFBDF ' VALID_CODE = 0x100000000-0x10000400-0x21 @ENTRY R0=[@SYSAHBCLKCTRL]L R1=#DF 'SWM, GPIO, I2C:off, FLASH, FLASHREG, RAM, ROM, SYS [R0]L=R1 R0=[@FLASHCFG]L R1=[R0]L R2=3 ' flash no wait: set 0b00 R2=~R2 R1&=R2 [R0]L=R1 R0=[@PINENABLE0]L R1=[@PINENABLE0_DATA]L [R0]L=R1 R0=[@GPIO_DIR0]L R1=`1100 ' PIO0_2 and PIO0_3 [R0]L=R1 @MAIN R4=1 R4=R4<<28 ' = RAM #10000000 R6=50 ' =V R0=R6<<8 [R4]L=R0 ' HUE ' R0, R1: loop ver ' R4 : ram ' R6 : V ' R2, R3, R5, R7 : temp @HUE ' R4 color address R0=0 ' 0 to 5, =I @HUE_LOOP1 R1=0 ' to T, =H @HUE_LOOP2 R2=R0 R2-2 IF LE GOTO @HUE_SKIP1 ' if A>2 R2-=3 @HUE_SKIP1 R3=0 R5=1 R0&R5 IF 0 GOTO @HUE_SKIP2 R3=R6 ' =V @HUE_SKIP2 R3=R3-R1 R3-0 IF GE GOTO @HUE_SKIP3 R3=-R3 @HUE_SKIP3 [R4+R2]=R3 PUSH {R0-R6} CALL @WS2812B CALL @WAIT POP {R0-R6} @SLIDE_DATA R2=[@LED_N]L R3=R4+R2 R7=R3 R7-=3 R2-=3 @SLIDE_DATA_LOOP R3-=1 R7-=1 R5=[R7] [R3]=R5 R2-=1 IF !0 GOTO @SLIDE_DATA_LOOP R1+=1 R1-R6 ' =V IF !0 GOTO @HUE_LOOP2 R0+=1 R0-6 IF !0 GOTO @HUE_LOOP1 GOTO @HUE 'WS2812B x1 driver 'param ' R4 - address (B, R, G) 'use ' R0 - data count (ex WS2812B x 3) == 3 ' R1 - address (B, R, G) ' R2 - OUT value ' R3 - data value ' R4 - GPIO address ' R5 - bit count @WS2812B R0=[@LED_N]L R1=R4 R4=[@GPIO_NOT0]L R2=`100 ' PIO0_2 @LOOP_DATA R5=#80 R3=[R1] @LOOP_BIT [R4]L=R2 R3&R5 IF 0 GOTO @ZERO NOP NOP NOP NOP NOP NOP NOP [R4]L=R2 GOTO @JOIN @ZERO NOP [R4]L=R2 NOP NOP NOP NOP NOP NOP @JOIN R5=R5>>1 IF !0 GOTO @LOOP_BIT R1=R1+1 '+6clock R0-=1 IF !0 GOTO @LOOP_DATA RET 'WAIT 'use ' R7 - wait count @WAIT R7=[@WAIT_N]L R7-=1 'wait R7*3+1 clock IF !0 GOTO -1 RET ' init @SYSAHBCLKCTRL DATA L #40048080 @FLASHCFG DATA L #40040010 @PINENABLE0 DATA L #4000C1C0 @PINENABLE0_DATA DATA L #FFFFFFBF @GPIO_DIR0 DATA L #A0002000 @GPIO_NOT0 DATA L #A0002300 ' WS2812B @WAIT_N DATA L 400000 @LED_N DATA L 32*3 ' length of WS2812B * 3

高専機構も後援、PCNこどもプロコン2018
過去最多作品数を集め、現在審査に入っています。
高専賞の受賞者には、宮崎県、都城高専が主管校となる高専プロコン30周年記念大会への招待が決定!
第30回都城大会(2019) 2019/10/13-14」
お楽しみに!

1985年、ベーマガの発行元でもある、電波新聞社から発売されたゲーム「デーモンクリスタル」が、Nintendo Switchで復刻! 敵を倒し、謎を解き、アイテムでパワーアップしつつ、鍵を取り、次のフロアへ。現代のゲームシステムにも脈々と受け継がれています。

暗闇から探し出す感じをIchigoJamのゲームにしてみました。
音を頼りに、すばやく宝箱を探す「たからさがしゲーム」

プログラムはシンプルに短く!

10 X=15:Y=15:CLT 20 A=RND(32):B=RND(22) 30 CLS:LC X,Y:?CHR$(251) 40 K=INKEY():IF K=0 CONT 50 X=X-(K=28)+(K=29) 60 Y=Y-(K=30)+(K=31) 70 P=ABS(X-A)+ABS(Y-B)+1 80 BEEP P,3:IF P>1 GOTO 30 90 LC X,Y:?CHR$(246),TICK()

カーソル上下左右で移動、移動するたびに近いほどに高くなる音を頼りに探しましょう。
見つけたらタイムが1/60秒カウンターの値で表示されます。

100 PLAY"O4L32CEG"

このように、クリア時の音をつけると画面がなくても遊べます!

慣れてきたら上級編。ランダムに宝箱の位置が移ってしまうシカケ

65 IF RND(10)=0 GOTO20

2人で対戦できるように改造してみるとかもも、楽しいかも?

IchigoJam ver 1.3 beta 5、INPUT時、RENUM時のバグを修正したアップデート
IchigoJam 1.3b05.zip

links
- The Demon Crystal
- YMCAT(迎霧狼慢)さんのツイート: "【デーモンクリスタル秘話】
> - 1981年ベーマガ創刊号掲載のゲームがマルチプラットフォームで復刻! IchigoJam版エイリアンフィールド、改造の手引き

大企業とスタートアップ、新しいコラボに期待がかかるオープンイノベーション。
全く異なる文化だから難しい、だからこそおもしろい!

よくわかる オープンイノベーション アクセラレータ入門
大切なのは、情熱のベクトルが一致していることと、お互い学び合う姿勢。
視点が異なるからこそ、生まれるアイデア自体はきっとおもしろい。

ただ、アイデアの段階では価値は無し。
形にして初めて生まれるのが価値であり、権利化できるというのが現代のルール。

スタートアップはそれをすばやく形にし、大企業はそれをバックアップ。 どちらが欠けてもうまくいかないが、両方備えていても成功する保証はない。

もし、斬新なアイデアが必要なら、スタートアップだけでなく、学生・こどもにも目を向けたい。

PBL(問題解決学習)は、小学生だって早すぎることはない。 子供の視野では見えない課題、大人はどんどん積極的に見せるべき。 見せずに問題を大きくして、取り返しがつかない状態にして良い訳がない。こどもの頃から地域社会の一員として活躍できたという体験は、きっと自信となる。

そこで活用したいのは、地域ICTクラブ。

総務省により昨年取り組みが始まった、課外によるプログラミングやものづくりの学びの場「地域ICTクラブ」。 その福井県モデル「福井県こどもプログラミング協議会」での学びの場は、実証機関を終えても継続中。


ZOZOTOWNを支え、社長はPCNの代表も務める「ナチュラルスタイル」では、福井高専OBでもある社員有志によるプログラミングやロボットを学ぶ PCN福井NSクラブ が、社内スペースを使って実施されている。 休日や就業時間後に空いている会議室と、時間外でも技術を活用したいと思っている社員がいれば、全国どこでも実現可能。 企業内のシーズや、課題をこども、学生と一緒に考え、実装しよう。プログラミング実業団同士が、ロボコン、プロコンで争う姿はきっと熱い。


この日、福井高専4年電子情報工学科、非常勤講師として協力中のこの授業では、イノベーションを目指し、8つのバーチャルな会社と事業を作っての発表会。 実装できる、高専生は、力強い助っ人となる。(2/9には福井・石川高専生協力の元、総務省主催:Geospatial Hackers Program in 福井も開催!)


(写真、Hana道場 Twitterより)
鯖江の地域ICTクラブ、Hana道場では、高専生、小学生、大人が一緒にプログラミングを学ぶ。

なぜ、プログラミングか?
それは、コンピューターを使ったアウトプットの基本だから。

聞くだけでなく演奏を学び、鑑賞だけでなく絵の具で描くことを学んだのと同じ。
「テレビを見ることができる」と「テレビの仕組みを知っている」が全く違うように、
「アプリが使える」と「プログラミングができる」は別スキル。
みんな画家にならないのと同様、もちろん、本職にするかしないかは別問題。

「創造」は、文科省がテーマとして掲げるこれからを「生きる力」に欠かせない。 さまざまな仕事がどんどんコンピューターやロボットによって効率化、代替化する中、求められるのは、その人、それぞれの得意を活かした価値づくり。 コンピューターの活かし方を知っているか否かの差はますます開く。 もちろん、今に始まった話では全く無く、もう23年も前、1996年に経団連から提言されている。
創造的な人材の育成に向けて ~求められる教育改革と企業の行動~


(図、Society 5.0 - 科学技術政策 - 内閣府より)
コンピューターによる第三次産業革命の次、AI/IoTによって訪れる第四次産業革命後の日本政府が考える理想社会、Society 5.0 の要は、人間中心。 「快適、活力、質の高い生活」全員がこの三点を達成するためには、コンピューターがいかに高度化しようとも、それぞれが持てる力を存分に発揮し、誰もが誰かに必要とされなくてはならない。


(図、Society 5.0 - 科学技術政策 - 内閣府より)
Society 5.0 の要はコンピューターの大容量・高速・並列化によって実用化された、AI。AIの学習に必要になるビッグデータ。そのビッグデータを形成するのはオープンデータという「約束」である。

軽快性・経済性・安全性を兼ね備えた新しい都市を実現するためには、そのリソースとなる「都市活動データ」を収集するセンサネットワークなどの基盤的インフラを整備することが不可欠である。 公的データ・民間データの提供や、オープンデータ化を促進する制度を同時に導入することが求められる。
(「よくわかる オープンイノベーション アクセラレータ入門」 6.3.1 より)
オープンデータは21世紀のインフラ。
「リアルデータ」は「リアルタイムオープンデータ」、「公共データのオープン化」は「公共オープンデータ」とそれぞれオープンデータと明記を希望したい。
未来投資戦略2018の構成 第4次産業革命技術がもたらす変化/新たな展開:「Society 5.0」 | 首相官邸ホームページ
さらに、オープンデータなどを活用した中堅・中小企業、スタートアップ企業、NPO、市民自身によるサービスの展開を促進すべく、 新たなプレイヤーによる市場参入を可能にする新たなエリアマネジメント体制を各自治体が連携し、権限や責任の明確化を進めることが肝要である。
(「よくわかる オープンイノベーション アクセラレータ入門」 6.3.1 より)
制度自体の見直し、オープン化が合わせて必要。

社会全体がコンピューターを前提とする、Society 5.0。
もはや、従順に「仕える事」では務まらなくなってきているのが、現代の仕事。
「狩りから稲作へ」と代わった Society 2.0 と対比するなら、「仕事から創造へ」。

過去の成功経験がむしろ足かせになる新時代。
民間、行政、高専、学生、市民、こども、お互いオープンに手を取ることからはじめよう。


こちら、NSクラブでプログラミングを学ぶ、小学5年生の女の子たちからリクエストをもらって作成した「アドベンチャーゲーム」。 定義に従い、シチュエーションをグラフィック(絵文字)とテキストメッセージで表し、選択肢を選ぶことで場面が変わる。

課題が現れた どうする? 戦う?逃げる?

100 CLS 110 LC16,10:?CHR$(237) 120 LC0,14:INPUT"カダイガアラワレタ ドウスル? 1:タタカウ 2:ニゲル",N 130 IF N=1 GOTO 200 140 IF N=2 ?"ク、ニゲラレナイ":GOTO 100 150 GOTO 100 200 CLS 210 LC16,10:?"." 220 LC0,14:?"カダイヲ ヤッツケタ!"

自分だけのオリジナルな人生を創ろう!

ゲームとは、ルールで勝負を決めること。

スポーツもゲームの一種ですし、テストで点数化された学校での勉強もゲームです。
つまらないテレビゲームがあるように、ゲームのおもしろさはルール次第。
ちょっとしたルールを追加すれば、劇的に楽しいゲームになったりします。

IchigoJam 1.3 に、何か分かりやすい、かつちょっとした変化をと、カーソルスイッチを実装。
位置を指定するコマンドLOCATE(省略形LC)の第三パラメーターに1を指定すると、点滅するカーソルを表示できるようにしました。


「FIND A to Z」 IchigoJam 1.3 beta 4 以降 (カーソルスイッチ使用、IchigoBoy対応)
こちら A から Z まで、カーソル上下左右で探して、見つけたらスペースを押しましょう。Zまでのタイムを競うゲームです。 タイムの計測は、友達と、または、自分と勝負できるようになる、手軽なゲーム化手法です。

10 CLS:VIDEO3:S=ASC("A") 20 FORI=0TO15:FORJ=0TO5:LCI,J:?CHR$(RND(26)+S):NEXT:NEXT 30 CLT:N=S 40 LC0,7:IF N=S+26:?"CLEAR! TIME:";TICK()/60;:WAIT60:END 50 ?"FIND ";CHR$(N);"!"; 60 LC X,Y,1 70 K=INKEY():IF!KCONT 80 X=(X-(K=28)+(K=29)+16)%16 90 Y=(Y-(K=30)+(K=31)+6)%6 100 IF K=32 AND N=SCR() ?CHR$(0,28);:N=N+1:GOTO40 110 GOTO 60

(RUN on IchigoJam web)

アルファベット小文字をマスターするためには、10行をAからaに変えるだけ!

10 CLS:VIDEO3:S=ASC("a")

大文字も小文字も変わらないタイムがでるようになったら、次はタイピングにチャレンジ!

当時、MSXのマニュアルは何度も読んだはずでしたが、MSX BASICのLOCATEコマンドにあるカーソルスイッチには気がついていませんでした。
MSX-BASIC/LOCATE.txt at master · fu-sen/MSX-BASIC

カーソルスイッチ対応ベータ版、ダウンロードはこちら
IchigoJam 1.3b04.zip

アプリをケータイする文化は、日本から始まった!

2001年、世界初のアプリ対応ケータイとして発売された docomo F503i/P503i。 低速で高額な2Gネットワークのため、初搭載された「iアプリ」の最大容量は10kbyte(わずか約1万文字)。 この10KBになんとか納めてリリースしたパケット通信料を節約するブラウザアプリが「jigブラウザ」のベースです。

Javaのクラスを使わないのはもちろん、メソッド数を減らし、バイトコードを後処理で減らし、圧縮の最小化を図るなどなど。 いかに誰もやってなさそうな削減テクニックを編み出すか? 楽しく、あれこれ工夫できたのは、すべて利用者の喜びのため。 できた達成感と共に、一利用者としての楽しみもあって一石二鳥。 使っている内に、またやりたいことが増えるので、容量ダイエットに励み、機能アップ、というサイクル。

あれから18年、舞台はArmマイコン上のC言語でOSとして実装する、IchigoJam BASIC。 衝撃価格、100円 32bit CPU、LPC1114の容量は32KB。 8KBをユーザープログラムの保存領域として使うので、残り24KBがOSに許された容量です。

IoT、ローマ字対応を終え、いよいよ完成が見えてきた新バージョン 1.3 リリースを目前に、100byte単位の大減量に成功。勢いに乗って実装したのが RENUM コマンド!


RENUM(リナンバー、リナム)コマンドは、行番号を振り直すコマンド。
今まではプログラム内で指定してある行番号は手で変更する必要がありましたが、1.3からは自動で振り直しされます!(一部、制限あり)

1 LED1:WAIT10 2 LED0:WAIT10 3 GOTO1

とLEDを点滅させるプログラム、2と3の間にキーを押したら止めるプログラムを追加したい。 そんな時に RENUM コマンド。

RENUM OK LIST 10 LED1:WAIT10 20 LED0:WAIT10 30 GOTO10 OK

3行のGOTO1がGOTO10へと書き換わるようになりました。これで25として新たな行が追加できます。

25 IF INKEY() END

RENUMのパラーメータで1から1ずつにも振り直せます。

RENUM1,1 OK 1 LED1:WAIT10 2 LED0:WAIT10 3 IF INKEY() END 4 GOTO 1

ここで制限、RENUM100と、100行から10ずつにすると、このように一部欠けます。(GOT100、Oが欠けた)

RENUM100 OK 100 LED1:WAIT10 110 LED0:WAIT10 120 IF INKEY() END 130 GOT100

これはプログラム量が変化して、容量オーバーやプログラム領域外を破壊してしまわないように、加えて、容量不足で対策困難なための制限です。 動かせば Syntax error が起きるので手動で修正してください。行番号を1から10000など大きく変化させると、元がGSBだったかGOTOだったか分からなくなるので注意です。

実際使ってみると思いの外、快適です。今まで、ご不便おかけし、すみませんでした。

RENUM対応ベータ版、ダウンロードはこちら
IchigoJam 1.3b03.zip

IchigoJam web」 でも、体験いただけます!

IchigoJam 1.3、MacやWindowsでも動くアプリ版も準備中。

IchigoJam ver 1.3b3 メモリマップ

* ver 1.2.3との互換性を取る形で1.3b2から変更 (keybuf 126byteへ戻す、i2cbuf 54byteへ拡大)

先行公開した IchigoJam webに、続き、マイコン(LPC1114)バージョンのファームウェアを公開!
IchigoJam 1.3b02.zip」 (* 最新版は 1.3b3)
容量削減、がんばりました!

一番目立つ点は、Nが続く文字をコンマで区切る日本式ローマ字に対応し、打っている途中の文字も表示するように変更したところ。 その他、いろいろと細かい修正、調整を行い、近日正式版のリリースとなる予定です。


標準搭載となった IOT.OUT / IOT.IN コマンド、I2C用の送受信バッファを別に確保したので、配列と合わせて使っても大丈夫!

I2C実装の問題で動作しなかった 温湿度計 AM2320 (600円@秋月電子) にも対応。

10 'AM2320 20 CLS:A=#5C:B=#700:POKE B,3,0,4 30 W=I2CW(A,B,3,B+3,0) 40 R=I2CR(A,B,0,B+3,8) 50 IF R ?"I2C ERROR":GOTO 200 60 H=PEEK(B+5)*256+PEEK(B+6) 70 M=PEEK(B+7)>=128 80 T=PEEK(B+7)&#7F*256+PEEK(B+8) 90 IF H<0 ?"NO DATA":GOTO 200 100 CLS 110 ?"HUM: ";H/10;".";H%10;"%" 120 IF M ?"TMP:-"; ELSE ?"TMP: "; 130 ?T/10;".";T%10;"dC" 140 ?"MEM:";:FORI=0TO8:?PEEK(B+I);" ";:NEXT:?"" 200 WAIT 60:GOTO 30

今までのメモリマップに加えて、下記のメモリ領域が使えます。
つまり、ver1.3 では、上記プログラム、B=#110C とすることで、PCGも配列もVRAMも破壊せずに、使えます。(* b3でアドレス変更になりました)

32byte確保してある、I2Cバッファの先頭アドレスは、#110C、I2Cと覚えやすい! (b3でアドレス変更になりました)

また、#700は、LPC1114の物理RAMアドレスの先頭 0x10000000 へと移しました。
結果、マシン語使用時に、レジスタ R1 として渡される値は、必ず 0x10000000 - 0x700 となります。
1.3以降専用で作る場合、ちょっと楽できますね!
はじめてのマシン語 - IchigoJamではじめるArmマシン語その1

今後の IchigoJam のメジャーバージョンとなる予定です。不具合、ご要望など、お寄せいただけるとうれしいです。
Facebook IchigoJam-FAN、Twitter #IchigoJam、メール ichigojam@jig.jp まで!

links
- 定数行番号のRENUMに一部対応! わずか24KBのOS、IchigoJam 1.3 beta 3

日本が定める、日本語をラテン文字(アルファベット)で表す「ローマ字」は、内閣告示の「ローマ字のつづり方」(訓令式と呼ばれる)と、外務省による「ヘボン式ローマ字綴方表」の2つある。

ローマ字の歴史

1867年 来日していたアメリカ人、ヘボンさん(James Curtis Hepburnさん)が作成(ヘボン式)
1885年 物理学者の田中館愛橘さん、シンプルな日本式を提案
1937年 内閣 日本式とヘボン式が融合する形で「ローマ字のつづり方」を告示(訓令式)
時期不明 外務省 「ヘボン式ローマ字綴方表」 発表(旅券法 第五条 3 にヘボン式と明記あり)

ローマ字の習得手順

日本語のラテン文字(アルファベット)表現を習得することで、日本語理解が深まり、パソコンでの日本語が入力できるようになる。 英語圏の人には、ヘボン式の方が少し実際の音に近づく利点はあるが、どのみち日本語を知らずに正しく発音することは不可能。 よって、次の2段階での習得がいい。

1. まずはシンプルな日本式を習得し、ラテン文字で表現できるようにする
2. 英語、非英語圏のラテン文字、ヘボン式を習得し、ヘボン式ローマ字でも表現できるようにする

1の段階で、パソコンでのローマ字入力も同時にできるように練習すると定着しやすい。
小学校で教えるローマ字は日本式で決まり! IchigoJamプリント「ローマじでうつ、カタカナ - こくごコース」と授業計画例

ローマ字のつづり方


1. はねる音「ん」は、 N と書く。
2. はねる音を表わす N と次にくる A I U E O Y とを切り離す必要がある場合には、 N の次に ’ を入れる。(KON'NITIHA)
3. つまる音は、最初の子音字を重ねて表わす。(NIPPON)
4. 長音は母音字の上に^をつけて表す。なお、大文字の場合は母音字を並べてもよい。
5. 特殊音の書き表わし方は自由とする。

内国告示「ローマ字のつづり方」の第1表及び第2表による。
下記、教科書検定基準に必要に応じてよって良しとある。

第2章 教科共通の条件 3 正確性及び表記・表現
(4) 漢字、仮名遣い、送り仮名、ローマ字つづり、用語、記号、計量単位などの表記は適切であって不統一はなく、別表に掲げる表記の基準によっていること。

第3章 教科固有の条件 [国語科(「書写」を除く。)] 1 基本的条件
(1) 小学校の第3学年において取り扱うローマ字のつづり方については、「ローマ字のつづり方」(昭和29年内閣告示第1号)の第1表及び第2表(「そえがき」を含む。)によっていること。

別表 ローマ字つづり
ローマ字のつづり方」の第1表(「そえがき」を含む。)によること。ただし、必要のある場合は、同告示第2表によることができること。
義務教育諸学校教科用図書検定基準(平成30年9月18日文部科学省告示第173号):文部科学省
この日本式ローマ字は、母音5文字(AIUEO)と子音14文字(KSTNHMYRWGZDBP)の計19文字のアルファベットを組み合わせるだけと、とてもシンプルなため、ひらがなを習得した小学校3年生にもたやすく習得できる。
ローマじでうつ、カタカナ - IchigoJamプリント こくごコース

ローマ字で五十音表を表示するプログラムも簡単!

10 B="AIUEO" 20 S=" KSTNHMYRWGZDBP" 30 FOR I=0 TO 14 40 FOR J=0 TO 4 50 ?STR$(S+I,1);STR$(B+J,1);" "; 60 NEXT:? 70 NEXT

YI YE とか現代では使わない表示を消したければ、IF文を1行追加すればOK!

45 IF I=7 AND (J=1 OR J=3) OR I=9 AND (J>0 AND J<4) ?" ";:GOTO 60


(RUN on IchigoJam web)

ヘボン式ローマ字のつづり方

次のつづり方が、日本式と異なる

1. はねる音「ん」は、B M P の前の場合 M 、そうでない場合 N と書く。
2. つまる音は、最初の子音字を重ねて表わす。ただし、C の前には C ではなく T と書く。
3. 長音は書かない。
4. Vは使用不可。

ヘボン式ローマ字綴方表」(外務省)を元に作成。

平成26年11月 2020年オリンピック・パラリンピック大会に向けた多言語対応協議会 道路分科会 東京都内の英語対訳共通ルール及び対訳表」の記述のルールはこのヘボン式と異なる。
- はねる音を表わすNと次にくる A I U E O Y とを切り離す必要がある場合には、Nの次に - を入れる。(訓令式や、Google翻訳では ' を使用している)
- はねる音「ん」に、Mを用いなくてもよい。(Google翻訳では M を使用していない)
- Vの使用不可は明示されていない。

ローマ字における混乱は、日本語を学ぼうとする外国人にとってハードルを無駄に上げることになっていて、もったいない。
How Romaji Can Ruin Your Day

The Japanese government uses on type of romaji (Hepburn), but the major standards organizations (ANSI and ISO) both recommend another type of romaji (Kunreishiki). Textbooks use pretty much whatever they want. It’s all a big mess.

The Complete Guide to Japanese Romaji - JapanesePod101

There are several different systems of romaji. Arguably, the two most-often used systems are the Hepburn and Kunrei (訓令式) systems.
パスポートの名前や、すでに定着してしまった固有名詞はしょうがないとして、日本語表記としてのローマ字としてはシンプルな日本式を強く推したい。

links
- 小学校で教えるローマ字は日本式で決まり! IchigoJamプリント「ローマじでうつ、カタカナ - こくごコース」と授業計画例
- 日本式と訓令式、国際規格ローマ字の関係
- ローマ字 あいうえお
- ローマ字・ネットの会(臨時ローマ字調査会議事録など掲載)

子供とアルファベットの学習問題、そういえば3年生でローマ字は習う。
ただ、調べてみるとなかなかローマ字も闇が深い。

「づ」のローマ字は何でしょう?
実は、ヘボン式も訓令式も「ZU」が正解。
どちらの方式も音を表すもので、表記するためではない方式だからとのこと。
もちろん、ローマ字入力としての正解は「DU」

小学校ローマ字、3つの問題
1. 教えるローマ字が訓令式ヘボン式かはっきりしない
2. キーボードで打つローマ字と違う
3. そもそも時間が足りてない

そもそもなぜ小学校3年生の国語でローマ字で習うのか?

ローマ字表記が添えられた案内板やパンフレットを見たり,コンピュータを使ったりする機会が増えるなど, ローマ字は児童の生活に身近なものになっていることなどを踏まえ,第3学年で指導するものとする。
新学習指導要領の国語
日本語の文章がローマ字表記されているものは日常でほぼ見ることがない。 地名のローマ字風表記を見かけるのみなので、重点はローマ字入力にあると思っていいだろう。

地名は実はローマ字ではなく、英語化した「TOKYO」「OSAKA」や、発音の近さを優先したヘボン式「FUKUI」などバラバラ。 日本語で知っていても、ローマ字風で書く正式表記を知らずに書くことは不可能という状況なので、書けるローマ字として教えるにはどちらの方式も不適格となる。

そこで、オススメが訓令式の原型でもある「日本式ローマ字(1885年 物理学者の田中舘愛橘さん考案)」
AIUEOの母音と、KSTNHMYRWの子音を組み合わせるシンプル!
なので「づ」も「DU」、「を」も「WO」と表記し、ローマ字入力方式と互換性がある。

* パスポートではヘボン式が使われるなど、書き方はいろいろあることに少し触れておく
* 自分の名前をどう表記するかは、お父さんお母さんに聞いてみよう!と促すこと、大事

2020年からプログラミング学習が必修化し、キーボードでのタイピングの強化が明記されている中、教える時間不足問題は、 国語のローマ字としてはシンプルな日本式を書き文字として教えることで解決しよう。

こちら、カタカナのローマ字入力対応している「IchigoJam」用オンライン無料テキスト、IchigoJamプリントに、国語コースとして追加した「ローマじうつ、カタカナ」

カタカナで日本語が入力できるようになると、IchigoJamでの表現の幅が広がります!

こちら「もういくつねると〜お正月」を歌詞表示しながら音楽を奏でるプログラム

10 PLAY"O4 L4C2DC8D8EGE2 DDCDE2.R L8CC>AAGGG4 <CCDDE2 E4DDCCCC DDEEG2 L4C2DC8D8EFEE DDEDC2.R 20 W=240 30 TEMPO 28800/W 40 ?"モウ イクツネルト":WAIT W 50 ?"オショウガツ?":WAIT W 60 ?"オショウガツニハ タコアゲテ":WAIT W 70 ?"コマヲ マワシテ アソビマショウ!":WAIT W 80 ?"ハヤク コイコイ":WAIT W 90 ?"オショウガツ!":WAIT W

IchigoJamを使った、オススメのローマ字、英語、プログラミング学習の流れ
1. 3年 外国語活動、アルファベット大文字を学ぶ
2. 3年 総合 or 外国語活動、キーボードでアルファベットをタイピングする(IchigoJamでOK)
3. 3年 国語、日本式ローマ字を学ぶ
4. 3年 国語 or 総合、キーボードでローマ字をタイピングする(まずはIchigoJamでカタカナのみでシンプルに!)
5. 3年 国語 or 総合、キーボードでローマ字をタイピングする漢字編(文章入力にチャレンジ!)
6. 4年 総合、プログラミング基本(IchigoJamはじめのいっぽでLED制御と身の回りのコンピューター)
7. 4年 総合 or 外国語活動、プログラミング応用(簡単な英単語とかわくだりゲームづくり)
8. 4年 外国語活動、アルファベット小文字を学ぶ
9. 4年 総合 or 外国語活動、キーボードで小文字を学ぶ(IchigoJamタイピングゲーム
10. 4年 外国語活動、まちなかにある外国語やローマ字で書かれた単語を集めて解析しよう!

アルファベット大文字、ローマ字で書くこと、キーボードタイピングの基本を3年生でマスターし、
アルファベット小文字、プログラミング、キーボードを4年生でマスターするという設計
(アルファベット大文字、小文字は5-6年生分を先取り)

6,7は、先日鯖江市の小学校で実証した45分2コマを想定。
動画&スライド公開、プログラミングB分類、総合と英語2コマ使った「はじめてのプログラミング」 - 鯖江市進徳小学校でモデル授業
4年生からはクラブ活動の時間があるので、もっとやりたいこどもはプログラミングクラブ活動へ。

10は社会見学的な活動。 ヘボン式を含む、各地にある英語やローマ字風のいろいろな文字を拾って解析する活動は外国への興味関心を引くのに良いはず。 フランス料理屋さんの看板など、英語以外の表記も見つかってきっと楽しい。小文字を覚える4年生向けとした。

総合的な学習の時間における,コンピュータで文字を入力するなどの学習との関連が図られるよう,指導する時期や内容を意図的,計画的に位置付けることが重要である。
新学習指導要領の国語
国語のローマ字の時間が足りない問題を、英語のアルファベット、総合のタイピングとプログラミングを関連付けて、計画してみました。 現場の先生方からもご意見伺えたら幸いです。

(補足)
新学習指導要領の国語からのリンクはないが、 昭和29年の文書「ローマ字のつづり方」が訓令式とされるもの。 国語を書き表わす場合に用いるローマ字のつづり方が定められている(文化庁からの引用あり)。 ただ、文書内に「おおむね」や「特殊音の書き表わし方は自由とする」と、書いてあって、定義として機能していない。 (昭和12年の内閣訓令第三号がヘボン式を例外として認める形で改められた)

この訓令式は、1989年にはISO3602として国際規格化もしているが、Wikipediaにもあるように翻字、つまり、文字として書き起こすことに向いていない。 そのため、冒頭の「づ」のような問題が起きる。日本式ローマ字では起きない。

(補足2、追記)
パスポートに記載する名前はヘボン式と法律で定められている。外務省によるヘボン式の定義「ヘボン式ローマ字綴方表

前項の氏名はヘボン式ローマ字によって旅券面に表記する。ただし、申請者がその氏名についてヘボン式によらないローマ字表記を希望し、外務大臣又は領事官が、出生証明書等により当該表記が適当であり、かつ、渡航の便宜のため特に必要であると認めるときは、この限りではない。
旅券法 第五条 3)

追記:訓令式に準拠した「日本式ローマ字のづづり方」と差分でまとめた「ヘボン式ローマ字」

links
- ISO 3602:1989(en), Documentation — Romanization of Japanese (kana script) - 国際規格化されたローマ字の定義、有償
- 日本式ローマ字 - Wikipedia
- ローマ字のつづり方:文部科学省
- ヘボン式ローマ字綴方表(外務省)

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像