Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
教える側が知らないプログラミングの3つのこと
Naoki Kishida
March 26, 2022
Programming
7
14k
教える側が知らないプログラミングの3つのこと
2022/3/25に行われた「第一回プログラミング教育について話し合う会」でのLT資料です。
https://opt.connpass.com/event/240392/
Naoki Kishida
March 26, 2022
Tweet
Share
More Decks by Naoki Kishida
See All by Naoki Kishida
Javaの入門が終わったら何の勉強をすればいいの? / what should we study after language
kishida
6
43k
Java初心者が知っておくべきプログラミングのこと - JJUG CCC 2022 Spring
kishida
5
840
脱オブジェクト指向講座(5分LT資料)
kishida
9
12k
プロになるJavaでチート能力を手にして完全勝利
kishida
0
810
Java 18新機能とJava 19以降に入りそうな機能
kishida
1
710
Java 2021
kishida
1
830
Java16新機能-言語とAPIを中心に- / Java 16 new features - about lang and API -
kishida
7
2.4k
Alpine対応のJava16で最小Docker Imageをつくる / Make minimum Docker Image with Java 16 on Alpine
kishida
0
940
Javaが最強JVM言語になる日はくるのか / Will Java become strongest JVM language
kishida
2
3k
Other Decks in Programming
See All in Programming
Swift Concurrency in GoodNotes
inamiy
4
1.3k
Hono v3 - Do Everything, Run Anywhere, But Small, And Faster
yusukebe
4
120
中小企業開発事例から見るサーバーレス
seike460
PRO
4
1.5k
Circuit⚡
monaapk
0
200
フロントエンドで学んだことをデータ分析で使ってみた話
daichi_igarashi
0
170
Qiita Night PHP 2023
fuwasegu
0
830
10年以上続くプロダクトの フロントエンド刷新プロジェクトのふりかえり
yotahada3
2
300
jq at the Shortcuts
cockscomb
1
390
Azure Functionsをサクッと開発、サクッとデプロイ/vscodeconf2023-baba
nina01
1
320
(新米)エンジニアリングマネージャーのしごと #RSGT2023
murabayashi
9
5.4k
なぜRubyコミュニティにコミットするのか?
luccafort
0
300
はてなリモートインターンシップ2022 インフラ 講義資料
hatena
4
2.1k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
Designing for humans not robots
tammielis
245
24k
How GitHub (no longer) Works
holman
298
140k
Gamification - CAS2011
davidbonilla
75
4.1k
Facilitating Awesome Meetings
lara
33
4.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
240
11k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
29
7.8k
KATA
mclloyd
12
9.7k
Practical Orchestrator
shlominoach
178
8.9k
Keith and Marios Guide to Fast Websites
keithpitt
407
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Transcript
教える側が知らない プログラミングの3つのこと 2022/3/25 第一回プログラミング教育について話し合う会 LINE Fukuoka きしだ なおき
テーマ • プログラミング教育を考えるときは 教育の勉強もしておきましょう • 既出なので「上手な教え方の教科書」 も読みやすいのでおすすめします
プロになるJava • プロになるのだ! • Javaでプログラミングの 勉強をする本 – Not 「Javaの勉強をする本」 •
etc. floatやlongは扱ってない • あと、オブジェクト指向をdisる本です – オブジェクト指向が、いかに現代のJavaで使えないか書いてます – オブジェクト指向は現代的プログラミングに対応できない (この話すると3日くらいかかるので略。プロJavaのP337読んで) – そろそろみんな(とくに教える側)オブジェクト指向から卒業しよう • プログラミング教育の場面でしかオブジェクト指向という言葉は出てこない
プロになるJavaの インストラクショナルデザイン • 教える題材の構造ではなく理解の構造にしたがって教える – 教訓3 教える理由をはっきりさせる – 教訓4 成功の基準をはっきりさせる
– 教訓5 標的行動を見せてやらせて確認させる – 教訓9 誤答を教える – 教訓11 学び手を知る – 教訓14 学ばせて、楽しませる 職業プログラマになる Swing 練習問題 JShell 今日の話
3つのこと • テキストを出すのは「プログラム」とは みなされない • 逐次実行がわからない • プログラミング能力は読み書き能力ではない
テキストを出すのは 「プログラム」とはみなされない • できごと – メモ帳+javacでfor文などを教える – Swingでウィンドウを出す – 「プログラムがうごいた!」
• 目にみえる結果重要 – テキスト出力の意味はプログラムを理解しないと わからない – プログラムを理解したいのにプログラムの理解が必要
逐次実行がわからない • 通常目にする文章は状態が一定 – 適切な接続詞があれば順番に依存しない – 推理小説 • 犯人Aという状態を徐々に明らかにしている •
「プログラムが動く」ということがわからない – 目にみえる結果 – REPL – デバッガ
プログラミング能力は 読み書き能力ではない • 書き方読み方を教えただけではダメ – プログラミングの学習は知識の集成ではなく行為の習得 • 文法を教えただけではプログラムは組めない – 「プログラムが動く」ということの理解が必要
• エラーの読み方を教えただけではエラーは読めない – 「プログラムが動かない」ということの理解が必要 • 結局、読み書きができないのではなくプログラムの動きが わかっていない • 自分の動作への反応としての学習が必要 – なのでJShellの入力と実行結果を目にするだけと 実際に動かすときで、情報は変わらないのに理解の実感が違う – 大脳ではなく小脳への学習
まとめ • 教育への理解が必要 – プログラミング教育というときプログラミングの 特殊性に注目しがち。基本は「教育」 • プログラミングを学習することの理解も必要 – 「わからない」の理解が必要
– 文字の読み書きにとらわれすぎない • もちろんプログラミングの理解も必要