Description
「さあ、始めましょう」カテゴリ(CATEGORIES.gettingStarted)にチュートリアルが 1 本しかない(intro-getting-started)。
中学校技術科「双方向性のあるコンテンツ」の授業(8 時間・チャット制作)でワークシートから
**「『さあ、始めましょう』から好きなものを 3 つやってみよう」**と指示したいが、選ぶ対象が 1 本しかないため成立しない。
現状、単機能を学べるチュートリアルが無く、初学者が最初に触るものが
「通信入門 ①②③」(メッシュのチャット制作、meshStep1/2/3)しかない。これは
授業の本題そのもの(ワークシートと内容が重複する)であり、かつ導入としては難しすぎる。
→ 「さあ、始めましょう」に、1 機能 1 本の短いチュートリアルを追加する。
設計方針
- 1 チュートリアル = 1 機能。3〜6 ステップで終わる短いもの
- Lv1 / Lv2 / Lv3 のような段階分けはしない(
chat1Basic1-3 のような形は取らない)。
1 本完結で、順番に依存しない=「好きなものを 3 つ」が成立する
- 対象はブロックの操作(Ruby は既存の
rubyBasics カテゴリが担当)
- 題材は授業で実際に使う機能に絞る(下記の一覧は「双方向性のあるコンテンツ」8 時間単元の
ワークシートで使う機能から逆算したもの)
追加するチュートリアル(提案)
優先度 A = 授業で必須、B = あると有用。
| # |
名前(案) |
学ぶこと |
主なブロック |
優先 |
| 1 |
コスチュームをかえてみよう |
コスチュームタブ/見た目の切り替え |
looks_switchcostumeto looks_nextcostume |
A |
| 2 |
スプライトを 2 つ使ってみよう |
スプライトの追加・選択・それぞれにプログラムを持つこと |
(スプライト操作中心) |
A |
| 3 |
聞いて答えてみよう |
使用者の入力を受け取る |
sensing_askandwait sensing_answer looks_say |
A |
| 4 |
ふきだしで話してみよう |
出力(言う/◯秒言う)と文字の連結 |
looks_say looks_sayforsecs operator_join |
A |
| 5 |
変数をつかってみよう |
入力した値に名前をつけて覚えておく |
data_setvariableto data_variable |
A |
| 6 |
メッセージを送ってみよう |
合図でほかのスプライトを動かす(イベント) |
event_broadcast event_whenbroadcastreceived |
A |
| 7 |
スプライトをクリックして動かしてみよう |
クリックのイベント |
event_whenthisspriteclicked |
B |
| 8 |
音を鳴らしてみよう |
音タブ/音を鳴らす |
sound_play |
B |
| 9 |
もし〜なら で分けてみよう |
条件分岐 |
control_if_else operator_equals |
B |
| 10 |
リストをつかってみよう |
複数のデータをためる |
data_addtolist data_listcontents |
B |
| 11 |
拡張機能を追加してみよう |
「拡張機能を追加」ボタン → メッシュを入れる |
(拡張機能の追加操作) |
B |
| 12 |
ルビータブを見てみよう |
同じプログラムが Ruby でどう書かれるか |
(タブ切り替え) |
B |
全部を一度に作る必要はない。優先度 A の 6 本があれば「好きなものを 3 つ」が成立する。
実装のしかた(既存パターンに合わせる)
参考にする既存実装:
packages/scratch-gui/src/lib/libraries/decks/categories/getting-started.jsx — 追加先
packages/scratch-gui/src/lib/libraries/decks/categories/getting-started.locale.js — 文言(ja / jaHira / en)
packages/scratch-gui/src/lib/libraries/decks/categories/ruby-basics.jsx — 7 本を 1 カテゴリに並べた先例。
setup(起動時のタブ・モード指定)と allowedBlocks(パレットを絞る)の使い方の見本
packages/scratch-gui/src/lib/libraries/tutorial-tags.js — CATEGORIES の定義(新カテゴリは追加不要、既存の gettingStarted に足す)
packages/scratch-gui/src/lib/libraries/decks/index.jsx — ...gettingStarted で集約済み(変更不要)
1 本あたりの作業:
getting-started.jsx の decks にエントリを追加
(name / tags / category: CATEGORIES.gettingStarted / img / nameMessageId / steps)
- サムネイル画像を
decks/thumbnails/ に追加して import
- 各ステップの画像 or GIF を
decks/steps/ に追加し、ja-steps.js / en-steps.js に登録
- 文言を
getting-started.locale.js の ja / jaHira / en に追加(ja と ja-Hira は対で追加する
— .claude/rules/scratch-gui/development.md の i18n 規約)
- 必要なら
allowedBlocks でパレットを絞る(初学者が迷わないようにする)
DoD
背景
中学校技術科「双方向性のあるコンテンツのプログラミングによる問題解決」(8 時間)の
標準ワークシートを作成中で、第 1 時にスモウルビーの基本操作をチュートリアルで練習させる設計にしている。
授業の本題(チャット制作=メッシュ)と重複しない、短い単機能チュートリアルが必要。
Description
「さあ、始めましょう」カテゴリ(
CATEGORIES.gettingStarted)にチュートリアルが 1 本しかない(intro-getting-started)。中学校技術科「双方向性のあるコンテンツ」の授業(8 時間・チャット制作)でワークシートから
**「『さあ、始めましょう』から好きなものを 3 つやってみよう」**と指示したいが、選ぶ対象が 1 本しかないため成立しない。
現状、単機能を学べるチュートリアルが無く、初学者が最初に触るものが
「通信入門 ①②③」(メッシュのチャット制作、
meshStep1/2/3)しかない。これは授業の本題そのもの(ワークシートと内容が重複する)であり、かつ導入としては難しすぎる。
→ 「さあ、始めましょう」に、1 機能 1 本の短いチュートリアルを追加する。
設計方針
chat1Basic1-3のような形は取らない)。1 本完結で、順番に依存しない=「好きなものを 3 つ」が成立する
rubyBasicsカテゴリが担当)ワークシートで使う機能から逆算したもの)
追加するチュートリアル(提案)
優先度 A = 授業で必須、B = あると有用。
looks_switchcostumetolooks_nextcostumesensing_askandwaitsensing_answerlooks_saylooks_saylooks_sayforsecsoperator_joindata_setvariabletodata_variableevent_broadcastevent_whenbroadcastreceivedevent_whenthisspriteclickedsound_playcontrol_if_elseoperator_equalsdata_addtolistdata_listcontents実装のしかた(既存パターンに合わせる)
参考にする既存実装:
packages/scratch-gui/src/lib/libraries/decks/categories/getting-started.jsx— 追加先packages/scratch-gui/src/lib/libraries/decks/categories/getting-started.locale.js— 文言(ja/jaHira/en)packages/scratch-gui/src/lib/libraries/decks/categories/ruby-basics.jsx— 7 本を 1 カテゴリに並べた先例。setup(起動時のタブ・モード指定)とallowedBlocks(パレットを絞る)の使い方の見本packages/scratch-gui/src/lib/libraries/tutorial-tags.js—CATEGORIESの定義(新カテゴリは追加不要、既存のgettingStartedに足す)packages/scratch-gui/src/lib/libraries/decks/index.jsx—...gettingStartedで集約済み(変更不要)1 本あたりの作業:
getting-started.jsxのdecksにエントリを追加(
name/tags/category: CATEGORIES.gettingStarted/img/nameMessageId/steps)decks/thumbnails/に追加して importdecks/steps/に追加し、ja-steps.js/en-steps.jsに登録getting-started.locale.jsのja/jaHira/enに追加(ja と ja-Hira は対で追加する—
.claude/rules/scratch-gui/development.mdの i18n 規約)allowedBlocksでパレットを絞る(初学者が迷わないようにする)DoD
ja/ja-Hira/enの文言が揃っている(ja と ja-Hira は対)npm run lintが 0 エラー・0 警告intro-getting-startedとrubyBasics/meshStep1-3が壊れていないCATEGORIESのキー順に依存)背景
中学校技術科「双方向性のあるコンテンツのプログラミングによる問題解決」(8 時間)の
標準ワークシートを作成中で、第 1 時にスモウルビーの基本操作をチュートリアルで練習させる設計にしている。
授業の本題(チャット制作=メッシュ)と重複しない、短い単機能チュートリアルが必要。