見出し画像

【8x9通信】2022年1月号

こんにちは、神戸・西宮・大阪・姫路で評判の現役エンジニアが教える子供向けプログラミング教室、ハックです!2022年になりました。本年もどうぞよろしくお願いいたしますm(__)m
2021年のベネッセ調べによる「子供がしたい習い事」「子供にさせたい習い事」の第3位に「プログラミング」がランクインしています。プログラミング教育を通して育まれる「論理的に考えていく力」がこれから子どもたちに求められる重要な力である、ということが広く認知されてきたのでしょうね。それでは、【8x9通信】をお届けします!

参考:https://benesse.jp/juken/202112/20211217-1.html


初級Ⅰコース

《レッスン内容》

12月は「micro:bit(マイクロ・ビット)」を使用したゲームを作りました!
micro:bitは、イギリスのBBCが主体となって作った教育向けのマイコンボードです。タテ・ヨコ5x5のLEDと2個のボタンスイッチのほか、加速度センサと磁気センサ、無線通信機能を搭載しています。
前半のレッスンではmicro:bitの機能を紹介し、テキストプログラミングの世界を少しだけ紹介しました。また、「kahoot!(カフート)」を使って「早押しクイズ大会」を行いました。かなり盛り上がりましたよ(*^▽^*)
後半は、「チキンレース」ゲームを作りました。ちょうど5秒でストップボタンを押せるかを競うゲームです。5秒を超えたら負けとなり「×(バツ)」がつきます。ゲームが出来上がると、5秒を超えずに5秒にどれだけ近づけられるか、みんなで競い合いました。ジャスト5秒を出せた子もいました!

《狙い・成果》

micro:bitは、JavaScript(ジャバスクリプト)などのテキストプログラミングも実行できます。初級Ⅰのレッスンで学んでいるビジュアルプログラミングと切り替えて使うことができ、今後必要となるプログラミング言語の練習もできました。
kahoot!は参加型のクイズ大会システムで、学んだ事柄を早押しクイズ形式で答えていくものです。USでは評価が高く日本でも先進的な小学校・中学校から取り入れているところが増えてきています。クイズ大会ですので子どもたちは喜んで問題を問いていきますが、同時に「このレッスンで何を身につけたか?」をみる形成的評価を行なうことができます。
例えば「チキンレース」ではmicro:bitのタテ・ヨコ5x5の計25個のLEDを、0.2秒ごとに一つずつ点灯させて5秒を計るプログラミングをしましたが、その際に「2重ループ」という「入れ子のくり返し構造」を学んでいます。プログラミングでは全員ゲームを完成させましたが、kahoot!のクイズ形式で「2重ループ」の問題を出すと間違える子もでてきました。その際に再度プログラムの動きを見直して考える等を行って、より良い理解が得られるようになっています。
今後もKahoot!などより良いツールを活用していきたいと考えています。


初級Ⅱコース

《レッスン内容》

初級Ⅱコースは8x9Craft(ハッククラフト)を使用し、プログラミングでイラストを描くレッスンを実施しています(12月・1月で実施)
レッスンでは以下の3つの工程に分けて制作作業を進めていきます。

・イラストはドット絵制作ツールを使用し自分でデザインを制作
・作成したドット絵とプログラミングで描画するイラストが同じになるように設計図に落とし込む
・イラストを壁画に見立ててMinecraft®︎上にプログラミングで描画

みなさん思い思いのデザインを制作しプログラミングでイラストを再現していました(^^)

《狙い・成果》

【狙い】
①プログラミングの共通化(関数を積極的に使用)
関数を用いて共通化が可能な処理をまとめ、可能な限りプログラミングを簡略化するように作ることをカリキュラムの中に盛り込みました。共通化ができるようになると抽象化ができるようになり、抽象化はAIですら再現が困難と言われる人間の脳にだけ与えられた能力です。
抽象化の恩恵は多く、プログラミングではオブジェクト指向と呼ばれる抽象化の概念は今もなお必須とされていますし、普段の生活においても抽象化思考ができると対処療法ではなく根本解決ができるようになります。

②デザイン制作(ドット絵づくり)
プログラミングに限らずデザインの知識も最低限身につけてもらうために、今回はデザイン制作の時間を設けました。一昔前ではデザイナーとプログラマーは棲み分けされていましたが、今はプログラマーがUI/UX(画面・使いやすさ)を兼任することは珍しくありません。特にWebやアプリ開発ではデザインやアニメーションを動的に生成(プログラミングで作る)ことが多くなってきた関係でプログラマーであっても一通りのデザインの知識は求められるようになってきています。

【成果】
イラストツールで絵を描くとなるとハードルが上がりますが、ドット絵制作の場合はドットを刻んでいくだけなので生徒達も手が止まることなく思い思いのデザインづくりに取り組んでいました(^^)
またプログラムの共通化についても今回新たに学ぶ内容を極力減らしたことで、プログラミング作業の多くを関数化に注ぎ込めるようにしました。生徒によってはまず関数から作る子もいたりするなど、プログラミングで処理を共通化させることの必要性を学ぶきっかけにできたと思います。


中級Ⅰコース

《レッスン内容》

中級Ⅰは、ブロックプログラミングからテキストプログラミングに移行するために8x9Craft(言語はJavaScript)を用いてインプット中心に課題を進めています。偶数月である12月は、習熟度の確認も含めてアウトプット主体のレッスンを実施しました。
12月~1月はmonaca educationという統合開発環境を用いて、今までに習ったプログラミング知識を元にプログラムを解読し、全体的な作りについて理解を深めることを目的として行います。
1)ブロック崩しなどのプログラムを写経し改造を行うことで、処理の流れや全体の作りについて理解を深めました。
2)SEGAが公開している「ぷよぷよ」をテーマにした教材を使用しました。ぷよぷよのプログラムを写経していくことによってゲームプログラムのアルゴリズムについて理解を深めました。

《狙い・成果》

※中級Ⅰは初級とは違い、基本的に期間毎の内容の区切りはありませんので、以下は通年の中級Ⅰ自体の狙いと成果となります。
本格的なプログラムをつくるためには、やはりテキストでのプログラミングが必須になってきます。ゲーム・アプリ・業務システム・科学技術研究・ホームページ・その他のIT技術活用やコンピューティングなどのプログラムは、それぞれの用途目的に適した英語ベースのテキストプログラミング言語でプログラミングをします。
中級Ⅰでは、将来、どのようなテキストプログラミング言語を使うことになっても対応できるような、テキストプログラミングの基礎・本質を身につけることを目標にカリキュラムを定めています。
まずは、初級のブロックプログラミングで学習したプログラム3大要素「順次処理」「繰り返し」「条件分岐」を、改めてテキストプログラミングとして学びます。8x9craftならではの「同じ目的を、違うプログラミング言語で実現」を活かして、「あ!英語(テキスト)になったからと言っても、ブロックプログラミングとプログラムの流れは変わらないのか!」という感覚をしっかりと体験します。
その後、さらに本格的なプログラミングの文法や考え方を実践を通して身につけていきますが、淡々と教科書通り的にやっていくのではなく、1つ1つ本質を捉えて問題解決に取り組むカタチになっており、1つの課題に何時間もかかることもありますが「仮説と検証」「Try&Error」をたくさん経験し、根気よく粘り強くやれば必ず問題は解決できることを身につけ、チャレンジすることを恐れない心を育んでもらえるようにしています。また、プログラミングなどの制作作業はチームワークが大事になってくることなどを伝え、コミュニケーションの大事さをプログラミングを通して学びます。これはきっと将来プログラマー以外のお仕事にも活かされていくと考えます。

中級Ⅱコース

《レッスン内容》

【辻クラス】
私自身、数学が好きなので、プログラミングと関係性の深い、機械学習(AI)、数学・物理・統計・データ分析などのレッスンを実施しています。言語は人工知能、機械学習で多く使用されるPython言語を使用しています。
中級2クラスでは、生徒さんのレベルと、やりたいことに合わせて授業を進めています。
<数学プログラミング>
行列を使って、3Dの画像を回転させてみました。行列は、まだ学校では習ってませんが、意欲的に取り組んでくれました。
統計の学習としては、散布図を描いて、回帰直線の求め方を学びました。コンピュータを使うと、新たな納得感があるようです。
<AI (Deep Learning)>
「自然言語処理」の手法を学んでいます。今回も、前回に続き、長い文章から、関連性の強い単語を抽出する処理をテストしました。テストデータを変えて、わかりやすい単語を抽出してみました。
フレームワークの仕組みについても、学び始めました。
<Webアプリ作成>
サーバ側の処理を、python で作り、クライアント側の処理を、HTMLで用意して、サーバ ⇔ クライアントを動作させて、Webアプリの基本を学んでいます。ブラウザのデベロッパーツールで、デバッグする方法も、学びました。今月は、料理レシピのページを作りました。

《狙い・成果》

【狙い】
・時代が変わっても役に立つ、基礎となる技術を修得する
・プログラミングを通して数学、物理の理解を深め、より幅の広い開発ができる事を目指す
・プログラミング、数学の面白さを知ってもらう
【成果】
・自分で学んで、自分で調べて、自分で解決する力を身につける
・パターンを見抜く力がつき、そこから応用する力に発展させる
・数学に関しては、生徒から次のような声をきいています。
  「学校の数学授業の予習になった」
  「数学が目に見える形になると、おもしろい」
  「数学が学校以外でも役立つことに気づいた」

【この記事を書いた人】

大原 真希 / インストラクター及び事務スタッフ
大学卒業後、神戸の企業でシステムエンジニアとして働き、出産を機に退職。その後母親業に専念し、徐々に自宅でのプログラム請負やパートでの事務職を経験する。現在は大学で派遣スタッフとして働く傍ら、「キッズプログラミングスクール8x9(ハック)」でのインストラクター兼事務スタッフとして働く。プログラミング、データ加工、業務効率化が好き。Excel、SpreadSheetが得意分野。



この記事が気に入ったらサポートをしてみませんか?