レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

変数によるデータの名前付け

変数には数値やデータに対する名前づけの効果もあります。 10や-4という数字は味気ないですし、プログラムが巨大になってくるとどの数字が何を指しているかわかりにくくなります。 以下のプログラムでは、変数名に「高さ」という名称をつけました。 参照する…

BLOCKVROCKでの変数

BLOCKVROCKで変数(へんすう)を使います。変数はプログラミングのとても基礎的ながら重要な要素です。 プログラムで変数を使うメリットはいくつかあります。 同じ値を使っている場所にセットしておくと、変更するときに1箇所変更するだけですむ 値に名前を…

BLOCKVROCKでHelloWorld

BLOCKVROCK入門編 様々な言語で、初めの1歩といえばHelloWorldとコンソールに出すことですが、BLOCKVROCKでもやってみます。 [公式]BLOCKVROCKでHelloWorld 半角英数文字を浮かせるコードです。 BLOCKVROCKでHelloWorld 位置のX Y Zの感覚が少し迷いがちで…

子要素をとにかく円形に配置してくれるブロック

勢いに乗って早速の連投をしていきます。 BLOCKVROCKは、入門編の話もできていないのに、いきなり新機能の話をしていきます。 ブログを書くテンションをキープするためです。 円形に配置というブロックは、Aframe-Layout-Componentというコンポーネントを使…

BLOCKVROCKというWebVRサービス

昨年より、BLOCKVROCKというサービスをやっています。 https://blockvrock.com/ WebVR/ARを、誰でも作れるようにするサービスで、例えば下に載せたようなのが5ステップぐらいで簡単に作れます。 プログラミングに興味のある高校生などを対象に、プログラミ…

設計力で測る課題解決力

設計力は、課題解決力の一部です。 プログラミングを使って「設計」がうまくできるようにすることを目的にすると、結果として「課題解決力」が身につき、課題解決力が測定しやすくなると思います。 例えば、「おばあちゃんの安否を見守りたい」という課題を…

プログラミング学習は、設計を学ぶ科目だと思う

若い人(特に子供)たちにプログラミングやコンピューティングを教えることの意義について、あれこれ行ったり来たりと考えた結果、その意義は「設計の力」を鍛えることを目的にするということで良いんじゃないかと現時点で思っています。プログラムはそもそ…

簡易HTTPツール

<html> <head> <meta charset="UTF-8"> <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> </head> <body> <div>host:<input id="req_host" type="text" value="http://localhost:8080"></div></body></html>

Scratch Blockly と Blockly とで違うところ(1)

Blocklyで作ったソフトをScratch Blocklyに対応させている、色々詰まるのでメモ。 1) Blocklyのツールボックスのカテゴリには必要な属性がなかったが、Scratch Blocklyには必須属性がある(colour・secondaryColourがないとエラー)そして、ID属性がないとク…

1年が暮れる。この1年はレベルエンターという会社と自分にとって、とても実りの多い1年だった。 BLOCK VROCK というサービスを開始した。 産休明けの仲間の復帰を受け入れられた。 提携レベルの協業を実現できた。 障害児童向けのプログラミング教育を定期的…

Swiftのちょっとしたメモ

PlayGroundでHTTP通信 import UIKit import PlaygroundSupport PlaygroundPage.current.needsIndefiniteExecution = true let session = URLSession(configuration: .default) var urlComponents = URLComponents(string: "http://localhost/json")! urlComp…

Node.js/Expressサイトを、AWS EC2からfirebaseに移行

コーポレートWebサイトを firebaseに移行しました。 もともと、静的ページで AWS EC2のWindowsサーバにホスティングしていましたが、 色々とメンテナンス性が悪くコストも高いので、段階的にnode.js/Express 化してfirebaseに以降、今週日曜日に移行が終わっ…

プログラミング教育の目的は、職業訓練ではなく課題解決力であるとは本当か?

「子供向けのプログラミング教育については特に、職業訓練ではないのだからプログラミングスキルを身につけることを目的にしてはいけない。課題解決力を身につけることを目的にするべきだ。」 上記のようなことは、子供向けプログラミング教育を義務教育化す…

ブログを統合した

数年前まで、はてなダイアリーでブログを書いていましたが、起業と前後してはてなブログに移行しました。 とはいえはてなブログでは、あまり記事を書いていませんでした。 はてなダイアリーがサービス終了と聞き、同時にはてなブログにブログのインポートと…

プログラミングを教えるときに余計なことを教えすぎ説(またはプログラミングを嫌いにならないコツ)

件名通り。プログラミングの教育をやっていて、本当に余計なこと、、、というか段階に合わないことを一気に教えすぎ。 例えば変数を教えるときに、はじめに教えるべきなのは代入と参照の2つでいい。 そこに無理に基本型のサイズとか、参照型とか一気にやりす…

Swift 関数とオプショナルの解説を覚書

オプショナルについて 他言語を知っているひとがSwiftを学ぶときに、一番最初につまるのはオプショナルだと思います。Swiftでは普通の型(IntやStringや自作クラス型などほとんどの型)ではnil (=null)を代入できません。nilは非常に特殊な状態であると言語…

コンピュテーショナルシンキングについての学習ルート

最近ずっと僕が取り憑かれているコンピュテーショナルシンキングとは、コンピュータサイエンティストの思考法という解釈がしっくり来ます。 Google for Educationでも重要な指針として認められている考え方です。 edu.google.com 主なコンセプトは、以下です…

コンピュテーショナルシンキングをSEの世界で考える

コンピュテーショナルシンキングを習得する授業を高校向けにやっていきましょうという話をしていて、コンピュテーショナルシンキングについてシステムエンジニアではない人にどうやって説明するかについて気づきを得たのでメモしていきます。 コンピュテーシ…

Javaオブジェクト指向以降の練習問題

研修やってるので覚書 課題1 配列 パッケージ ex_arrayを作成。 クラス UserSide を作成し、public static void main メソッドで以下を作成 String配列を作成 String member = new String[3]; member[0] = "山田花子"; member[1] = "10"; member[2] = "90"; …

初心者にプログラミングを教える時の例集

do while テストと追試 →40点以下再試験。 テスト1回目は、全員必ず受けるが、40点以下なら再試験。 再試験でまだ40点以下なら再再試験。40点を超えるまで繰り返し。 多次元配列: 表や立方体を例えに出すと、4次元で詰むので リストの中にリスト…

Computational Thinking

プログラミングを学ぶことの上位目的としてComputational Thinking(CT/計算論的思考)という言葉が使われることがあります。 CTとは、問題解決や問題分析の手法だと捉えたほうがよく、プログラミングそのものとは切り離してあらゆるシーンで使うことができ…

私と仕事どっちが大事なの問題

「仕事と家族」(または若い人にとっては「仕事と恋人」)という2つの優先順位の違う世界をいかに上手く過ごすかという問題はとても大事だ。 しかし難しいことに、この2つの価値基準はまったく異なっている。 仕事は、利己的。 仕事は、自分の生きがいとし…

自分たちらしい入社誓約書

入社誓約書って、結構会社のカラーが出ると思います。そこで自分たちらしい誓約書を作ってみようかと思います。 まずは僕だけの意見で作ってみて、社員さんたちと相談して更新しながら実際に使っていこうと思います。 【入社誓約書】 上機嫌で仕事をすること…

3期目に向けて

代表取締役の山本です。7月1日より、レベルエンターは3期目がスタートしています。 2期目は、山あり谷ありの1年でしたが、新しい戦力がふえ、仕事も着実に安定してきていて、いろいろと取引の幅も広がりました。前期は多くの旧知の方々にたすけられました…

プログラミング学習で、本当に論理的思考が身につくか?

プログラミングを学ぶことでつく力ということで、「論理的思考」という言葉が使われることがあります。 でも論理的ってどういうことでしょうか。私は、はっきり定義をしらべたり教えてもらったりしたことはなく、なんとなく理解しているつもりになっていまし…

プログラミング学習では上手な試行錯誤の仕方が学べる

子供向けのプログラミング教育では、上手な試行錯誤の仕方が学べると良いと思います。以下の記事にある内容に一部同意しつつインスパイアされて書いています。 itpro.nikkeibp.co.jp 上手な試行錯誤を促すには、どのようなカリキュラムが良いかを考えながら…

ハンマーと釘とプログラミングの上達と課題発見と課題解決

人はハンマーを握ると全てが釘に見えるので、なんでもぶっ叩きたくなりますね。 プログラミングを少し覚えると、たしかに色々ぶっ叩きたくなるんですが、ぶっ叩くものを見つけるのが難しい。 課題発見は課題解決より難しいです。 課題解決そのものはゴールが…

1週間途切れてしまったコーディングの再開の仕方

自分の好きなツールや、大変力を入れているプロダクトを作っているときですら、1週間も時間をあけてしまうと、もうダメです。 もう一度エディタを開いてプログラミングに取り掛かるのが億劫になります。 がんばってエディタを開いても、他人のコードのよう…

Scratch 2.0 オンラインエディタ で 「ひらがな(にほんご)」にできないバグの暫定対処

Scratch2.0を使っていて、急にひらがなにできなくなりました。 ディスカッションサイトでも話題になっていて暫定対処法がありました。 ■Discuss Scratch https://scratch.mit.edu/discuss/topic/74392/?page=20#post-2660186 "オンライン版のScratch 2.0 #45…

ブログを引っ越し

山本大の日記から、ブログを移動します。 d.hatena.ne.jp こちらでは、若い人に向けたプログラミング教育をテーマに書いていこうと思います。