💡
人間のための勉強法:「質問生成」
質問生成
何かを勉強するとき、試験などの質問に答えられない限り、内容を理解したとは言い難い。言い換えれば、勉強している内容に対してあり得る”全て”の質問に答えることができれば、その内容を理解したことになる。したがって、質問を収集したり、生成したりすることは非常に重要だ。
いい質問と悪い質問
大雑把にいうと、「悪い質問」とは情報への理解を求めない、あくまで情報の表面的な部分にこだわる質問だ。
いい質問は逆に概念を詳しく調べさせるような質問だ。
次の例をご覧ください:設定:「おいしい」という概念を理解したい。
悪い質問:「おいしい」にはいくつの文字があるんですか?
言うまでもないが、この質問の正解が分かったとしても、「おいしい」の意味なんて全くわからない。では、「『おいしい』の定義は?」のような質問はどうだろう。確かに「おいしい」の概念に対する理解を求めているので悪くはないが、「おいしい」のどの部分を説明すればいいのか明白にしていないため、特に良くもないと考える。
まあまあな質問:「おいしい」とはどういう意味?
よりいい質問を作るには、「おいしい」の概念を深掘りしないといけない。
いい質問:「おいしい」の類義語をいくつか挙げてください。
いい質問:「おいしい」の対義語はなんですか?
いい質問:「おいしい」がよく使われる場面の例を考えてください。
いい質問:自分の好物を食べるとき、「おいしい」は使えますか?
上記の例のように、「いい」質問は以下の内容を求める:
- 他の概念との類似点:「AとBはどう似ている」、「Aに似ている概念はどれですか?…」、など
- 他の概念との相違点:「AとBのどこは違う」、「Aと違う概念はどれですか?…」、など
- 概念の例:「Aの例を挙げてください」、「次の〇〇から、Aの例になるものを示してください」、など
- 自分の経験との関係:「あなたの経験では、Aはいつ起こる?」、「あなたがAを使った時の例を考えてください」、など
- 試験で実際に出る問題
例
Rustのライフタイム:
- ライフタイムの訳語はなんですか?
- ライフタイムというと、プログラムのどの部分の「ライフタイム」を意味しますか?
- ライフタイムの対となる言語機能はなんですか?
- ライフタイム上の問題を起こす一番シンプルなコードを考えてください。
- ライフタイム機能がなければ、どのような問題が起こり得ますか。
- …
データベース正規化:
- 次のテーブルは正規化されましたか。
- データが正規化されていないとどのトラブルが発生しやすくなりますか。
- 「第2正規化」と「第3正規化」はどう違いますか。(またはどう似ていますか)
- あなたの経験でデータの正規化はいつ行われますか。
- …
まとめ
これで理解を促す質問のセットを手に入れた。どんどん新しい質問を考えることで、さらにわからないところにも気づいたはず。
後は復習するだけだが、勉強時間を一番効率的に費やすための「間隔反復」をおすすめします。
Discussion
使ってみます