665 Views
February 21, 18
スライド概要
2018/02/10(日) 旭川藤女子高等学校で開かれた,北海道高等学校教育研究会情報部会キャラバン研究会(旭川) で使用した資料です.
詳細は → https://bitbucket.org/tomio2480/chaser_python/src/default/
tomio2480 です
U-16 プログラミング コンテスト CHaserを利用したプログラミング指導 北海道富良野緑峰高等学校 電気システム科 西原翔太
略歴 • 1991年 誕生 • 旭川市立緑が丘中→旭川工業高→北見工大 • 旭工>情報技術科,北見工大>電気電子工学科 • 電子回路製作,プログラミング,生体医工学 • 草の根的な勉強会活動 • 北見 : Ohotech (おほてく) • 旭川 : ゆるい勉強会 • 富良野 : FuraIT (ふらいと)
https://bitbucket.org/tomio2480/ohotech-pie
https://bitbucket.org/tomio2480/ohotech-pie
http://www.furanoryokuho.hokkaido-c.ed.jp/
https://furait.connpass.com/
https://furait.connpass.com/event/76079/
https://furait.connpass.com/event/78789/
https://furait.connpass.com/event/39702/
https://furait.connpass.com/event/39702/
https://www.slideshare.net/tomio2480
U-16 プログラミング コンテスト 旭川で始まった「技術好きの子供を褒める」場所
http://www.procon-asahikawa.org/
https://www.ajitep.org/
https://www.ajitep.org/
https://www.ajitep.org/
http://procon.kushi.ro/
http://procon.kushi.ro/
https://www.bcnretail.com/market/detail/20170303_42403.html
https://www.bcnretail.com/market/detail/20180115_47284.html
https://www.bcnretail.com/market/detail/20180115_47284.html
http://procon.kushi.ro/
https://furait.connpass.com/event/73691/
Facebook : ふらのみらいらぼ
実習 ・話が長い人は嫌われる ・教員は話が長い
1. 事前知識 1.1. Python の基本構文 マスター済みにより割愛 1.2. U16プログラミングコンテストのルール 旭川高専の本科生が作ってくれました 1.3. 選手を導くルーティーン
1.3. 選手を導くルーティーン • 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • 運動会の「プログラム」は別物? • プログラミングは「パソコン必須」? • 1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • 躓いた時に心の支えとなる「初心にかえる」
1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • それは「コーディング」 • 運動会の「プログラム」は別物? • 一緒 • プログラミングは「パソコン必須」? • 動かすなら欲しいけど,組むだけなら「脳」のみ
1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • それは「コーディング」 • 運動会の「プログラム」は別物? • 一緒 • プログラミングは「パソコン必須」? • 動かすなら欲しいけど,組むだけなら「脳」のみ プログラミング = 作業手順の確定
1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • それは「コーディング」 地の利がある自陣に 持ち込む • 運動会の「プログラム」は別物? ↓ • 一緒 最も慣れている手法 を用いる • プログラミングは「パソコン必須」? • 動かすなら欲しいけど,組むだけなら「脳」のみ プログラミング = 作業手順の確定
1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • プログラミング → コーディング を意識させる • コーディングはとにかく写経から • 新しいことをやるために基礎を固めて「つかまる」 • 躓いた時に心の支えとなる「初心にかえる」 • このときに最初がいい加減だと腐る • 偶然立ち歩き出身赤子 vs つかまり立ち出身赤子
1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • プログラミング → コーディング を意識させる • コーディングはとにかく写経から • 新しいことをやるために基礎を固めて「つかまる」 • 躓いた時に心の支えとなる「初心にかえる」 • このときに最初がいい加減だと腐る • 偶然立ち歩き出身赤子 vs つかまり立ち出身赤子 早く自力で歩かせないとこちらが疲れる
1.3. 選手を導くルーティーン • 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • 運動会の「プログラム」は別物? • プログラミングは「パソコン必須」? • 1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • 躓いた時に心の支えとなる「初心にかえる」
1.3. 選手を導くルーティーン • 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • 運動会の「プログラム」は別物? • プログラミングは「パソコン必須」? • 1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • 躓いた時に心の支えとなる「初心にかえる」 実際の指導に置き換えると……
1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • • • • 与えられた課題をクリアする手順を考えさせる 1対1対応でサンプルコードを当てはめてさせる 1行ごとに一字一句違わずに書けたか確認させる 思い通りに動いたか手順から確認させる
1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • • • • 与えられた課題をクリアする手順を考えさせる 1対1対応でサンプルコードを当てはめてさせる 1行ごとに一字一句違わずに書けたか確認させる 思い通りに動いたか手順から確認させる 「思い通りに動く」わけではない 「書いた通りに動く」 ということを体で分からせる
1.3. 選手を導くルーティーン 表現する言語の習得 • 導入段階 : 思い通りに書く訓練 • • • • 与えられた課題をクリアする手順を考えさせる ↓ 1対1対応でサンプルコードを当てはめてさせる 1行ごとに一字一句違わずに書けたか確認させる コーディング技術 思い通りに動いたか手順から確認させる 「思い通りに動く」わけではない 「書いた通りに動く」 ということを体で分からせる
1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • • • • 与えられた課題をクリアする手順を考えさせる 1対1対応でサンプルコードを当てはめてさせる 1行ごとに一字一句違わずに書けたか確認させる 思い通りに動いたか手順から確認させる • 自己学習段階 : 折り合いをつけさせる訓練 • コードを膨らませると何処かで歪む • 変数の破壊的代入による脳内デバッグとの差異 • まとめた方 or 分けた方がいいところが曖昧になる
1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • 与えられた課題をクリアする手順を考えさせる 慣れるとコーディングに偏りがち • 1対1対応でサンプルコードを当てはめてさせる プログラミングをおざなりにさせない • 1行ごとに一字一句違わずに書けたか確認させる • 思い通りに動いたか手順から確認させる • 自己学習段階 : 折り合いをつけさせる訓練 • コードを膨らませると何処かで歪む • 変数の破壊的代入による脳内デバッグとの差異 • まとめた方 or 分けた方がいいところが曖昧になる
1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • • • • 与えられた課題をクリアする手順を考えさせる 1対1対応でサンプルコードを当てはめてさせる 1行ごとに一字一句違わずに書けたか確認させる 思い通りに動いたか手順から確認させる
2. 基礎実習 – 課題 • 課題群 1 – 移動 (上から順に進化させていく) • • • • • • 時計回り (上,左,下,右) 大きく時計回り (各方向 5 回ずつ) 壁があったらとりあえず上にLOOKする 壁があったら即,次の方向に切り替える 壁に当たるまで進み続け,壁で方向転換 10 % の確率で壁に当たらずとも方向転換する
2. 基礎実習 – 課題 • 課題群 1 – 移動 (上から順に進化させていく) • • • • • • 時計回り (上,左,下,右) 大きく時計回り (各方向 5 回ずつ) 壁があったらとりあえず上にLOOKする 壁があったら即,次の方向に切り替える 壁に当たるまで進み続け,壁で方向転換 10 % の確率で壁に当たらずとも方向転換する 戦略,手順を用意して コーディングに集中させるねらい
2. 基礎実習 – 課題 • 課題群 1 – 移動 (上から順に進化させていく) • • • • • • 時計回り (上,左,下,右) ベタ書き 大きく時計回り (各方向 5 回ずつ) ベタ → for 壁があったらとりあえず上にLOOKする 変数,if-else 壁があったら即,次の方向に切り替える break 壁に当たるまで進み続け,壁で方向転換 while 10 % の確率で壁に当たらずとも方向転換 random 戦略,手順を用意して コーディングに集中させるねらい
2. 基礎実習 – 課題 • 課題群 2 – 戦える移動クライアントを作る • 課題群 1 の成果を改造し敵と対峙したときに倒す • そのために自分の脆弱性を洗い出す • 「負け」条件をありったけ書き出させる • 「勝てる状況」を書きださせる • そのすべてに優先順位をつけて並べさせる
2. 基礎実習 – 課題 • 課題群 2 – 戦える移動クライアントを作る • 課題群 1 の成果を改造し敵と対峙したときに倒す • そのために自分の脆弱性を洗い出す • 「負け」条件をありったけ書き出させる • 「勝てる状況」を書きださせる • そのすべてに優先順位をつけて並べさせる コードに慣れた状態を作って コードも意識しながら戦略を立てさせる
3. 応用実習 • 負けないクライアントが土台になる • アイテムをたくさん取っても死んではどうもならん • これを壊さないように進化させよう • アイテムを効率的に回収するには? • 敵を見つけ出してやっつけるには? • マップ内を無限ループしないためには? • 持っているマップ情報をどう活用するか
4. 戯言 • U-16プロコンを使い倒してほしい • 情報技術への入り口として簡単な目標が与えられる • 各地域で同じプラットフォームで戦う面白さ • 野球,サッカー,吹奏楽などなども一緒 • 実力と運の混合率がいい塩梅で博打っぽさも…… • 一発逆転!が人の心を飲み込んでいく • ただ,U-16プロコンだけで終わってほしくない • これを機会に自分の見つけた課題や目標に生かそう • 広い世界の入り口につま先が入ったくらい
4. 戯言 勉強会もいいぞ • U-16プロコンを使い倒してほしい • 情報技術への入り口として簡単な目標が与えられる [旭川,富良野,札幌, • 各地域で同じプラットフォームで戦う面白さ 釧路,千歳,室蘭, • 野球,サッカー,吹奏楽などなども一緒 函館,北見,恵庭, • 実力と運の混合率がいい塩梅で博打っぽさも…… • 一発逆転!が人の心を飲み込んでいく 小樽,美瑛] • ただ,U-16プロコンだけで終わってほしくない などなど • これを機会に自分の見つけた課題や目標に生かそう • 広い世界の入り口につま先が入ったくらい 「技術をおもちゃに」みんなで遊ぼう