Skip to content

feat(scratch-gui): 「さあ、始めましょう」に単機能チュートリアルを追加する #1177

Description

@smalruby3-editor-bot

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.jsx7 本を 1 カテゴリに並べた先例
    setup(起動時のタブ・モード指定)と allowedBlocks(パレットを絞る)の使い方の見本
  • packages/scratch-gui/src/lib/libraries/tutorial-tags.jsCATEGORIES の定義(新カテゴリは追加不要、既存の gettingStarted に足す)
  • packages/scratch-gui/src/lib/libraries/decks/index.jsx...gettingStarted で集約済み(変更不要

1 本あたりの作業:

  1. getting-started.jsxdecks にエントリを追加
    name / tags / category: CATEGORIES.gettingStarted / img / nameMessageId / steps
  2. サムネイル画像を decks/thumbnails/ に追加して import
  3. 各ステップの画像 or GIF を decks/steps/ に追加し、ja-steps.js / en-steps.js に登録
  4. 文言を getting-started.locale.jsja / jaHira / en に追加(ja と ja-Hira は対で追加する
    .claude/rules/scratch-gui/development.md の i18n 規約)
  5. 必要なら allowedBlocks でパレットを絞る(初学者が迷わないようにする)

DoD

  • 優先度 A の 6 本が「さあ、始めましょう」カテゴリに並び、チュートリアル一覧から選べる
  • 各チュートリアルが 3〜6 ステップで完結し、他のチュートリアルに依存しない
  • ja / ja-Hira / en の文言が揃っている(ja と ja-Hira は対)
  • サムネイルとステップ画像が表示される(欠けたリンクがない)
  • npm run lint が 0 エラー・0 警告
  • 既存の intro-getting-startedrubyBasics / meshStep1-3 が壊れていない
  • チュートリアル一覧で「さあ、始めましょう」が先頭カテゴリのまま表示される(CATEGORIES のキー順に依存)

背景

中学校技術科「双方向性のあるコンテンツのプログラミングによる問題解決」(8 時間)の
標準ワークシートを作成中で、第 1 時にスモウルビーの基本操作をチュートリアルで練習させる設計にしている。
授業の本題(チャット制作=メッシュ)と重複しない、短い単機能チュートリアルが必要。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

🤖 autopilotautopilot が処理対象にした Issue/PR(daemon が付与)🧭 trackingsub-issue に分解済みの親(トラッカー)。作業 item から除外

Type

No type

Projects

  • Status
    In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions