授業計画の時間予算
50分の授業で、導入・説明・演習・振り返りのウェイトを1、3、4、2にすると、5分、15分、20分、10分になります。各活動の重みを決めるだけで、合計は必ず授業時間と一致します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 継続時間 (分)
- 50
- 活動数
- 4
- 重みの合計
- 10
- 分
- 5, 15, 20, 10
教員、指導コーチ、カリキュラム基盤は、いつも同じ計画上の問いに直面します。この授業が五十分なら、ウォームアップ、直接指導、ガイド付き練習、イグジットチケットにそれぞれ何分を充てるべきか。相対ウェイトは絶対分数を当てるより意図をよく表します。あるブロックが別の二倍の注意を要するとしても、最終的な分数はまだ決まっていなくて構いません。本授業計画時間予算計算機は、正の合計時間(分)と、非負の相対ウェイトを持つ名前付き活動の順序付き一覧を受け取り、各行に比例した分数を返し、合計が授業の長さに戻るようにします。
比例時間配分の仕組み
授業計画の時間予算は、コマを固定のパイとみなし、各予定活動を絶対分数の当て推量ではなく相対ウェイトで大きさが決まる一切れとして扱います。等しいウェイトは等しい分数を生み、1 の隣に 2 のウェイトがあれば二倍の長さになり、2 と 1 でも 10 と 5 でも同じです。このスケール不変性は、チームがまず優先順位を交渉し、ベル表を後から固定する場合に便利です。
D を四十五から六十に変えても、ウェイトを打ち直さずに各配分が拡大縮小します。名前付きのプレースホルダとして計画に残したいが今回は時間を与えない行にはウェイトゼロが許されます。許されないのはすべてのウェイトがゼロであることであり、ゼロ和での除算は未定義だからです。
負のウェイトは、コマの負の一切れが教室で意味を持たないため拒否されます。比例乗算のあと、浮動小数点の丸めでごく小さな残差が残り、清掃後の分数がちょうど D に合わないことがあります。
活用例
ベル表とブロック計画
コマの長さが変わったとき、相対的な活動ウェイトはそのままに、ウォームアップ・指導・練習・イグジットチケットの分数を再配分します。
コーチングと観察テンプレート
観察フォーム向けに計画分数とパーセントを生成し、コーチが意図した発言時間を時計と比較できるようにします。
よくある質問
活動への分数はどう配分されますか?
等しいウェイトは等しい分数、二倍のウェイトは二倍の時間です。返却分数の合計は総時間に一致します。
活動のウェイトをゼロにできますか?
はい。 ウェイトゼロの行は計画上の名前を残しますが分数はゼロです。すべてのウェイトがゼロなら、ウェイト和がゼロ除算になるため要求は失敗します。
最初から各活動の絶対分数が必要ですか?
いいえ。 相対ウェイトと一つの合計時間を渡せば足ります。後から時間を変えて再実行すれば、計画構造を書き直さずに各活動を拡大縮小できます。
授業時間の長さが変わったらどうなりますか?
ウェイトはそのままで、合計時間だけを変えてください。各活動が同じ比率で伸び縮みするので入力し直す必要はなく、ウェイト2と1は10と5とまったく同じ結果になります。
分数の合計は必ず授業時間と一致しますか?
はい。ウェイトで割るとわずかな端数が出ることがありますが、その端数はウェイトが0より大きい最後の活動に加えられるため、合計は入力した授業時間に必ず戻ります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/edu/lesson-plan-time-budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration_minutes":50,"activities":[{"name":"Warm-up","weight":1},{"name":"Direct instruction","weight":3},{"name":"Guided practice","weight":4},{"name":"Exit ticket","weight":2}]}'const res = await fetch("https://api.kit.forhosting.com/edu/lesson-plan-time-budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration_minutes": 50,
"activities": [
{
"name": "Warm-up",
"weight": 1
},
{
"name": "Direct instruction",
"weight": 3
},
{
"name": "Guided practice",
"weight": 4
},
{
"name": "Exit ticket",
"weight": 2
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/lesson-plan-time-budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration_minutes": 50,
"activities": [
{
"name": "Warm-up",
"weight": 1
},
{
"name": "Direct instruction",
"weight": 3
},
{
"name": "Guided practice",
"weight": 4
},
{
"name": "Exit ticket",
"weight": 2
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/lesson-plan-time-budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration_minutes":50,"activities":[{"name":"Warm-up","weight":1},{"name":"Direct instruction","weight":3},{"name":"Guided practice","weight":4},{"name":"Exit ticket","weight":2}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration_minutes":50,"activities":[{"name":"Warm-up","weight":1},{"name":"Direct instruction","weight":3},{"name":"Guided practice","weight":4},{"name":"Exit ticket","weight":2}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/lesson-plan-time-budget", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"duration_minutes": 50,
"activities": [
{
"name": "Warm-up",
"weight": 1
},
{
"name": "Direct instruction",
"weight": 3
},
{
"name": "Guided practice",
"weight": 4
},
{
"name": "Exit ticket",
"weight": 2
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.lesson_plan_time_budget",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
正でない時間とウェイト合計ゼロは、架空の時間割を作らず invalid_input で失敗します。
比例時間配分の仕組み
duration_minutes が D で活動 i のウェイトが w_i のとき、配分分数は D に w_i を掛けて全ウェイトの和で割った値です。本エンドポイントはその残差を正のウェイトを持つ最後の活動に吸収し、返却される minutes 配列が常に要求時間の分割になるようにします。応答は各活動について share_ratio と percent も報告するため、ダッシュボードはウェイト和を再計算せず同じ分割をグラフ化できます。
入力契約、応答の形、エラーの扱い
並列の minutes 配列は入力順に一致し、数値配分だけが必要なスクリプト向けです。古典的な教室チェックには、ウォームアップ、直接指導、ガイド付き練習、イグジットチケットにウェイト 1、3、4、2 を置いた五十分のブロックがあり、それぞれ 5、15、20、10 分になります。人向けには無料のブラウザフォームを計画ボードに繋ぎ、自動化が同じ数を必要とするときは成績簿やペースガイドのサービスから同一契約を呼び出してください。必須フィールド二つを含む JSON 本体を POST してください。フィールド duration_minutes は、授業の合計長さ(分)を表すゼロより厳密に大きい有限数です。ゼロと負の値はフィールド名付きの invalid_input で失敗します。フィールド activities は空でないオブジェクト配列で、各要素は空でない name 文字列と有限の非負 weight 数を持ちます。この無料 parse 経路では最大百件の活動を受け付けます。欠落フィールド、空の活動一覧、オブジェクトでない行、空白名、非有限数、負のウェイト、ウェイト和ゼロはすべて invalid_input で失敗し課金されません。成功時、本体は duration_minutes をエコーし、activity_count と weight_sum を報告し、index、name、weight、share_ratio、minutes、percent を持つ activities オブジェクト配列を返します。method は weighted_time_budget であり、formula は minutes_i が duration_minutes に weight_i を掛けてウェイト和で割った値であることを再述します。成功した API 呼び出しは公開ベース価格 $0.002 per item を使い、検証失敗はプリペイド残高を消費しません。
授業時間予算 API が役立つ場面
インストラクショナルデザインのチームは、学区がベル表を短縮または延長しても多コマテンプレートが一貫するよう、授業計画時間予算計算機を使います。Ed-tech の開発者は、ゼロ時間、全ウェイトゼロ、残差丸めといった浮動小数点の端ケースを自前で抱え込まずに済みます。同じ相対ウェイトを保ち、新しい duration_minutes で再実行するだけです。コーチングツールはエンドポイントを埋め込み、観察フォームが生徒の発言の計画配分が観察時計と一致したかを、単一の真実源からの percent と minutes で示せるようにします。それらの経路は決定的な invalid_input または残差吸収で既に覆われているからです。
連携の活用例
LMS とペース自動化
成績簿やカリキュラム API から同じ加重時間予算を呼び出し、テンプレートと人の計画者が分数合計で食い違わないようにします。
技術的な質問
授業の合計時間がゼロまたは負の場合は?
タスクは invalid_input で失敗します。duration_minutes はゼロより厳密に大きい有限数である必要があり、正でない合計は課金されません。
授業計画時間予算計算機の料金は?
ブラウザツールは無料です。API 要求は成功した呼び出しごとにプリペイド KIT 残高から $0.002 です。無効入力は課金されません。