8×9通信 2023年9月号
2023.9.14

こんにちは、神戸・西宮・大阪・姫路にある現役エンジニアが教えるプログラミング教室、ハックです!
まだ暑い日が続きますが、少しずつ秋の気配も感じるようになってきましたね。生徒さんたちは2学期に入り行事の練習やテストで忙しい日々を過ごされているでしょう。
無理をせず、学校もプログラミングも楽しく続けていきましょうね!(^^)!
それでは、今月の【8×9通信】をお届けします!

初級Ⅰコース

《レッスン内容》

2023年8月は8x9Craftを使った「土地開発」のレッスンを行いました。
2〜4名のチームを組み、協力しあって荒れ果てた砂漠の地を住みやすい地へと土地開発してもらいます。
まずは、チームごとにテーマをきめます。テーマは「食べ物に困らない土地」「ハイテク技術の土地」「安心して住める土地」など、SDGsにちなんだ17種類用意されており、決まったテーマに沿って問題点と解決方法を話し合い、まずは設計書をつくります。
そして、メンバーで分担し、土地開発をすすめていきます。
ただテーマ通り作って終わりではなく、作った上で他者にどのように利用してほしいかまで想像してもらいながら制作に取り組んでもらいました(^^)

また、このワークはチーム開発であっても役割分担とプログラミングの「反復処理」を徹底しなければ90分以内に完成させることが難しいという特徴があります。そのため「どうにか作り終えたい!」という強い目的意識から、チームで協力したりプログラミングを手段として活用することを自然と実現しています。皆さん、素敵な家を建てたり、大きな池を作ったり、畑に食料を育てたり、豚や羊など家畜を放牧する牧場を作ったり、各チームが知恵を出し合って取り組んでいました(^^)

《狙い・成果》

【ワーク特有のもの】
・チーム開発における「協働力」「コミュニケーション力」「やり抜く力」
・設計、検索能力の向上(開発に使用する資材IDの選定と調査)

【プログラムの概念】
・反復処理「くり返し」

 

初級Ⅱコース

《レッスン内容》

8月と9月は、みんなの大好きな「8x9Craft攻城戦」を2ヵ月かけて行います。
8月はまず、城を作るために必要な道具(壁を作る関数、地面を埋め尽くす関数など)を作りました。
ブロックのID、メタ、また縦の長さ、横の長さを引数とした関数を作り、引数を変更するだけで簡単に城づくりが出来る関数を用意することによって、攻城戦の作業がはかどります。

《狙い》

<抽象化、構造化を学ぶ>
・プログラムを関数化すること
・関数化することで、プログラムの重複をなくす
・引数を使い関数の汎用化を図る
・関数から別の関数を呼び出すことで、プログラムを構造化する

(関数の使いまわし)

《成果》
関数、引数の考え方を学んでいただけました。
難しい考え方ですが、実際に手を動かしてマイクラの世界でプログラミングすることで、
体感していただけたかと思います。
中級の生徒でも、なかなか理解が難しいところを、
初級Ⅱコースで、触れておくことで、中級に上がって関数を学ぶときに、
理解がスムーズになればいいのですが。

《生徒さんの感想 − 8×9リフレクションより》

「関数はやっぱり便利」
「関数の使い方が今回の授業でやっとわかった」
「関数を使って、作業が楽になる」
「関数ムズいけど便利だった」
「関数がすごい便利だった」
「関数を知った」
「関数は、使いやすいなと思った」
「引数の使い方や仕組みなどを理解することが出来た」
「関数をつかうと作りたいものがすぐ作れる」
「今日やったやつもめっちゃ面白かった」
「関数の仕組みはややこしい」
「引数を使ったら色々簡単だった」
「関数を使うと楽になる」
「関数と引数を変えるといろいろなことができるのだなと知りました」
「関数を使うとプログラムが短くなる」
「関数で作ったものは次に活かされる」
「関数などを使うと、より面白くなるということです」
「関数と引数を使うと便利。」
「関数の中で関数を使うこと」
「関数を使うとプログラムが短くなる」
「関数を使うとすぐに作業ができる」

 

中級Ⅰコース

《レッスン内容》

1)ブロックプログラミングからテキストプログラミングへの移行を主目的とした「基礎編」は慣れ親しんだ8x9Craftで学びます。
2)次に基礎知識を応用やテキストプログラミングならではのテクニックを学ぶ「応用編(共通)」をp5.js(OpenProcessing)で学びます。
3)テキストプログラミングで出来ることをしっかり学んだあとは「応用編(選択)」として、選択制で数学、アート、音楽、ゲーム、ホームページ、便利ツールなどのさまざまな分野でのプログラミング・コンピュータの応用・活用を経験していただけます。

《狙い・成果》

※中級Ⅰは初級とは違い、基本的に期間毎の内容の区切りはありませんので、以下は通年の中級Ⅰ自体の狙いと成果となります。
本格的なプログラムをつくるためには、やはりテキストでのプログラミングが必須になってきます。
ゲーム・アプリ・業務システム・科学技術研究・ホームページ・その他のIT技術活用やコンピューティングなどのプログラムは、
それぞれの用途目的に適した英語ベースのテキストプログラミング言語でプログラミングをします。
中級Ⅰでは、将来、どのようなテキストプログラミング言語を使うことになっても対応できるような、
テキストプログラミングの基礎・本質を身につけることを目標にカリキュラムを定めています。

まずは、初級のブロックプログラミングで学習したプログラム3大要素「順次処理」「繰り返し」「条件分岐」を、改めてテキストプログラミングとして学びます。
8x9craftならではの「同じ目的を、違うプログラミング言語で実現」を活かして、「あ!英語(テキスト)になったからと言っても、
ブロックプログラミングとプログラムの流れは変わらないのか!」という感覚をしっかりと体験します。

その後、さらに本格的なプログラミングの文法や考え方を実践を通して身につけていきますが、
淡々と教科書通り的にやっていくのではなく、1つ1つ本質を捉えて問題解決に取り組むカタチになっており、
1つの課題に何時間もかかることもありますが「仮説と検証」「Try&Error」をたくさん経験し、
根気よく粘り強くやれば必ず問題は解決できることを身につけ、チャレンジすることを恐れない心を育んでもらえるようにしています。
また、プログラミングなどの制作作業はチームワークが大事になってくることなどを伝え、
コミュニケーションの大事さをプログラミングを通して学びます。これはきっと将来プログラマー以外のお仕事にも活かされていくと考えます。

 

 

中級Ⅱコース

《レッスン内容》

【ATC校】
大阪の南港にあるATC校の中級Ⅱコースはゲーム・プログラミングを行っています。
書籍「ゲームを作りながら楽しく学ぶHTML5+CSS+JavaScriptプログラミング」を教科書にしてJavaScript言語を用いWebブラウザ上で動くゲームをプログラミングします。
教科書にはレトロなゲームが10作品あり、ゲームを実現する上で必要な基礎知識を習得しながらプログラミングしていきます。現在は8作品まで作成している生徒がでてきました。

《狙い・成果》
JavaScriptからHTML文書を操作するDOMという概念を学び様々な実装方法を学んでいます。
また、HTML5のCanvasを用いてゲームのグラフィック描画方法を習得していきます。
作成した作品は、JavaScriptのプログラムを含んだHTMLファイル、表示のためのCSSファイル、画像ファイルで構成されますが、それらをWebサーバに配置(デプロイ)して公開し、みんなでゲームできるようにしています。
自分のパソコンでの動作だけでなく、Webサーバに配置するスキルも必要です。
ゲームを楽しく作りながら、Webサービスに必要な概念と記述方法を習得しています。