Skip to content

feat(tutorial): Phase 4 - DNCL チュートリアル (基礎 + アルゴリズム + 共通テスト対策) #681

@takaokouji

Description

@takaokouji

概要

Phase 4: 高校生向け DNCL チュートリアルを新設。共通テスト「情報Ⅰ」対策に直結する基礎技能とアルゴリズムを 2 カテゴリ × 計 12 deck で提供する。

設計詳細: docs/tutorial/improvement-plan.md Phase 4 セクション参照。

学習者像

  • 大学入学共通テスト「情報Ⅰ」を受験する高校生
  • 大半は 初めてテキストでプログラミング をする
  • DNCL モードでサンプルプログラムを読めるが、自力で書き上げる経験が乏しい

dnclBasics (基礎技能 6 deck)

Deck ID 内容 DNCL 機能
dncl-basics-1-display 文字や数字を表示する 表示する
dncl-basics-2-variables 変数を使う ← 代入 / = 比較
dncl-basics-3-conditionals もし〜ならば もし ... ならば: / そうでなければ
dncl-basics-4-loops 繰り返す を繰り返す / の間繰り返す: / 増やしながら繰り返す:
dncl-basics-5-arrays 配列を使う 添字、ループとの組み合わせ
dncl-basics-6-functions 関数を定義する NAME(ARGS) を定義する

dnclAlgorithms (アルゴリズム + 試作問題 6 deck)

ictl_example の DNCLv2 サンプル 19 題から共通テスト頻出パターンを抽出:

Deck ID 題材 元サンプル アルゴリズム概念
dncl-alg-1-fizzbuzz FizzBuzz サンプル 13 複合条件分岐、剰余
dncl-alg-2-frequency 出現頻度を数える サンプル 10 カウンタ配列、線形探索
dncl-alg-3-caesar シーザー暗号復号 サンプル 11, 12 モジュロ演算、文字配列
dncl-alg-4-binsearch 二分探索 サンプル 19 分割探索 (試作問題頻出)
dncl-alg-5-greedy-coins 硬貨枚数 (欲張り法) サンプル 17 貪欲法、降順反復
dncl-alg-6-trial-exam 試作問題 第2問 (得票配分) サンプル 14〜16 比例配分、最大剰余法

ゴール

DNCL モード自動切替

Phase 2 で導入する setup プロパティを活用:

'dncl-basics-1-display': {
    setup: { tab: 'ruby', rubyMode: 'dncl' },
    // ...
}

deck 起動時に Ruby タブ + DNCL モードに自動遷移するため、利用者は手動切替不要。

画像戦略

DNCL は文字主体なので Monaco エディタの DNCL ハイライト + 実行結果の 2 ペイン構成。1 deck あたり 5〜6 ステップ × 12 deck = 約 70 枚

DoD

  • dnclBasics 6 deck 追加
  • dnclAlgorithms 6 deck 追加
  • DNCL モード自動切替動作
  • 試作問題 第2問 deck の完答コード掲載 (出典明示)
  • 全 step 画像 (~70 枚)
  • locale 3 ファイル更新
  • npm run lint
  • Playwright で全 deck の起動・進行を確認

規模見積もり

dnclBasics で 1 PR、dnclAlgorithms を 2〜3 PR に分割、合計 3〜4 PR、3〜4 週間規模。

親 issue

このタスクは チュートリアル全体拡充 の一環。親 issue は別途作成。

関連資料

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions