プログラミングコース / コンピュータサイエンスの基礎
プログラミングの、
その奥にある「考え方」へ。
アメリカの幼稚園〜高校で学ぶコンピュータサイエンス教育(K-12)をベースに、8x9東京が構築したカリキュラムです。
Scratch で基礎をひとまわりしたら、JavaScript でアルゴリズムやシステムの考え方へ。マイクラの「ペット」を相棒に学びます。
WHY COMPUTER SCIENCE
書き方より先に、考え方を。
プログラミング言語は、数年で流行りが変わります。けれど「問題を分解する」「手順を考える」「データを整理する」「間違いを見つけて直す」といったコンピュータサイエンスの考え方は、どの言語にも、どの時代にも通用します。
このカリキュラムは、アメリカで幼稚園から高校までの段階に合わせて整理されているコンピュータサイエンス教育(K-12)をベースに組み立てました。
思いつきで題材を並べるのではなく、何を、どの順番で身につけるかを体系立てて学びます。
体系的に学ぶ
順次・ループ・条件分岐・変数・関数・デバッグ。CS の基礎になる概念を、決まった順番でもれなく身につけます。
同じ相棒で、言語を上がる
Scratch でも JavaScript でも、動かすのは同じマイクラのペット。慣れた世界のまま、本物の言語へ進めます。
アルゴリズムまで届く
探索・ソート・再帰・グラフ探索、通信と暗号、エージェント。大学で学ぶような内容にも、手を動かしながらふれます。
FROM THE TEXTBOOK
実際の教材から
ペットマスターでは Scratch のブロックで、真のマスターでは JavaScript で、マイクラの中のペットを動かします。
ブロックで、迷路を進むアルゴリズム
「前にブロックがあれば右を向く。なければ前に進む」。くりかえしと条件分岐を組み合わせるだけで、ペットが自分で迷路を進みはじめます。うまく抜けられない迷路があれば、なぜかを考えて直します。
自分で自分を呼ぶ関数で、木を建てる
幹を建てたら、左右の枝として自分自身をもう一度呼び出す。十数行のコードが、マイクラの中で枝分かれする木になります。
function drawTree(x, y, z, depth, height) {
if (depth <= 0) {
entity.setBlock(x, y, z, "absolute", "oak_leaves") // 葉っぱ
return
}
// 幹を描く
for (let i = 0; i < height; i = i + 1) {
entity.setBlock(x, y + i, z, "absolute", "oak_log")
}
// 左の枝(再帰!)
drawTree(x - depth, y + height, z, depth - 1, height - 1)
// 右の枝(再帰!)
drawTree(x + depth, y + height, z, depth - 1, height - 1)
}
CURRICULUM 1 / Scratch
ペットマスターへの道
— 12ステップで、CSの基礎をひとまわり。
hackCraft2 の Scratch ブロックで、マイクラの「ペット」に命令を出します。
順次・アルゴリズム・くりかえし・条件分岐・変数・関数・デバッグ。コンピュータサイエンスの基礎を、ミッションをクリアしながら一つずつ身につけます。
2ステップごとに「見習い → ブロンズ → シルバー → ゴールド → プラチナ → マスター」とランクが上がり、最後に「ペットマスター」の称号を獲得します。
順番に命令する
ステップ 1〜2- 01ペットに命令しよう順次
命令は上から順番に実行される(順次実行)
- 02ブロックを届けようアルゴリズム
いきなり書かずに、まず手順を考える(アルゴリズム)
くりかえす
ステップ 3〜4- 03くりかえしのちからループ
少ないブロックで大きな建築をする(ループ)
- 04パターンを描こうパターン認識
繰り返しの中に繰り返し。規則性を見つけ、分解する
まわりを調べて判断する
ステップ 5〜6- 05まわりを調べよう条件分岐
ペットに「目」を与え、壁があるかで動きを変える
- 06迷路チャレンジアルゴリズム
どんな迷路でも抜けられるアルゴリズム(右手法)
データを覚える
ステップ 7〜8- 07数を覚えよう変数
変数でペットに数を数えさせる
- 08データで動きを変えようデータ
数字を変えるだけで、建築が変わる(パラメータ)
部品にする
ステップ 9〜10- 09マイブロックを作ろう関数
自分だけの命令でプログラムをすっきりさせる
- 10パーツを組み合わせよう抽象化
引数つきのマイブロックで、サイズ自由自在のパーツに
直して、組み上げる
ステップ 11〜12- 11バグを見つけようデバッグ
壊れたプログラムを受け取って、間違いを直す
- 12自動農場を作ろう総合
ここまでの全部を使った最終ミッション
CURRICULUM 2 / JavaScript
JavaScriptによる真のマスターへ
— 20ステップで、CSの実践へ。
ブロックを並べるのは卒業。hackCraft2 で JavaScript を書き、ペットを動かします。
文法やデータの扱いから、探索・ソート・再帰・グラフ探索といったアルゴリズム、イベント駆動や非同期処理、通信と暗号、そして自律して動くエージェントまで。
ペットマスターで身につけた考え方を、本物のプログラミング言語で深めるコンピュータサイエンス実践編です。
文法の基本
ステップ 1〜5- 01はじめてのコード文法
ブロックからテキストのプログラムへ
- 03条件分岐を書こう条件分岐
if / else でペットに頭脳を
- 05関数を作ろう関数
function で自分だけの命令をつくる
データを扱う
ステップ 6〜9- 07オブジェクトとJSONデータ構造
バラバラの変数を、まとまったデータに
- 09ファイルとデータ解析データ
CSV のデータを読み込んで解析する
アルゴリズム
ステップ 10〜14- 10探索アルゴリズム探索
線形探索と二分探索、どっちが速い?
- 11ソートアルゴリズムソート
ブロックの柱を低い順に並べ替える
- 12再帰関数再帰
自分で自分を呼ぶ関数で、フラクタルの木を建てる
- 14スタック・キューとDFS/BFSグラフ探索
迷路探索対決。最短経路はどっちで見つかる?
動くシステム
ステップ 15〜18- 15イベント駆動プログラミングイベント
チャットで話しかけると反応するペット
- 16非同期処理非同期
待つ?待たない?タイマーで時限式建築
- 17ペット間通信通信
ペット同士でメッセージを送り合って協力する
- 18暗号と通信セキュリティセキュリティ
シーザー暗号で秘密のメッセージを守る
エージェント
ステップ 19〜20- 19エージェントパターンエージェント
状態マシンで、巡回・追跡・逃走する AI ペット
- 20マルチエージェント制作 + 発表総合
複数のペットが協力するシステムを設計・実装・発表
IN THE REAL WORLD
この考え方が、使われている場所
カリキュラムで学ぶ考え方は、身の回りのあちこちで動いています。
地図アプリの道案内
「どの道を通れば一番近い?」を探すのは、迷路探索で学ぶグラフ探索(DFS / BFS)の考え方です。
ネットのお買い物やメッセージ
やりとりする内容は、暗号で守られています。シーザー暗号は、そのしくみへの入口です。
ゲームの敵キャラクター
巡回する・追いかける・逃げる。状態を切り替えて動く「状態マシン」は、エージェントのステップで実際につくります。
家電やロボット
センサーでまわりを調べて、動きを変える。ペットに「目」を与えて条件分岐させるのと同じしくみです。
OTHER TRACKS
プログラミングコースの、ほかの道
プログラミングコースには、興味に合わせて選べる4つの道があります。どの道から始めるかは、体験レッスンでお子さまの様子を見ながらご相談ください。
FOR PARENTS
保護者の方へ
プログラミングがはじめてでも大丈夫ですか?
はい。最初の「ペットマスターへの道」は Scratch のブロックで進むので、キーボードでコードを書いたことがなくても始められます。ブロックで考え方を身につけてから、JavaScript に進みます。
K-12 とは何ですか?
アメリカで、幼稚園(Kindergarten)から高校3年生(12th grade)までの学校教育を指す言葉です。この段階に合わせて、コンピュータサイエンスで何を学ぶかが整理されています。8x9東京のカリキュラムは、この考え方をベースに構築しています。
どのコースで受けられますか?
プログラミングコース(小学校高学年〜・月2回・90分)で取り組みます。どの道から始めるか、どこまで進むかは、お子さまの興味と進み具合に合わせて講師と決めていきます。まずは無料体験レッスンでご相談ください。