こんにちは、神戸・西宮・大阪・姫路にある現役エンジニアが教えるプログラミング教室、ハックです!
蒸し蒸しと暑い日々がやってきましたね。私は夏が苦手なので、この時期ちょっと辛いです(;_:)
でも子供たちは元気にスクールに来てくれて、毎回楽しくにぎやかにレッスンを受けてくれています!
それでは、今月の【8×9通信】をお届けします!
お知らせ
【名谷校オープン】
7月1日に、新規教室「テテ名谷校」が開校しました!
名谷近辺にお知り合いおられたら、体験レッスンをお勧めしてみて下さいね。
【8×9フェスティバル2023】
8月9日(水)に、「8×9フェスティバル2023」を開催します!
毎年8月9日は8×9(ハック)の日としてプロコンイベントを開催していますが、5年目の今年は趣向を変えて
8×9フェスティバルとします。各校の先生方がブースを担当し、いろんな体験をしてもらえるお祭りにしたいと思っています。
参加者募集中ですので、ぜひお申し込みくださいね!
初級Ⅰコース
《レッスン内容》
2023年6月は前半週にIchigojam(イチゴジャム)で「縄跳びゲーム」を作りました。
BASIC(ベーシック)というプログラミング言語で動く子ども向けのボードコンピュータです。
Scratchや8x9Craftとは違いテキストでコーディングするテキストプログラミングになります。
コーディング→実行→デバッグを繰り返してプログラムを作り上げます。
後半週はmicro:bit(マイクロビット)でボールキャッチゲームを作りました。
イギリス発の教育向けのマイコンボードです。
タテ・ヨコ5×5のLEDと2個のボタンスイッチのほか、加速度センサと磁気センサ、無線通信機能を搭載しています。
シンプルなゲームですが、変数、乱数、座標の概念など基本的な知識がつまったプログラムとなります。
《狙い・成果》
IchigoJamとmicro:bitとどちらもボード(基板)を使ったコンピュータです。
パソコンやスマホと違い、電子部品の載ったボードでプログラミングが動いて楽しむことができます。
子どもにとってはコンピュータを自分で動かしている実感が湧くデバイスになっています。
今回のichigojamは、プログラムの内容は円の公式、sin関数cos関数など出てくるので少し難しいものとなっています。
ですが、プログラム内容の詳しい理解より、ichigojamでのコーディング→実行→デバッグを繰り返してプログラムする手法をマスターしてもらうことに目標を置いています。
初めてのテキストプログラミングとなった生徒さんには難しいと感じられたかもしれませんが、1文字ずつ正しくお手本通りに文字を打ち込むと、プログラムが正しく動作する達成感を味わってもらえたと思います。
初級Ⅱコース
《レッスン内容》
6月と7月は、「Scratch」を使った作品を2ヵ月で完成させるレッスンです。
前半である6月は、まずは用意された設計書を見ながら「ねこの冒険」ゲームをプログラムしていきます。
今回は、設計書は用意されており、スプライトなどの部品もあらかじめ用意してあります。
いかに設計書通りに、正しくプログラムを作りこんでいくかが問われます。
設計書通りに正しく動くプログラムが作れたなら、そこからはオリジナル作品の設計に入ります。
《狙い・成果》
初級Ⅱのコースは作品を仕上げるちからをつけてほしいと考えちています。用意された「ねこの冒険」の設計書をもとにゲームの作り方を学びます。
また設計書はどのようにつくったらよいか、作品づくりには設計書が必要だということに気づいてもらえたと思います。
作品が完成したら思った通りに動くか、思ってもいなかった操作でバグがでないか、他の人がみても使いやすいかなど作品の完成度も高めていきます。
中級Ⅰコース
《レッスン内容》
1)ブロックプログラミングからテキストプログラミングへの移行を主目的とした「基礎編」は慣れ親しんだ8x9Craftで学びます。
2)次に基礎知識を応用やテキストプログラミングならではのテクニックを学ぶ「応用編(共通)」をp5.js(OpenProcessing)で学びます。
3)テキストプログラミングで出来ることをしっかり学んだあとは「応用編(選択)」として、選択制で数学、アート、音楽、ゲーム、ホームページ、便利ツールなどのさまざまな分野でのプログラミング・コンピュータの応用・活用を経験していただけます。
《狙い・成果》
※中級Ⅰは初級とは違い、基本的に期間毎の内容の区切りはありませんので、以下は通年の中級Ⅰ自体の狙いと成果となります。
本格的なプログラムをつくるためには、やはりテキストでのプログラミングが必須になってきます。
ゲーム・アプリ・業務システム・科学技術研究・ホームページ・その他のIT技術活用やコンピューティングなどのプログラムは、
それぞれの用途目的に適した英語ベースのテキストプログラミング言語でプログラミングをします。
中級Ⅰでは、将来、どのようなテキストプログラミング言語を使うことになっても対応できるような、
テキストプログラミングの基礎・本質を身につけることを目標にカリキュラムを定めています。
まずは、初級のブロックプログラミングで学習したプログラム3大要素「順次処理」「繰り返し」「条件分岐」を、改めてテキストプログラミングとして学びます。
8x9craftならではの「同じ目的を、違うプログラミング言語で実現」を活かして、「あ!英語(テキスト)になったからと言っても、
ブロックプログラミングとプログラムの流れは変わらないのか!」という感覚をしっかりと体験します。
その後、さらに本格的なプログラミングの文法や考え方を実践を通して身につけていきますが、
淡々と教科書通り的にやっていくのではなく、1つ1つ本質を捉えて問題解決に取り組むカタチになっており、
1つの課題に何時間もかかることもありますが「仮説と検証」「Try&Error」をたくさん経験し、
根気よく粘り強くやれば必ず問題は解決できることを身につけ、チャレンジすることを恐れない心を育んでもらえるようにしています。
また、プログラミングなどの制作作業はチームワークが大事になってくることなどを伝え、
コミュニケーションの大事さをプログラミングを通して学びます。これはきっと将来プログラマー以外のお仕事にも活かされていくと考えます。
中級Ⅱコース
《レッスン内容》
【辻クラス】
私自身、数学が好きなので、プログラミングと関係性の深い、機械学習(AI)、数学・物理・統計・データ分析などのレッスンを実施しています。
言語は人工知能、機械学習で多く使用されるPython言語を使用しています。
中級2クラスでは、生徒さんのレベルと、やりたいことに合わせて授業を進めています。
<数学プログラミング>
中級Ⅱクラスに上がったばかりの生徒さんは、中学数学をプログラミングで学習しています。
高校生の生徒さんは、微分・積分・統計などをプログラミングで、学習しています。
学校でやっている数学をプログラミングでやってみることで、数学をより楽しんで学ぶことができます。
グラフはJupyter notebookというノートのようにプログラムと実行結果を並べて表示できるツールを使います。学校の数学ともつながる内容なので、関心を持ってもらえています。
<AI (Deep Learning)>
教師あり学習で画像認識ができる仕組みを学んでます。
特定のフレームワークによらず、機械学習の基礎となる概念を、サンプルコードを元に学んでいます。
最近のChatGPTなど動向の紹介もしています。
<アルゴリズムとデータ構造>
アルゴリズムとは「問題を解決するための手順や計算方法」のことです。
プログラミングでいうとある処理を実現するための手順になります。
「Aizu Online Judge」(https://onlinejudge.u-aizu.ac.jp/)というWEBサービスを利用して学習しています。
与えられた課題を解決するプログラムを書いて提出すると、
あらかじめ用意されたテストデータでテストされて、結果を判定してくれます。
考える力を養ってもらい、また考える楽しさ、気持ち良さを理解してもらいたいと思っています。
<ゲーム数学>
今月から始めました。
Unityを使って、ゲーム作りの基礎、C#の文法、ゲーム作りに必要な数学、物理を学びます。
《狙い・成果》
・時代が変わっても役に立つ、基礎となる技術を修得する
・プログラミングを通して数学、物理の理解を深め、より幅の広い開発ができる事を目指す
・プログラミングに限らず、考えることの楽しさを知ってもらうこと、
・AIを基礎にしたIT社会に対応していける人になってもう。
【成果】
・自分で学んで、自分で調べて、自分で解決する力を身につける
・パターンを見抜く力がつき、そこから応用する力に発展させる
・数学に関しては、生徒から次のような声をきいています。
「学校の数学授業の予習になった」
「数学が目に見える形になると、おもしろい」
「数学が学校以外でも役立つことに気づいた」
・AIに関しても
「今、急激に普及しつつあるAIの仕組みがイメージできるようになった」