...

プログラミング教室

by user

on
Category: Documents
18

views

Report

Comments

Transcript

プログラミング教室
電気通信大学子供のための
プログラミング教室
事前説明会
UECプログラミング教室 [email protected]
資料掲載URL http://www.uecincu.com/
説明 安部博文 電気通信大学 産学官連携センター 特任教授
雪本修一 (株)MNU 代表取締役社長・エンジニア
学生講師
日時 2016年4月3日(日)9:00~11:00
場所 電気通信大学 東5号館2階241教室
今日の内容
1 はじめに
2 電気通信大学 子供のためのプログラミング
教室について 説明
3 雪本修一師匠のお話
4 体制,これからの進め方等
2
安部 博文
(あべ・ひろふみ)
電気通信大学子供のためのプログラミング教室の代表者・責任者・教材開発。
▼電気通信大学 産学官連携センター ベンチャ―支援部門 特任教授
▼1953年,大分県生まれ。
1978年,大分大学教育学部卒業。卒業後,小中高校生対象の学習塾を10数
年経営。その後,対象を経営者にシフト。
2010年,大分大学大学院で博士(経済学)号取得。
2011年,本学に着任。ベンチャー教育と支援に携わる。
▼好きなこと 音楽: バッハのバイオリン無伴奏パルティータをギターで弾く。
3
雪本 修一
(ゆきもと・しゅういち)
電気通信大学子供のためのプログラミング教室の代表者・専門家として監修。
▼株式会社MNU 代表取締役社長。
電気通信大学 情報システム学研究科情報システム基盤学専攻(社会人院
生)。
調布市公立学校PTA連合会副会長(2016年3月末まで)。
▼これからの時代,プログラミング能力が人生を切り開く武器になることを身
を持って知っている。
自分の知識と経験をやる気のある子供たちに伝えたいという熱い気持ちを持
つ。
▼1974年,岡山県生まれ。
IBM Soft Layerユーザ会運営委員。
MNUは,クラウド型ファイル共有アプリケーション「PBOX」の開発元。
IBM Soft Layerのリフェラル・パートナーとして顧客にマッチするクラウド導入
をコンサルしている。
4
電気通信大学 子供のためのプログラミング教室 講師紹介
佐藤 海斗(さとう・かいと)
▼1996年5月,神奈川県生まれ,川崎市育ち。
2015年3月,日本工業大学駒場高等学校卒業。
2015年4月,電気通信大学入学。情報理工学
部・知能機械工学科・9クラス。
▼プログラミングは大学生から本格的に始める。
アニメ・釣り・アウトドアなどが好きです。ロボメカ
工房フライト部隊に所属。最近はドローンの製作
や新入生に向けたArduino講習の準備をしてい
ます。
▼プログラミングは最初のうちは楽しめないと思
います。しかし,ある程度できるようになれば楽
しくなってくると思うので頑張りましょう!一緒に
頑張っていきましょう!
5
電気通信大学 子供のためのプログラミング教室 講師紹介
宮澤 修(みやざわ・おさむ)
▼1992年7月,神奈川県生まれ,横浜市育ち。
2011年3月,神奈川県立川和高等学校卒業。
2014年4月,電気通信大学入学。情報理工学部,
情報・通信工学科,コンピュータサイエンスコース
配属予定(2016年3月現在)。
▼プログラミングは大学入学より始める。昔に流
行っていた曲が好きで,時々レンタルショップでCD
を借りたりしています。
よろず創作サークル・TERESに所属。
▼プログラミングは一人でやるより,仲間と共に
やっていく方が面白いし,上達します(体験談)。気
軽に相談してください。一緒に楽しみながら腕を磨
きましょう。
6
電気通信大学 子供のためのプログラミング教室 講師紹介
山根 茂之
(やまね・しげゆき)
▼1995年6月,新潟県生まれ,東京都育ち。
2014年3月,都立杉並高等学校卒業。
2014年4月,電気通信大学入学。情報理工学部・総
合情報学科2クラス
▼趣味はサイクリング。
▼プログラミングは最初は難しく感じるかもしれませ
ん。基本が理解できて自分で書けるようになると途
端に楽しくなります。皆さんにはその感覚を味わって
欲しいです。そして将来プログラミングで活躍して欲
しいと思っています。一緒にがんばりましょう。
7
電気通信大学 子供のためのプログラミング教室 講師紹介
楊 坤(よう・こん)
▼1995年9月生まれ,中国安徽(あんき)省
滁州(じょしゅう)市出身。
2013年6月,滁州市第一高校を卒業。7月日本に留
学,日本語学校で日本語を勉強し始める。
2015年4月,電気通信大学入学。先進理工学科,10
クラス。
▼趣味はコンピュータで,ハードウェア,ソフトウェア
どちらも興味を持っています。将来はハードウェアに
行くつもりです。サークルは入っていないが,自分で
サーバをいじっています。最近は自作ルータを挑戦し
ています。
▼みんな一緒に楽しく勉強していきましょう。私の日
本語はまだまだうまくないですが,頑張ります。
またプログラミングに限らず,自作PC,自宅サーバな
ど自作したい人がいれば手伝います!
8
2
電気通信大学
子供のためのプログラミング教室
について
9
電気通信大学プログラミング教室憲章(Project Charter)
【目的】 子供たちがプログラミング力で自由な生き方をする上で
助けとなる知を提供する。
【方法】 プログラミング教室
10
電気通信大学プログラミング教室憲章(Project Charter)
【参加者が得られるもの】
•小学5・6年 プログラミング力を発揮して好きなものを創る力。
(将来的に)技術や創ったものをお金にする力。
•中学1-3年
〃
•高校生1-2年
〃
•保護者
子供の将来性が拡大。
•電通大生 プログラミング能力 + コミュニケーション力 +
プログラミング力で稼ぐ力 + 活動実績
【副次的効果】 受講した子供たちと電通大&電通大ベンチャーの
力で調布がプログラミング教育の聖地になれば,人・情報・お金が
集まる成功サイクルを調布地域に創出できる。
11
電気通信大学プログラミング教室憲章(Project Charter)
【体制】
取り上げるプログラミング言語によって教室を組成。
Python教室の例。
(1)主催
電通大&電通大発ベンチャーの産学 連携体
(2)対象
受講条件をクリアする小中高校生。
(3)人数
1クラス20名前後(小中高生混成クラス)。
(4)条件
自分のノートPCを持参。本人のやる気,親の理解と
支援,環境が整っていること。
日曜 第1教室:1限(9:00~10:30),
(5)日程
第2教室: 2限(10:40~12:10)。月4回。
(6)期間
1.5年。
(7)教材費 月1万円。
(8)場所
電気通信大学 西11号館2F
高度ICT試作実験工房ピクトラボ
12
電気通信大学プログラミング教室憲章(Project Charter)
【体制】
(9)スタッフ
代表者・責任者・教材開発:
電気通信大学 産学官連携センター 特任教授 安部博文
代表者・専門家として監修:
株式会社MNU代表取締役 雪本修一
講師(有償ボランティア): 電気通信大学生
(10)事務局
株式会社MTMシステムズ(電通大発ベンチャー)
13
スケジュール 2016年度 1学期
2016年3~4月 受講者決定。受講生のPC環境設定,タッチタイピングの準備。
1 5月 8日(日) 1限,2限 ガイダンス,受講者ネットワーク作り
2
15日(日) 1限,2限
3
22日(日) 1限,2限
4
29日(日) 1限,2限 成長度測定
5 6月 5日(日) 1限,2限
入門編
6
12日(日) 1限,2限
7
19日(日)1限,2限
8
26日(日) 1限,2限 成長度測定
パイソン
9 7月 3日(日)1限,2限
10
10日(日) 1限,2限
11
17日(日) 1限,2限
12
24日(日) 1限,2限 1学期成果発表会
Python
8月下旬 夏季集中講座
上記のスケジュールは変更する場合があります。
14
スケジュール 2016年度 2学期
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
9月 4日(日)1限,2限 ガイダンス
11日(日)1限,2限
18日(日)1限,2限
25日(日)1限,2限 成長度測定
10月 2日(日)1限,2限
9日(日)1限,2限
16日(日)1限,2限
23日(日) 1限,2限 成長度測定
11月 6日(日)1限,2限
13日(日) 1限,2限
20日(日) 1限,2限
27日(日) 1限,2限 成長度測定
12月 4日(日)1限,2限
11日(日) 1限,2限
18日(日) 1限,2限
25日(日) 1限,2限 2学期成果発表会
上記のスケジュールは変更する場合があります。
やや発展編
Python
HTML
CSS
JavaScript
15
スケジュール 2016年度 3学期
1 1月 8日(日)1限,2限 ガイダンス
2
15日(日)1限,2限
3
22日(日)1限,2限
4
29日(日)1限,2限 成長度測定
5 2月 5日(日)1限,2限
6
12日(日)1限,2限
7
19日(日)1限,2限
8
26日(日) 1限,2限 成長度測定
9 3月 5日(日)1限,2限
10
12日(日) 1限,2限
11
19日(日) 1限,2限
12
26日(日) 1限,2限 3学期成果発表会
上記のスケジュールは変更する場合があります。
クリエイティブ編
Python
HTML
CSS
JavaScript
16
スケジュール 2017年度 4学期
1 5月 7日(日)1限,2限 ガイダンス
2
14日(日)1限,2限
3
21日(日)1限,2限
4
28日(日)1限,2限 成長度測定
5 6月 4日(日)1限,2限
6
11日(日)1限,2限
7
18日(日)1限,2限
8
25日(日) 1限,2限 成長度測定
9 7月 2日(日)1限,2限
10
9日(日) 1限,2限
11
16日(日) 1限,2限
12
23日(日) 1限,2限 4学期成果発表会
上記のスケジュールは変更する場合があります。
入門編
スマホアプリ開発
17
スケジュール 2017年度 4学期を終えた以降
選択制を予定
・卒業し同窓会メンバーとして自分のペースで進める
・講師のアシスタントを務める(有償ボランティア)
・Python 中~上級教室(実践力)
・スマホアプリ開発 中~上級教室(実践力)
・Aruduino等を使いこなす(IoTエンジニア志向)教室
・Rapiro(ロボット)を組み立て,制御する技術を学ぶ教室
・そのほか ベンチャー企業と連携した教室の開講
18
授業の内容
先生や仲間の説明を聞く
プログラムを読む
プログラムを写す
動きを確認する
プログラムの働きを知る
質問する 一週間の間で生まれた疑問 + この時間で学んだこと
プログラムの一部を変えてみる
何をしたい・したかったのかを説明する
人のやっていることを見てヒントを得る 質問する
19
受講条件 ½ ~ プログラミング能力向上に全力集中するため
・最大の学習効果を引き出すため,生徒には,素直,前向き,みんなで楽しく
やろうという姿勢でプログラミング教室に参加してほしい。
・学校で学ぶ科目の知識と理解度がプログラミング能力と関連します。学校
の成績は高いレベルであってほしい。
・授業は皆勤が前提で進めます。やむを得ず欠席した場合はその回の教材
を指定URLからダウンロードして自主的にカバーしよう。分からない所は大
いに悩み,次の回に先生に確認してください。
・100%理解して進まなければと考える必要はありません。その時はよく分か
らなくても後になって理解できることもたくさんあります。
・教材費は締切期日までに納付していること。月ごと or 学期ごと。
・この教室では保護者の受講はできません。体験教室は保護者同伴で参加
できます。
・このほか口頭とQ&Aでご説明します。
20
受講条件 ½ ~ この教室の生徒像
1. 夢dream とか 志will を持っている。
夢: 将来実現したい願い。
志: 心の中で目指すもの。
2. 人とのコミュニケーションcommunicationの大切さが分かってい
る。適切にcommunicationできる。
communication: 意思疎通。
Q: 夢,志は?
Q: プログラミングで何をしたい?
21
時間の使い方
が大事という話
20時間でまあまあレベル
22
20時間でまあまあレベル
▼何か新しいことを始めて「自分で自覚しているとても下手くそ」な
状態から,「まあまあ良い」レベルまで,どのぐらい時間がかかる
か? ・・・ 20時間。どんなスキルでも,20時間あれば良い。
▼20時間を最大限有効活用する効率的な練習方法。
第1: スキルを分解する。自分のしたいことを実現するのに役立
つスキルを見極め,もっとも大事なことから練習する。
第2: 自己修正が出来るくらいまで学習する。学習分野につい
て,3~5つのリソースを手に入れる。間違いをした時に自分で気が
ついて,違うやり方が出来る。
第3: 練習の妨げとなるものを排除する。実際にじっくり取り組む
邪魔となるもの(テレビ,インターネット,スマホ)を遠ざける。
第4: 最低20時間,練習する。
出所 一人前になるには1万時間必要」は誤りだった! たった20時間で新たなスキルを身につけられる4つのコツ
http://logmi.jp/12933
23
習うより慣れよ
という話
ただし,頭を使って
24
習うより慣れよ Practice makes perfect
▼習うより慣れよ
物事は,人に教わるより自分で直接体験してゆく方が身につく。
▼Practice makes perfect
練習を積めば完全になる(習うより慣れよ)。
▼何かをやるときは,やみくもに行動せず,まず頭を使って考えよ
う。
根幹と枝葉を見極めよう。
根幹を自分のものにする「賢いやり方」を考える。
それから練習。
▼最初と比べる。自分の変化を確認する。人との比較ではない。
▼これがこの教室の方法。
25
本教室での
プログラミングに必要な
基礎力 3つ
26
本教室でのプログラミングに必要な基礎力
1 キーボード タッチタイピング(ブラインドタッチ)
2 プログラミング言語で使う英語と数学
3 地頭
自分は,何をしたいのか(するのか)を決める目標設定力。
目標を達成する方法を考え,達成するまで続ける力。
↓
何をしようとしているのか,人が分かるように伝える説明力。
27
1 キーボード タッチタイピング(ブラインドタッチ)
▼プログラミングはキーボードで大量のプログラムやデータを打ち
込みます。スムーズ,スピーディにできるほど時間が有効に使え
ます。
各自,好きな方法で身に付けてください。
▼例 高校生 英語の教科書を打ち込んでみる。
小中生 中学校1~3年の英語に出て来る単語,熟語,本文を全
部打ち込んでみる。
一種の「写経」。Practice makes perfectの実践。
▼例 タッチタイピング習得の無料サイトを使う。
▼例 20時間でまあまあ作戦を立てて実行。
28
2 プログラミング言語で使う英語と数学
▼プログラミング言語は,英単語と数学の組み合わせ。
▼プログラミングで使う英単語と数学を目に親しませる。
▼例
print
string
算術演算子
object
from
integer
class
+
import
float
function
if
decimal
instance
*
else
list
variable
for
tuple
memory
/
True
dictionary
module
//
False
set
pixel
%
Syntax Error
pass
**
Invalid syntax
define
Unexpected indent method
29
3 地頭
自分で考える力。問題を見つけたり,解決方法を考えたり。
大学入試突破の勉強アタマ & 大学に入ってからの成長アタマ
自分は,何をしたいのか(するのか)を決める目標設定力。
↓
大学生の多くが苦手。
理由: 高校まで 「最初に問題がある→解いて答えを出す→
得点になる」という大学入試用の勉強スタイル。
VS
大学では 「問題を自分で立てる→解決の仮説を出す」
スタイル。
両者の違いを認識し,心構えを切り替える機会が少ない。
30
練習 誕生日から今日まで何日生きているかを計算
方法を考えてみよう。
やり方は複数ある。
正解はただ一つではないことを知ろう。
Pythonでプログラミングした例。
>>> import datetime
# datetime moduleをimport
>>> today = datetime.date.today()
# 今日
>>> birthday = datetime.date(1953,10,1)
# 誕生日
>>> life = today - birthday
# 引き算で計算
>>> print(life)
# 結果を表示させる
22809 days, 0:00:00
# 2万2千809日か!!
>>>
31
練習 1辺300pixelの正三角形を描く
方法を書いてみよう。
やり方は複数ある。
正解はただ一つではないことを知る。
Pythonでプログラミングした例。
>>> from turtle import *
>>> forward(300)
>>> left(120)
>>> forward(300)
>>> left(120)
>>> forward(300)
左よりスマートな書き方
>>> from turtle import *
>>> for i in range(3):
…
forward(300)
…
left(120)
32
プログラミング言語
コンピュータに仕事をしてもらうための命令の集まり。
コンピュータが分かるのは機械語。人間にははなはだ分かりにくい。
人間が書きやすくするためプログラミング言語が開発された。
プログラミング言語は機械語に翻訳されてコンピュータに届く。
プログラミング言語は,英単語と記号を組み合わせて書く。
英単語は英語,記号は数学との関係が深い。
プログラミングでは,プログラマが,何をしたいか(目的),そのためにどうや
るのか(方法)を,ちゃんと分かっていることが大事。
コンピュータは超弩級厳密屋さん。曖昧だと「なんだあ?」と叱られる。
正確に伝えるため,人間はプログラミング言語の決まりに忠実かつ厳密に
記述する。
この厳密さは,超日常レベル。「そこは,ま,何とかうまくやって貰いたいん
ですけど」は通じない。
学習者は,山ほどミスして,NGを食らいながら少しずつ精度を上げて行く。
33
プログラミング言語の歴史
Fortran
COBOL
BASIC
C
C++
C#
Perl
PHP
Ruby
Python
Java
JavaScript
Lisp
Scheme
出所 http://image.itmedia.co.jp/l/im/enterprise/articles/0703/26/l_psfig1.jpg 2015年11月25日閲覧。
34
プログラミング言語
Fortran フォートラン Formula Translation(数式翻訳の意)
1954年にIBMのジョン・バッカスが開発。コンピュータで広く使われた最初
の高水準言語。科学技術計算向き。
COBOL コボル COmmon Business Oriented Language
1959年にアメリカ海軍の計算機科学者のグレース・ホッパーが開発。金額
計算など事務処理向き。
BASIC ベーシック Beginner‘s All-purpose Symbolic Instruction
Code 1964年に米国ダートマス大学の数学者ジョン・ケメニーとトーマス・カ
ーツが開発。コンピュータ教育向き。
C シー B言語の改良版。UNIX開発用言語。
1972年にベル研究所のデニス・リッチーが開発。パソコンソフトからゲーム
の作成、機械制御やシステム管理など、あらゆる分野に適応。
C++ シープラスプラス
1983年にベル研究所のビャーネ・ストロヴストルップが開発。Cの拡張版。
(スライド17~20 出所 ウィキペディア)
35
プログラミング言語
C# シーシャープ
2000年にマイクロソフトのアンダース・ヘルスバーグ率いるチームが開発。
Perl パール Practical Extraction and Report Language(実用的なデ
ータ取得レポート作成言語)
1987年,アメリカのプログラマ・言語学者・文筆家ラリー・ウォールが開発。
プログラマの三大美徳:
無精 Laziness =効率や再利用性の重視
短気 Impatience =処理速度の追求
傲慢 Hubris =品質にかける自尊心
モットー: やり方はいろいろある There‘s More Than One Way To Do It;
TMTOWTDI 多様性は善 Diversity is Good
PHP ピー・エイチ・ピー Personal Home Page
1995年,カナダ人プログラマのラスマス・ラードフが開発。Webアプリケー
ションのサーバーサイド・スクリプト。
Ruby ルビー
1995年,島根県松江市のプログラマ・まつもとゆきひろMatzが開発。
36
プログラミング言語
Python パイソン BBCのコメディ番組『空飛ぶモンティ・パイソン』
1991年,オランダ人プログラマのグイド・ヴァンロッサムが開発。
Pythonの目標 ~ Computer Programming for Everybody(1999)
・容易かつ直観的な言語。主要なプログラミング言語と同程度に強力。
・オープンソース。開発に誰でも貢献できる。
・平易な英語のように分かりやすいコード。
・日常的タスクに適している。開発時間を短くできる。
Java ジャヴァ
1990年代前半,サン・マイクロシステムズのジェームズ・ゴスリン,ビル・ジ
ョイらが開発。文法はCやC++から引き継ぐ。
JavaScript ジャヴァスクリプト
1995年,ネットスケープコミュニケーションズのブレンダン・アイクが開発。
Javaが人気を集めていたこと,ネットスケープとサン・マイクロシステムズが
業務提携していたことから,元の名称LiveScriptをJavaScriptに変更。
37
プログラミング言語
Lisp リスプ LISt Processor
1958年,コンピュータ・サイエンティストのジョン・マッカーシーが開発。
Scheme スキーム Schemer(陰謀をめぐらす人々)の6文字
1975年,MITの人工知能研究所の学生だったジェラルド・ジェイ・サスマン
とガイ・スティール・ジュニアが開発。
非プログラミング言語
HTML エイチティーエムエル Hyper Text Markup Language
ウェブ上で文書を表示させるための言語。 タグ( <,> )を使って文章構造(
見出し,本文)や見た目の情報(文字のサイズ)を伝える。
CSS カスケーディング・スタイル・シート Cascading Style Sheets
1994年,コンピュータ技術者のホーコン・ウィウム・リーが提唱。HTML をど
のように修飾(表示)するかを指示するための仕様。
38
3
雪本修一師匠のお話
39
4
これからの
スケジュール
40
これからのスケジュール
4月3日(日) 事前説明会
4月初旬 受講者決定 個別にメールでお知らせします
4月 各自,タッチタイピングのスキルアップ,英語力アップ
5月8日(日) 9:00~10:30 第1教室,第1回の教室開始。
10:40~12:10 第2教室,第1回の教室開始。
7~8月 第3教室 募集
9月 第3教室開始。
教室情報は,下記で告知します。
http://www.uecincu.com/
41
参考文献 Ver.3対応
キャロル・バーダマン他,山崎正浩訳 「10才からはじめるプログ
ラミング図鑑」 創元社,2015年。
Jason R.Briggs,磯蘭水・藤永奈保子・鈴木悠訳 「たのしいプログ
ラミング Pythonではじめよう! 」 オーム社,2014年。
大人向け
柴田淳 「みんなのPython 第3版」 ソフトバンククリエイティブ,
2012年。
Bill Lubanovic,長尾高弘訳 「入門Python 3」 オライリージャパ
ン,2015年。
42
関係各位への謝辞
電気通信大学子供のためのプログラミング教室の実現にあたり,
ご支援を頂いている各位に心から御礼申し上げます。
調布市議会 議長 鮎川有祐様
調布市議会 文教委員 大須賀浩裕様
調布市教育委員会 教育長 大和田正治様
調布市 生活文化スポーツ部
調布市 子ども生活部 児童青少年課
43
Fly UP