SlideShare a Scribd company logo
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プロコンだけで終わってほしくない
• これを機会に自分の見つけた課題や目標に生かそう
• 広い世界の入り口につま先が入ったくらい
「技術をおもちゃに」みんなで遊ぼう
勉強会もいいぞ
[旭川,富良野,札幌,
釧路,千歳,室蘭,
函館,北見,恵庭,
小樽,美瑛]
などなど

More Related Content

Similar to U-16プログラミングコンテスト CHaser を利用したプログラミング指導

High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
cvpaper. challenge
 
Fearless Journeyで組織パターンを学ぶワークショップ
Fearless Journeyで組織パターンを学ぶワークショップFearless Journeyで組織パターンを学ぶワークショップ
Fearless Journeyで組織パターンを学ぶワークショップ
You&I
 
はじめてのテスト技法
はじめてのテスト技法はじめてのテスト技法
はじめてのテスト技法
Tatsuya Saito
 
誰もが研究する時代の到来 〜これからの未来をつくる「野生の研究者」の生態に迫る〜 #smips湯村
誰もが研究する時代の到来 〜これからの未来をつくる「野生の研究者」の生態に迫る〜 #smips湯村誰もが研究する時代の到来 〜これからの未来をつくる「野生の研究者」の生態に迫る〜 #smips湯村
誰もが研究する時代の到来 〜これからの未来をつくる「野生の研究者」の生態に迫る〜 #smips湯村
Tsubasa Yumura
 
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
KazukiNishizono1
 
アウトプットのすすめ
アウトプットのすすめアウトプットのすすめ
アウトプットのすすめ
KoichiHirai1
 
Proof Summit 2012
Proof Summit 2012Proof Summit 2012
Proof Summit 2012
Sosuke MORIGUCHI
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
 
「2Uサーバーを買った話」わんくま同盟 名古屋勉強会 #51 ライトニングトーク資料
「2Uサーバーを買った話」わんくま同盟 名古屋勉強会 #51 ライトニングトーク資料「2Uサーバーを買った話」わんくま同盟 名古屋勉強会 #51 ライトニングトーク資料
「2Uサーバーを買った話」わんくま同盟 名古屋勉強会 #51 ライトニングトーク資料
You&I
 
勉強会旅人のススメ
勉強会旅人のススメ勉強会旅人のススメ
勉強会旅人のススメand hyphen
 
一口で何度もおいしい?DSL
一口で何度もおいしい?DSL一口で何度もおいしい?DSL
一口で何度もおいしい?DSL
You&I
 
What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
Akinori Musha
 
自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)
cvpaper. challenge
 
図書館のDB比較から新たな価値を!
図書館のDB比較から新たな価値を!図書館のDB比較から新たな価値を!
図書館のDB比較から新たな価値を!genroku
 
なぜピリカを作っているか?
なぜピリカを作っているか?なぜピリカを作っているか?
なぜピリカを作っているか?
R. Ayakix
 
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
Kenta USAMI
 
第24回アルゴリズム勉強会資料
第24回アルゴリズム勉強会資料第24回アルゴリズム勉強会資料
第24回アルゴリズム勉強会資料
Yuuki Ono
 
2017/4/25 『小規模開発アジャイル導入の気づき』
2017/4/25 『小規模開発アジャイル導入の気づき』 2017/4/25 『小規模開発アジャイル導入の気づき』
2017/4/25 『小規模開発アジャイル導入の気づき』
voltage_devrel
 
20140822 Swift 勉強会 vol.3 - はぢめての Swift
20140822 Swift 勉強会 vol.3 - はぢめての Swift20140822 Swift 勉強会 vol.3 - はぢめての Swift
20140822 Swift 勉強会 vol.3 - はぢめての Swift
Mori Tetsuya
 

Similar to U-16プログラミングコンテスト CHaser を利用したプログラミング指導 (20)

High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
 
Fearless Journeyで組織パターンを学ぶワークショップ
Fearless Journeyで組織パターンを学ぶワークショップFearless Journeyで組織パターンを学ぶワークショップ
Fearless Journeyで組織パターンを学ぶワークショップ
 
はじめてのテスト技法
はじめてのテスト技法はじめてのテスト技法
はじめてのテスト技法
 
誰もが研究する時代の到来 〜これからの未来をつくる「野生の研究者」の生態に迫る〜 #smips湯村
誰もが研究する時代の到来 〜これからの未来をつくる「野生の研究者」の生態に迫る〜 #smips湯村誰もが研究する時代の到来 〜これからの未来をつくる「野生の研究者」の生態に迫る〜 #smips湯村
誰もが研究する時代の到来 〜これからの未来をつくる「野生の研究者」の生態に迫る〜 #smips湯村
 
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
 
アウトプットのすすめ
アウトプットのすすめアウトプットのすすめ
アウトプットのすすめ
 
OtaQ
OtaQOtaQ
OtaQ
 
Proof Summit 2012
Proof Summit 2012Proof Summit 2012
Proof Summit 2012
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
「2Uサーバーを買った話」わんくま同盟 名古屋勉強会 #51 ライトニングトーク資料
「2Uサーバーを買った話」わんくま同盟 名古屋勉強会 #51 ライトニングトーク資料「2Uサーバーを買った話」わんくま同盟 名古屋勉強会 #51 ライトニングトーク資料
「2Uサーバーを買った話」わんくま同盟 名古屋勉強会 #51 ライトニングトーク資料
 
勉強会旅人のススメ
勉強会旅人のススメ勉強会旅人のススメ
勉強会旅人のススメ
 
一口で何度もおいしい?DSL
一口で何度もおいしい?DSL一口で何度もおいしい?DSL
一口で何度もおいしい?DSL
 
What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
 
自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)
 
図書館のDB比較から新たな価値を!
図書館のDB比較から新たな価値を!図書館のDB比較から新たな価値を!
図書館のDB比較から新たな価値を!
 
なぜピリカを作っているか?
なぜピリカを作っているか?なぜピリカを作っているか?
なぜピリカを作っているか?
 
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
 
第24回アルゴリズム勉強会資料
第24回アルゴリズム勉強会資料第24回アルゴリズム勉強会資料
第24回アルゴリズム勉強会資料
 
2017/4/25 『小規模開発アジャイル導入の気づき』
2017/4/25 『小規模開発アジャイル導入の気づき』 2017/4/25 『小規模開発アジャイル導入の気づき』
2017/4/25 『小規模開発アジャイル導入の気づき』
 
20140822 Swift 勉強会 vol.3 - はぢめての Swift
20140822 Swift 勉強会 vol.3 - はぢめての Swift20140822 Swift 勉強会 vol.3 - はぢめての Swift
20140822 Swift 勉強会 vol.3 - はぢめての Swift
 

More from NISHIHARA Shota

ITコミュニティと情報発信に共通する成長と貢献の要素
ITコミュニティと情報発信に共通する成長と貢献の要素ITコミュニティと情報発信に共通する成長と貢献の要素
ITコミュニティと情報発信に共通する成長と貢献の要素
NISHIHARA Shota
 
茶の間 Co-KoNPILe - 無策を策とする刺激的な場の構築への挑戦
茶の間 Co-KoNPILe - 無策を策とする刺激的な場の構築への挑戦茶の間 Co-KoNPILe - 無策を策とする刺激的な場の構築への挑戦
茶の間 Co-KoNPILe - 無策を策とする刺激的な場の構築への挑戦
NISHIHARA Shota
 
課外活動と地方ITコミュニティをつなげることの効果
課外活動と地方ITコミュニティをつなげることの効果課外活動と地方ITコミュニティをつなげることの効果
課外活動と地方ITコミュニティをつなげることの効果
NISHIHARA Shota
 
with コロナのオンラインイベント運営
with コロナのオンラインイベント運営with コロナのオンラインイベント運営
with コロナのオンラインイベント運営
NISHIHARA Shota
 
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった - さらなる変化
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった - さらなる変化勉強会をオフラインからオンラインに切り替えたらいろいろ変わった - さらなる変化
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった - さらなる変化
NISHIHARA Shota
 
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった勉強会をオフラインからオンラインに切り替えたらいろいろ変わった
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった
NISHIHARA Shota
 
地方ITコミュニティとの関わりに何を求めていたのか
地方ITコミュニティとの関わりに何を求めていたのか地方ITコミュニティとの関わりに何を求めていたのか
地方ITコミュニティとの関わりに何を求めていたのか
NISHIHARA Shota
 
10年にわたり地方ITコミュニティに関わって見えたこと
10年にわたり地方ITコミュニティに関わって見えたこと10年にわたり地方ITコミュニティに関わって見えたこと
10年にわたり地方ITコミュニティに関わって見えたこと
NISHIHARA Shota
 
ちょっとした電源を作ろう
ちょっとした電源を作ろうちょっとした電源を作ろう
ちょっとした電源を作ろう
NISHIHARA Shota
 
Arduinoで二酸化炭素を測ろう
Arduinoで二酸化炭素を測ろうArduinoで二酸化炭素を測ろう
Arduinoで二酸化炭素を測ろう
NISHIHARA Shota
 
ITコミュニティに関する自由研究
ITコミュニティに関する自由研究ITコミュニティに関する自由研究
ITコミュニティに関する自由研究
NISHIHARA Shota
 
コンパレータを使ってみよう
コンパレータを使ってみようコンパレータを使ってみよう
コンパレータを使ってみよう
NISHIHARA Shota
 
Co-KoNPILe #0 - #3 までやってみたまとめ
Co-KoNPILe #0 - #3 までやってみたまとめCo-KoNPILe #0 - #3 までやってみたまとめ
Co-KoNPILe #0 - #3 までやってみたまとめ
NISHIHARA Shota
 
私の思考回路
私の思考回路私の思考回路
私の思考回路
NISHIHARA Shota
 
運営上で配慮している地方コミュニティが与えられるであろう効果について
運営上で配慮している地方コミュニティが与えられるであろう効果について運営上で配慮している地方コミュニティが与えられるであろう効果について
運営上で配慮している地方コミュニティが与えられるであろう効果について
NISHIHARA Shota
 
型と深さを意識する〜コミュニティの実態〜
型と深さを意識する〜コミュニティの実態〜型と深さを意識する〜コミュニティの実態〜
型と深さを意識する〜コミュニティの実態〜
NISHIHARA Shota
 
富良野でもIT系お遊び〜FuraIT(ふらいと)〜
富良野でもIT系お遊び〜FuraIT(ふらいと)〜富良野でもIT系お遊び〜FuraIT(ふらいと)〜
富良野でもIT系お遊び〜FuraIT(ふらいと)〜
NISHIHARA Shota
 
都会とはいいがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜
都会とはいいがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜都会とはいいがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜
都会とはいいがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜
NISHIHARA Shota
 
LOCAL DEVELOPER DAY'16 in FURANO の宣伝
LOCAL DEVELOPER DAY'16 in FURANO の宣伝LOCAL DEVELOPER DAY'16 in FURANO の宣伝
LOCAL DEVELOPER DAY'16 in FURANO の宣伝
NISHIHARA Shota
 
富良野から話しますよ.いいですか.よくきいてください.
富良野から話しますよ.いいですか.よくきいてください.富良野から話しますよ.いいですか.よくきいてください.
富良野から話しますよ.いいですか.よくきいてください.
NISHIHARA Shota
 

More from NISHIHARA Shota (20)

ITコミュニティと情報発信に共通する成長と貢献の要素
ITコミュニティと情報発信に共通する成長と貢献の要素ITコミュニティと情報発信に共通する成長と貢献の要素
ITコミュニティと情報発信に共通する成長と貢献の要素
 
茶の間 Co-KoNPILe - 無策を策とする刺激的な場の構築への挑戦
茶の間 Co-KoNPILe - 無策を策とする刺激的な場の構築への挑戦茶の間 Co-KoNPILe - 無策を策とする刺激的な場の構築への挑戦
茶の間 Co-KoNPILe - 無策を策とする刺激的な場の構築への挑戦
 
課外活動と地方ITコミュニティをつなげることの効果
課外活動と地方ITコミュニティをつなげることの効果課外活動と地方ITコミュニティをつなげることの効果
課外活動と地方ITコミュニティをつなげることの効果
 
with コロナのオンラインイベント運営
with コロナのオンラインイベント運営with コロナのオンラインイベント運営
with コロナのオンラインイベント運営
 
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった - さらなる変化
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった - さらなる変化勉強会をオフラインからオンラインに切り替えたらいろいろ変わった - さらなる変化
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった - さらなる変化
 
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった勉強会をオフラインからオンラインに切り替えたらいろいろ変わった
勉強会をオフラインからオンラインに切り替えたらいろいろ変わった
 
地方ITコミュニティとの関わりに何を求めていたのか
地方ITコミュニティとの関わりに何を求めていたのか地方ITコミュニティとの関わりに何を求めていたのか
地方ITコミュニティとの関わりに何を求めていたのか
 
10年にわたり地方ITコミュニティに関わって見えたこと
10年にわたり地方ITコミュニティに関わって見えたこと10年にわたり地方ITコミュニティに関わって見えたこと
10年にわたり地方ITコミュニティに関わって見えたこと
 
ちょっとした電源を作ろう
ちょっとした電源を作ろうちょっとした電源を作ろう
ちょっとした電源を作ろう
 
Arduinoで二酸化炭素を測ろう
Arduinoで二酸化炭素を測ろうArduinoで二酸化炭素を測ろう
Arduinoで二酸化炭素を測ろう
 
ITコミュニティに関する自由研究
ITコミュニティに関する自由研究ITコミュニティに関する自由研究
ITコミュニティに関する自由研究
 
コンパレータを使ってみよう
コンパレータを使ってみようコンパレータを使ってみよう
コンパレータを使ってみよう
 
Co-KoNPILe #0 - #3 までやってみたまとめ
Co-KoNPILe #0 - #3 までやってみたまとめCo-KoNPILe #0 - #3 までやってみたまとめ
Co-KoNPILe #0 - #3 までやってみたまとめ
 
私の思考回路
私の思考回路私の思考回路
私の思考回路
 
運営上で配慮している地方コミュニティが与えられるであろう効果について
運営上で配慮している地方コミュニティが与えられるであろう効果について運営上で配慮している地方コミュニティが与えられるであろう効果について
運営上で配慮している地方コミュニティが与えられるであろう効果について
 
型と深さを意識する〜コミュニティの実態〜
型と深さを意識する〜コミュニティの実態〜型と深さを意識する〜コミュニティの実態〜
型と深さを意識する〜コミュニティの実態〜
 
富良野でもIT系お遊び〜FuraIT(ふらいと)〜
富良野でもIT系お遊び〜FuraIT(ふらいと)〜富良野でもIT系お遊び〜FuraIT(ふらいと)〜
富良野でもIT系お遊び〜FuraIT(ふらいと)〜
 
都会とはいいがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜
都会とはいいがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜都会とはいいがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜
都会とはいいがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜
 
LOCAL DEVELOPER DAY'16 in FURANO の宣伝
LOCAL DEVELOPER DAY'16 in FURANO の宣伝LOCAL DEVELOPER DAY'16 in FURANO の宣伝
LOCAL DEVELOPER DAY'16 in FURANO の宣伝
 
富良野から話しますよ.いいですか.よくきいてください.
富良野から話しますよ.いいですか.よくきいてください.富良野から話しますよ.いいですか.よくきいてください.
富良野から話しますよ.いいですか.よくきいてください.
 

U-16プログラミングコンテスト CHaser を利用したプログラミング指導

  • 2. 略歴 • 1991年 誕生 • 旭川市立緑が丘中→旭川工業高→北見工大 • 旭工>情報技術科,北見工大>電気電子工学科 • 電子回路製作,プログラミング,生体医工学 • 草の根的な勉強会活動 • 北見 : Ohotech (おほてく) • 旭川 : ゆるい勉強会 • 富良野 : FuraIT (ふらいと)
  • 26. 1. 事前知識 1.1. Python の基本構文 マスター済みにより割愛 1.2. U16プログラミングコンテストのルール 旭川高専の本科生が作ってくれました 1.3. 選手を導くルーティーン
  • 27. 1.3. 選手を導くルーティーン • 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • 運動会の「プログラム」は別物? • プログラミングは「パソコン必須」? • 1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • 躓いた時に心の支えとなる「初心にかえる」
  • 28. 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • それは「コーディング」 • 運動会の「プログラム」は別物? • 一緒 • プログラミングは「パソコン必須」? • 動かすなら欲しいけど,組むだけなら「脳」のみ
  • 29. 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • それは「コーディング」 • 運動会の「プログラム」は別物? • 一緒 • プログラミングは「パソコン必須」? • 動かすなら欲しいけど,組むだけなら「脳」のみ プログラミング = 作業手順の確定
  • 30. 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • それは「コーディング」 • 運動会の「プログラム」は別物? • 一緒 • プログラミングは「パソコン必須」? • 動かすなら欲しいけど,組むだけなら「脳」のみ プログラミング = 作業手順の確定 地の利がある自陣に 持ち込む ↓ 最も慣れている手法 を用いる
  • 31. 1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • プログラミング → コーディング を意識させる • コーディングはとにかく写経から • 新しいことをやるために基礎を固めて「つかまる」 • 躓いた時に心の支えとなる「初心にかえる」 • このときに最初がいい加減だと腐る • 偶然立ち歩き出身赤子 vs つかまり立ち出身赤子
  • 32. 1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • プログラミング → コーディング を意識させる • コーディングはとにかく写経から • 新しいことをやるために基礎を固めて「つかまる」 • 躓いた時に心の支えとなる「初心にかえる」 • このときに最初がいい加減だと腐る • 偶然立ち歩き出身赤子 vs つかまり立ち出身赤子 早く自力で歩かせないとこちらが疲れる
  • 33. 1.3. 選手を導くルーティーン • 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • 運動会の「プログラム」は別物? • プログラミングは「パソコン必須」? • 1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • 躓いた時に心の支えとなる「初心にかえる」
  • 34. 1.3. 選手を導くルーティーン • 1.3.1. 勘違いからの脱却 • print, for, if…… 「覚える」= プログラミング? • 運動会の「プログラム」は別物? • プログラミングは「パソコン必須」? • 1.3.2. 慣れるまでは段取り • 「つかまり立ち」から歩き出す • 躓いた時に心の支えとなる「初心にかえる」 実際の指導に置き換えると……
  • 35. 1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • 与えられた課題をクリアする手順を考えさせる • 1対1対応でサンプルコードを当てはめてさせる • 1行ごとに一字一句違わずに書けたか確認させる • 思い通りに動いたか手順から確認させる
  • 36. 1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • 与えられた課題をクリアする手順を考えさせる • 1対1対応でサンプルコードを当てはめてさせる • 1行ごとに一字一句違わずに書けたか確認させる • 思い通りに動いたか手順から確認させる 「思い通りに動く」わけではない 「書いた通りに動く」 ということを体で分からせる
  • 37. 1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • 与えられた課題をクリアする手順を考えさせる • 1対1対応でサンプルコードを当てはめてさせる • 1行ごとに一字一句違わずに書けたか確認させる • 思い通りに動いたか手順から確認させる 「思い通りに動く」わけではない 「書いた通りに動く」 ということを体で分からせる 表現する言語の習得 ↓ コーディング技術
  • 38. 1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • 与えられた課題をクリアする手順を考えさせる • 1対1対応でサンプルコードを当てはめてさせる • 1行ごとに一字一句違わずに書けたか確認させる • 思い通りに動いたか手順から確認させる • 自己学習段階 : 折り合いをつけさせる訓練 • コードを膨らませると何処かで歪む • 変数の破壊的代入による脳内デバッグとの差異 • まとめた方 or 分けた方がいいところが曖昧になる
  • 39. 1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • 与えられた課題をクリアする手順を考えさせる • 1対1対応でサンプルコードを当てはめてさせる • 1行ごとに一字一句違わずに書けたか確認させる • 思い通りに動いたか手順から確認させる • 自己学習段階 : 折り合いをつけさせる訓練 • コードを膨らませると何処かで歪む • 変数の破壊的代入による脳内デバッグとの差異 • まとめた方 or 分けた方がいいところが曖昧になる 慣れるとコーディングに偏りがち プログラミングをおざなりにさせない
  • 40. 1.3. 選手を導くルーティーン • 導入段階 : 思い通りに書く訓練 • 与えられた課題をクリアする手順を考えさせる • 1対1対応でサンプルコードを当てはめてさせる • 1行ごとに一字一句違わずに書けたか確認させる • 思い通りに動いたか手順から確認させる
  • 41. 2. 基礎実習 – 課題 • 課題群 1 – 移動 (上から順に進化させていく) • 時計回り (上,左,下,右) • 大きく時計回り (各方向 5 回ずつ) • 壁があったらとりあえず上にLOOKする • 壁があったら即,次の方向に切り替える • 壁に当たるまで進み続け,壁で方向転換 • 10 % の確率で壁に当たらずとも方向転換する
  • 42. 2. 基礎実習 – 課題 • 課題群 1 – 移動 (上から順に進化させていく) • 時計回り (上,左,下,右) • 大きく時計回り (各方向 5 回ずつ) • 壁があったらとりあえず上にLOOKする • 壁があったら即,次の方向に切り替える • 壁に当たるまで進み続け,壁で方向転換 • 10 % の確率で壁に当たらずとも方向転換する 戦略,手順を用意して コーディングに集中させるねらい
  • 43. 2. 基礎実習 – 課題 • 課題群 1 – 移動 (上から順に進化させていく) • 時計回り (上,左,下,右) ベタ書き • 大きく時計回り (各方向 5 回ずつ) ベタ → for • 壁があったらとりあえず上にLOOKする 変数,if-else • 壁があったら即,次の方向に切り替える break • 壁に当たるまで進み続け,壁で方向転換 while • 10 % の確率で壁に当たらずとも方向転換 random 戦略,手順を用意して コーディングに集中させるねらい
  • 44. 2. 基礎実習 – 課題 • 課題群 2 – 戦える移動クライアントを作る • 課題群 1 の成果を改造し敵と対峙したときに倒す • そのために自分の脆弱性を洗い出す • 「負け」条件をありったけ書き出させる • 「勝てる状況」を書きださせる • そのすべてに優先順位をつけて並べさせる
  • 45. 2. 基礎実習 – 課題 • 課題群 2 – 戦える移動クライアントを作る • 課題群 1 の成果を改造し敵と対峙したときに倒す • そのために自分の脆弱性を洗い出す • 「負け」条件をありったけ書き出させる • 「勝てる状況」を書きださせる • そのすべてに優先順位をつけて並べさせる コードに慣れた状態を作って コードも意識しながら戦略を立てさせる
  • 46. 3. 応用実習 • 負けないクライアントが土台になる • アイテムをたくさん取っても死んではどうもならん • これを壊さないように進化させよう • アイテムを効率的に回収するには? • 敵を見つけ出してやっつけるには? • マップ内を無限ループしないためには? • 持っているマップ情報をどう活用するか
  • 47. 4. 戯言 • U-16プロコンを使い倒してほしい • 情報技術への入り口として簡単な目標が与えられる • 各地域で同じプラットフォームで戦う面白さ • 野球,サッカー,吹奏楽などなども一緒 • 実力と運の混合率がいい塩梅で博打っぽさも…… • 一発逆転!が人の心を飲み込んでいく • ただ,U-16プロコンだけで終わってほしくない • これを機会に自分の見つけた課題や目標に生かそう • 広い世界の入り口につま先が入ったくらい
  • 48. 4. 戯言 • U-16プロコンを使い倒してほしい • 情報技術への入り口として簡単な目標が与えられる • 各地域で同じプラットフォームで戦う面白さ • 野球,サッカー,吹奏楽などなども一緒 • 実力と運の混合率がいい塩梅で博打っぽさも…… • 一発逆転!が人の心を飲み込んでいく • ただ,U-16プロコンだけで終わってほしくない • これを機会に自分の見つけた課題や目標に生かそう • 広い世界の入り口につま先が入ったくらい 「技術をおもちゃに」みんなで遊ぼう 勉強会もいいぞ [旭川,富良野,札幌, 釧路,千歳,室蘭, 函館,北見,恵庭, 小樽,美瑛] などなど