【公開】Python研修_段階別つまずき対応ハンドブック

-- Views

April 27, 26

スライド概要

基礎教養レベルの学習支援

profile-image

何卒よろしくお願い申し上げます。 一流のIT研修講師を目指し、日々研鑽を続けております。 本資料は外部公開用としてご提供するものです。 ALJ Education Plus 株式会社 Yukiko(※趣味枠アカウント)

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Python研修 段階別つまずき対応ハンドブッ ク 入門期と実装期で、ハマる場所もサポートの仕方も別物 対象 Python研修講師/サブ講師/新人OJT担当/メンター 環境構築 / 基礎文法 / 関数・データ構造 / 仮想環境 / OOP / 実装課題

2.

01 / 10 講師の基本姿勢 介入レベルの4段階 一言でいうと 「すぐ答える」ではなく、段階的に介入する Lv 介入度 講師の動き 1 最小 「エラーの最初の1行を声に出して読んでみて」 2 弱 「○○行目あたり見てみて」で範囲を絞る 3 中 一緒に画面を見て、質問形式で誘導 4 強 答えを示す + 必ず「なぜ」を本人に説明させる TIMEBOX 研修1ヶ月目は 15〜20分自走 を目安に介入。「詰まる経験」と「詰まりっぱなし」は別物。20分超えたらLv.2〜3に切り替え。 Python研修 段階別つまずき対応ハンドブック

3.

Stage 1 ─ 環境構築・Hello World 02 / 10 文法以前で詰まる ─ 8割が環境問題 一言でいうと 料理する前にコンロが点くか確認する段階 WHY ここで30分悩ませても料理は上手くならない。「Python嫌い」を生まないため、Lv.3〜4の手厚さで早期解決し、文法学習に進ませ る。 WHAT 典型エラー・つまずき HOW 講師の問い・介入方針 • python: command not found / 'python'は内部コマンド〜 • 「python --version と python3 --version 両方試して」 • PATHが通っていない、python3を使う環境 • • エディタとターミナルのPythonバージョンが違う which python(Mac/Linux)/ where python(Windows ) • VSCodeのインタプリタ設定とシェルのPythonが別物 • 毎回 保存→実行 のリズムを体に染み込ませる • ファイルを保存せずに実行 →「変えたのに反映されな い」 • 介入度 Lv.3〜4 で手厚く、早期解決を優先 • やらかしノートに「OS別の典型ハマり」を蓄積 Python研修 段階別つまずき対応ハンドブック

4.

Stage 2 ─ 基礎文法 03 / 10 「やさしさ」が逆に罠 ─ 動いてしまう誤解 一言でいうと お弁当箱の仕切り(インデント)がないと、唐揚げと白米が混ざる WHY エラーメッセージを「読む習慣」を徹底的につける段階。ここで「読まずに人に聞く」癖がつくと後半が地獄になる。Lv.1〜2中心 。 WHAT 典型エラー・つまずき HOW 講師の問い・介入方針 • IndentationError: expected an indented block • • SyntaxError: invalid syntax(= と == の混同) 「def の中身がどこからどこまでか、Pythonにどう伝え てる?」 • TypeError: unsupported operand type(s) for + • • └ input() の戻り値は必ず str 「等しい」と「代入する」は別の言葉だと体で覚えさ せる • IndexError: list index out of range(0始まり) • type() で型を確認する癖を毎回つけさせる • 「リストの番号、何番から始まる?」を毎回聞く • まずエラー文を声に出して読んでもらう(Lv.1) Python研修 段階別つまずき対応ハンドブック

5.

Stage 3 ─ 関数・データ構造 04 / 10 スコープと参照渡しで脱落者が増える 一言でいうと 現象を体験させてから理屈を説明する WHY 「参照渡しとは〜」を先に説明しても頭に入らない。print を挟んで現象を見せてから理屈に入ると刺さる。Lv.2 中心。 WHAT 典型エラー・つまずき HOW 講師の問い・介入方針 • NameError: name 'xxx' is not defined(スコープ) • 「関数の中と外、Pythonにとっては別の部屋」 • リストのコピー問題(b = a で参照が共有される) • • └ エラーが出ないからこそ厄介 print を挟んで現象を体験 → copy()/deepcopy() を教え る • KeyError: 'xxx'(辞書にキーがない) • 「辞書にそのキーは存在する?」確認の習慣 • タプルとリストの使い分けで詰まる • .get() の使い方も合わせて教える • グローバル変数の多用は早めに矯正 Python研修 段階別つまずき対応ハンドブック

6.

Stage 4 ─ モジュール・仮想環境 05 / 10 「自分の環境」と「実行環境」のズレ 一言でいうと 仮想環境は専用キッチン。料理ごとに調味料を分けて置く WHY 仮想環境は手で何度も作って壊して覚える領域。口頭説明より、わざと壊して直す演習のほうが効く。Lv.2〜3。 WHAT 典型エラー・つまずき HOW 講師の問い・介入方針 • ModuleNotFoundError: No module named 'xxx' • 「いまどの仮想環境にいる? pip list で確認できる?」 • └ 原因①タイポ ②未インストール ③別の仮想環境 • • ImportError: cannot import name 'xxx' 原因3パターンを順に確認させる(タイポ→未導入→別 環境) • └ バージョン違いで関数名が変わった/消えた • 公式ドキュメントの該当バージョンを毎回開かせる • 仮想環境の有効化忘れ(プロンプトに(venv)が無い) • プロンプトに (venv) があるか確認する習慣 • わざと壊して直す演習を組む Python研修 段階別つまずき対応ハンドブック

7.

Stage 5 ─ クラス・OOP 06 / 10 抽象度が上がり、動くが理解していないが増える 一言でいうと 理論先行は逆効果 ─ 小さなクラスをたくさん書かせる WHY OOPは手を動かす量がモノを言う領域。「Userクラス」「商品クラス」など具体題材を多用し、現象を見せてから説明する鉄則を 貫く。Lv.3。 WHAT 典型エラー・つまずき HOW 講師の問い・介入方針 • TypeError: __init__() missing argument: 'self' • 「self はこのインスタンス自身を指す合言葉」 • AttributeError: 'User' object has no attribute 'xxx' • dir(u) で属性一覧を見せると理解が早い • └ __init__ で定義していない属性は存在しない • 具体題材(User/商品/注文)でクラスを量産させる • クラス変数とインスタンス変数の混同 • 「現象を見せてから説明」の鉄則を貫く • self が「魔法の言葉」のままになる • 理論先行の説明は避ける Python研修 段階別つまずき対応ハンドブック

8.

Stage 6 ─ 実装課題・チーム演習 07 / 10 他人のコードを読むフェーズ ─ エラーが多様化 一言でいうと 講師は「答えを教える人」から「議論のファシリテーター」へ WHY この段階は自走と相互教え合いを最優先。Lv.1〜2 に絞り、講師の役割を切り替える。Pythonエラー以外(Git・環境差)への対応 比重が上がる。 WHAT 典型エラー・つまずき HOW 講師の問い・介入方針 • Git関連のエラー(コンフリクト・push拒否) • requirements.txt / .python-version / 環境変数を扱う • └ Stage 0 として独立で扱うのが理想 • • 他人のコードが動かない(自分のPCでは動いた問題) 「エラー=動かない、遅い=エラー以下じゃない」を 教える • パフォーマンス問題(エラーは出ないが遅い) • 受講生同士の教え合いを誘導する • └ 二重ループ・ループ内DBアクセス • Lv.1〜2 で自走を最優先 • ファシリテーターに役割をシフト Python研修 段階別つまずき対応ハンドブック

9.

NG行動 08 / 10 講師がやってはいけないこと 一言でいうと 一度学習機会を奪うと、次から質問が来なくなる WHY 講師の何気ない動作・反応が新人の質問頻度を直接左右する。質問が減ると詰まりが見えなくなり、後半で取り返しがつかなくな る。 WHAT 典型エラー・つまずき HOW 講師の問い・介入方針 • いきなりキーボードを奪う → 学習機会の強奪 • キーボードは本人の手の上に置かせたまま • 「そんなのも分からないの?」系の反応 • 質問の入り口は「いい質問だね」で開く • └ 以後質問が来なくなる • 解決後に必ず「次同じこと起きたら?」を聞く • 答えだけ教えて再現方法を教えない • 勘で答えそうなときは「一緒にエラー読もう」 • エラーメッセージを読まずに勘で答える • 基礎が抜けたら戻る勇気を持つ • 段階を飛ばして応用を教える Python研修 段階別つまずき対応ハンドブック

10.

09 / 10 チェックリスト 段階に合わせた介入ができたか 一言でいうと Stage によって介入度を変える ─ 一律にしない WHY Stage 1 と Stage 6 で同じトーンで対応していると、受講生は伸びない。各段階で「今どの介入度を使うべきか」を意識する。 WHAT 典型エラー・つまずき HOW 講師の問い・介入方針 • Stage 1(環境):Lv.3〜4で早期解決 • □ いま何 Stage か、自分で言える • Stage 2(基礎):Lv.1〜2でエラーを読ませる • □ その Stage に合った介入度を選んだ • Stage 3(関数・データ):Lv.2 で現象先行 • □ 段階ヒント Lv.1 → Lv.4 を順に踏んだ • Stage 4(仮想環境):Lv.2〜3 で壊して直す • □ 解決後「なぜ」を本人に説明させた • Stage 5(OOP):Lv.3 で量を書かせる • □ やらかしノートに1行残した • Stage 6(実装):Lv.1〜2 でファシリテート • □ 表情・しぐさをフラットに保った Python研修 段階別つまずき対応ハンドブック

11.

まとめ ─ 講師の最終ゴール 10 / 10 受講生がこう言えれば、研修は成功 一言でいうと エラー対応を「学習機会」に変換できているか " KeyError が出ました。辞書にこのキーが無いみたいなので、いま .get() に書 き換えるか、事前チェック入れるか考えてます。 — 研修終了時の理想の発言 この一言に含まれる3要素 ① 状況把握 ② 原因仮説 ③ 対処選択 エラー名と意味を自分の言葉で言えている 何が起きているかの仮説を持っている 複数の対処を比較して選ぼうとしている Python研修 段階別つまずき対応ハンドブック