1 of 92

意図的な学習につながる仕掛けのつくり方

おーひら(@mohirara)

2022.03.25. Fri

@第一回プログラミング教育について話し合う会

2 of 92

👂音声は聞こえていますか?

👀 画面共有は見えていますか?

「見える&聞こえる」コメントまってます

確認

3 of 92

・スライドは公開しています

・コメントも許可しています

・意見や感想や疑問などはいつでもどうぞ!

📝 スライドURLをチャットに投稿する

共有

4 of 92

意図的な学習をデザインしよう!

主張

5 of 92

2つの主張

1. 意図的な学習をデザインしよう!

2. 教え手のストレスを減らそう!

📝 実際にやっていることを伝えていきます

6 of 92

2つ1つの主張

1. 意図的な学習をデザインしよう! 👈 今回はココ!

2. 教え手のストレスを減らそう! ← 懇親会で!

📝 実際にやっていることを伝えていきます

7 of 92

学び手に対する前提

・大人向けの初学者教育(子供は対象外)

・マンツーマンではない(数人〜30人くらいまで)

・一定期間の学習機会がある(研修など)

・オンライン講義

8 of 92

意図的な学習をデザインしよう!

主張

9 of 92

意図的であれば学習は進む

・意図があると楽しい

・意図があれば質問もしやすい

・意図のない大量試行はとてもつらい

・意図がないと何をやったかよくわからなくなる

10 of 92

意図的な学習のためのポイントは2つ

1. 偶発的な学習をやめる

2. 手数を打てるようにする

11 of 92

意図的な学習のためのポイントは2つ

1. 偶発的な学習をやめる

2. 手数を打てるようにする

12 of 92

自分はどうやって学習してきたか?

うまくいかないことに遭遇して挫折したり、たまたまうまくいったり。なんやかんやで鍛えられてきた。試行回数は多かったと思う。

📝 はじめての挫折はPHPの環境構築!(学習の初手)

13 of 92

言いたいこと

生き残っている俺たちは、偶然出会った多くのエラーを何度も乗り越えて学んできたかもしれない。でも、偶然に期待するばかりでは安定しない。偶発的なものを意図的なものへとデザインしよう。

📝 自分が初心者の分野で考えてみる

14 of 92

で、どうするの?

実際

15 of 92

実際にやっていること

1. 正誤の境界をハッキリさせる

・正答だけでなく誤答も教える

・誤答っぽい正答も教える

・正答っぽい誤答も教える

2. わざとエラーを起こすことを繰り返す

・予想通りに失敗させる

・あたりまえをつくる

16 of 92

実際にやっていること

1. 正誤の境界をハッキリさせる

・正答だけでなく誤答も教える

・誤答っぽい正答も教える

・正答っぽい誤答も教える

2. わざとエラーを起こすことを繰り返す

・予想通りに失敗させる

・あたりまえをつくる

17 of 92

1. 正誤の境界をハッキリさせる

・正答例のみでは汎用的な理解は得られない

・動くコード ↔ 動かないコード

・良い書き方 ↔ 悪い書き方

・何をすべき ↔ 何をすべきではない

18 of 92

境界をハッキリさせる

19 of 92

境界をハッキリさせる

20 of 92

正答例のみでは汎用的な理解は得られない

21 of 92

"まっとうな"正答例のみを増やしても意味は薄い

22 of 92

誤答を教える

23 of 92

境界の"キワ"を攻める

24 of 92

境界の"キワ"を攻める

25 of 92

境界クッキリ!

26 of 92

(時間の限り)サンプルを増やしていく

27 of 92

正誤の4パターン

・正答らしい正答を教える

・誤答らしい誤答を教える

・誤答っぽい正答を教える

・正答っぽい誤答を教える

28 of 92

変数名の文法(Python3)

小さな例

29 of 92

正答らしい正答を教える

30 of 92

誤答らしい誤答を教える

31 of 92

誤答っぽい正答を教える

32 of 92

正答っぽい誤答を教える

33 of 92

境界をハッキリさせる

34 of 92

実際にやっていること

1. 正誤の境界をハッキリさせる

・正答だけでなく誤答も教える

・誤答っぽい正答も教える

・正答っぽい誤答も教える

2. わざとエラーを起こすことを繰り返す

・予想通りに失敗させる

・あたりまえをつくる

35 of 92

2. わざとエラーを起こすことを繰り返す

・「予想通り失敗する」のはよいこと

・「エラーが起こると思ってエラーが起きる」は「うまくいくと思ってうまくいく」と同じ

・エラーメッセージとの付き合い方も伝える

📝 「塩をめっちゃかけたらしょっぱい」のは"あたりまえ"

36 of 92

「エラーは起きてはならない」という"誤解"

・「エラー」という名前からして起きたらマズそうな雰囲気

・指示通りにできない自分を恥じてしまう

📝 (自分もそうだったと思う)

37 of 92

「エラーは手かがり」へ

・情報は増えている

・状況は前進している

・ここに気づけたら勝ち!

・ゲームやパズルと一緒

・数当てゲーム

・Wordle

38 of 92

慣れてくると進んで壊しにいくようになる

・"Checking" から "Testing" へ

・自分のプログラムの破壊を試みる(創造的破壊)

・無限ループをわざと起こす(そしてZoomから消える)

・めちゃくちゃデカい値を突っ込んでみる

・見たこと無いエラーメッセージを探しに行く

📝 ゲームの裏技を色々試した思い出

39 of 92

異なるデータ型の演算(Python3)

小さな例

40 of 92

エラーが起きる例を実行するのは"怖くない"

41 of 92

エラーメッセージとの付き合い方

読む場所を限定する

・一緒に読む

・嬉しい情報が含まれていることを伝えていく

・エラーメッセージだけから原因と対処法を特定する

42 of 92

情報をマスクする

未知の情報が多すぎる

43 of 92

情報をマスクする

読むべき箇所を限定する

44 of 92

情報をマスクする

一緒に読みながら翻訳する

45 of 92

情報をマスクする

一緒に読みながら翻訳する

46 of 92

情報をマスクする

一緒に読みながら翻訳する

47 of 92

情報をマスクする

一緒に読みながら翻訳する

48 of 92

(再掲) 実際にやっていること

1. 正誤の境界をハッキリさせる

・正答だけでなく誤答も教える

・誤答っぽい正答も教える

・正答っぽい誤答も教える

2. わざとエラーを起こすことを繰り返す

・予想通りに失敗させる

・あたりまえをつくる

49 of 92

意図的な学習をデザインしよう!

主張

50 of 92

意図的な学習のためのポイントは2つ

1. 偶発的な学習をやめる

2. 手数を打てるようにする

51 of 92

手数は大事

・狙いがある上で手数をいかに稼ぐか?

📝 闇雲な試行を繰り返すのはイマイチ

52 of 92

タイピング! タイピング! タイピング!

とにかく

53 of 92

いいからタイピングだぁ!

・初心者対象の教育においてはタイピングが超絶重要

・だいたい 2.0keys/s 程度

・一本指打法の人もいるかもしれない

📝 プログラミングが得意な人は 4.0~5.0keys/s くらい?

📝 コメントで聞いてみよう

54 of 92

タイピングを重要視する理由①

・客観的な測定が可能だから(他のスキルは測定や評価が難しい)

・独力で上達させることが可能なスキルだから

・初心者段階では短期間の練習で上達させられるから

55 of 92

タイピングを重要視する理由②

・タイピング力と他のPCスキルの相関が高いから

・タイピングができる => おおよそのPCスキルはある

📝 「WordやExcelが使える」はダメだった...

56 of 92

タイピングを重要視する理由③

・教え手がイライラしたら教育は崩壊する

・とはいえ、イライラしちゃうことはある

・教え手が「待てない」問題

📝 コンビニのレジが遅いとイライラしちゃうのに近い

57 of 92

「Typing Land」がおすすめ!

・「Ozawa-Ken」の開発者であるhigoさん作成のアプリ

・英単語のタイピングを意識しているのも嬉しい

・とっても楽しいUI

📝 https://typingland.higopage.com/jp.html

58 of 92

(参考) アンケート例

59 of 92

(参考) アンケート例

60 of 92

何の話だったっけ?

まとめ

61 of 92

意図的な学習をデザインしよう!

主張

62 of 92

意図的な学習をデザインしよう!

1. 偶発的な学習をやめる

・正答だけでなく誤答も教える

・境界をハッキリさせる

・わざとエラーをおこす

2. 手数を打てるようにする

・タイピング! タイピング! タイピング!

63 of 92

参考文献

巨人の肩

64 of 92

『インストラクショナルデザイン

―教師のためのルールブック』

https://www.amazon.co.jp/dp/4946553193/

・島宗 理(2004)

・教え方について書かれた本

インストラクションの鉄則

📝 URLをチャット欄に貼ろう

65 of 92

Appendix

他の話題

66 of 92

他の話題について

発表に含めなかったことを書いていきます

1. 教え手のストレス対策

2. 良いサンプルを作る方法

3. 学び手を"ダシ"にしているかもしれない不安

📝 意見(賛成or反対)や質問はスライドコメントどうぞ!

📝 懇親会でお話しましょう

67 of 92

教え手のストレス対策

その1

68 of 92

教え手のストレスを下げるべし!

・教え手がイライラしたら教育は崩壊する

・とはいえ、イライラしちゃうことはある

・教え手が「待てない」問題

📝 コンビニのレジが遅いとイライラしちゃうのに近い

69 of 92

教え手のストレス対策の実例

・IDEを使う

・環境差異の吸収、UIが統一される、見かけのツールが1つになる

・GitとGitHubでコード管理や共有を楽にする

・天然エラーの事例収集にもなる

・GitHub Issueは「ただの質問掲示板」

📝 ツール選定基準は「将来も使うかどうか」(本物かどうか)

70 of 92

新規ツール過多問題への対策

・途中からではなく、最初からやる

・学習初期の意欲が最も高い

・導入とサポートを丁寧にする

・文書だけでなく、動画も用意する

・講義が始まる前に「環境構築サポート会」を実施する

・機能をガリッガリに絞る

71 of 92

機能をガリッガリに絞る

・Gitはひたすらコミットするだけ(init, add, commit, push)

・バージョン管理ツールじゃなくて「セーブ方法」

・branchもrebaseもやらない

・GitHub issueは「ただの質問掲示板」

・PRなんてやらない

📝 最近はGitHub Discussionもよさそう

72 of 92

良いサンプルを作る方法

その2

73 of 92

どうやって良いサンプルを作ればええんや?

・規模が大きくなるとサンプルコードが作るのが大変

・特に、良くないコードのサンプルが難しい

・実践していること

・"天然モノ"のコードをせっせと集める

・学び手が起こしたエラーを逃さない

📝 みんなどうやってるんです?

74 of 92

もしかして学び手を"ダシ"にしている?

その3

75 of 92

良かれと思って、やっているけれど...

・俺が教えたいから教えているのかもしれない

・学び手のためになっているか不安になる

・もしかしたら押し付けかもしれない

・最悪ケースは《個人攻撃の罠》に陥る

📝 教え手の成長も大事だと思うけれど...

76 of 92

おわり

おわり

77 of 92

Q&A

Q&A

78 of 92

79 of 92

80 of 92

81 of 92

コメントあつめ

収集

82 of 92

83 of 92

84 of 92

85 of 92

86 of 92

87 of 92

88 of 92

89 of 92

90 of 92

91 of 92

92 of 92