SlideShare a Scribd company logo
1 of 70
2018/8/8
本橋大輔
株式会社ダンクソフト
カタカナ語が多くて混乱します。でも大丈夫。
 プログラム - Program
 コンピューターに与える命令、または命令の組みあわせを、
コンピュータが理解できる形で表現したもの
 類:ソフトウェア、ソフト、アプリケーション、アプリ
 プログラミング - Programming
 プログラムを作成すること
 類:コーディング
 対義語です。
 ソフトウェア
 Word Excel やスマホアプリなど
 電子的に記録された命令セット
 後から書き換えられる
 ハードウェア
 パソコンやスマートフォンなど
 電気的に構成された機械
 変更が効かない
 アプリ、アプリケーション - Application
 ソフトウェアを特定の目的にパッケージ化したもの
 アプリケーション・ソフトウェア(応用ソフト)
 ソース、ソースコード – Source Code
 人間の意図する命令を、コンピューターに読みやすく書き下した表現
 またはコンピューターに向けた命令を、人間が読みやすいように書き下した表現
 コーディング – Coding
 意図する命令の手続きを、ソースコードに書き起こす楽しい作業
 曖昧なままだと疲れてしまいます。
 些細な事でも、はっきりさせておくと頭に残りやすいです。
 パズルとドラマ
 フルスクラッチとティンカリング
この違いは後ほどお話します
 代表的な教材を見ていきましょう
 Scratch
 viscuit
 Hack for play
http://scratch.mit.edu/
https://www.viscuit.com/
http://www.hackforplay.xyz/
パターナーは構造とパターンに魅せられ、ブロックやパズルで遊ぶことを楽しみます。
ドラマティストは、物語と社会的交流により多くの興味を持ち、しばしば人形やぬいぐ
るみを使って遊びます。(ライフロングキンダーガーデン p.240より)
 パズルの楽しみ
 一つ一つ部品を組み合わせて課題を解決する
 ドラマの楽しみ
 出来上がった作品で誰かを感動させる
 スクラッチ(scratch または Full scratch)
 一つずつ部品を組み合わせて作品を作り上げる遊び方
 明確に作りたい目標があって、一歩ずつ進んでいく
 ティンカリング(tinkering)
 すでに出来上がっているプログラムに手を加える遊び方
 キャラクターの見た目を変えたり、ジャンプ力を2倍にしたり
 変更した影響がすぐに目の前に動きとして現れます
 どっちが良い、という話ではなく、両方の楽しみ方があります。
 ゼロから作ることを「スクラッチで作る」と言います
 例えば小学生がゼロから家をたてることは難しい
 ゼロからゲームを作るならパソコンが1台あればできる
名称の由来[編集]
 Scratchの由来はディスクジョッキーがレコードを手でこするスクラッチと呼ばれる
技術であり[19]、DJが気軽に曲をミックスすることと、Scratch言語によって簡単にプ
ロジェクトをミックスすることを関連付けたことによる。
ゼロから・最初から[編集]
 ポケットビリヤードにおいて手球がポケットに落ちてしまうこと。スヌーカーでは
「イン・オフ」と呼ぶ。
 勝負事(ゴルフなどがある)において、ハンディキャップをつけずに勝負を行うこと。
また、勝負の結果同点の状態を指す。
 競馬において出走を取り消すこと。
 あり合わせの材料から模型を作るスクラッチビルドの略称。
 コンピュータのソフトウェア開発を、パッケージソフトウェア等を使用することなく
個別開発することを「スクラッチ開発」と表現する。
 自転車競技のトラックレースの種目の一つ。トラックレース#スクラッチを参照。
 誰かが作ったプログラムに手を加える遊び方
 プログラムでは、実世界よりもとても手軽に変更を加えられる
 目覚まし時計のベルを取り替えるのは大変だけど、
スマホのアラーム音を変更するのはとても簡単
 オープンソースはソフトウェアを発展させ続けてきた文化
 「私がかなたを見渡せたのだとしたら、
それはひとえに巨人の肩の上に乗っていたからです。」
アイザック・ニュートン, 1676
 ティンカリングは巨人の肩に乗る手段です
daisuke@kamiyama.ms
 Why!? プログラミング
 プログラミング学習のテレビ番組
 過去の番組も無料で視聴できます
 http://www.nhk.or.jp/gijutsu/programming/
 マインクラフト
 パソコン
 Raspberry Pi
 ゲーム機(Nintendo Switchなど)
 Scratchでプログラミングするとドローンをコントロールでき
ます。
 ぼくが開催しているドローン実験室でも、iPadを使ったド
ローン・プログラミング体験を実施しています。
CoderDojo 徳島
日時:毎月1回、 (月) 18:00~19:30
会場:徳島大学
参加費:無料
 8/20
 午前の部:低学年
 午後の分:高学年
 夕方の部:中学生
 場所:徳島大学情報センター
 プログラムの設計から体験できるワークショップです
あと何の役に立つのか?
 http://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1403162.htm
 あらゆる活動において、 コンピュータなどの情報機器やサービスとそれによっても
たらされる情報とを適切に選択・活用して問題を解決していくことが不可欠になって
いく
 プログラミングによって、コンピュータに自分が求める動作をさせることができると
ともに、コンピュータの仕組みの一端をうかがい知ることができるので、コン
ピュータが「魔法の箱」ではなくなり、より主体的に活用することにつながる
 あらゆる活動においてコンピュータ等を活用することが求められるこれからの社会を
生きていく子供たちにとって、将来どのような職業に就くとしても、極めて重要なこ
と
自分が意図する一連の活動を実現するために、
どのような動きの組合せが必要であり、
一つ一つの動きに対応した記号を、
どのように組み合わせたらいいのか、
記号の組合せをどのように改善していけば、
より意図した活動に近づくのか、
といったことを論理的に考えていく力
 命令をどのように組み合わせたら自分が意図した動きになるのか、試行錯誤しながら
作り上げていく『コーディング』の考えを学習指導要領では大事だとしています。
 これもプログラミングにとって大切なところですが、もう片一方の車輪として
『設計』という要素があります。
 設計とは「自分が意図する一連の活動」を組み立てていく手順です。
 作文で言うと「プロット」と「執筆」みたいな関係です。
 難しい問題を独立した小さな問題に切り分けて別々に解決していくこと
 作文で「プロット」に例えた部分です
 どんな複雑な問題も、解決の手法で分解していけば答えが見えてきます。
「人間が想像できることは、人間が必ず実現できる」
ジュール・ヴェルヌ
 目標に向かって順序立てて、論理的に手順を組み立てること。
 作文で「執筆」に例えた部分です。
printf(“%s”, “Hello World!”);
 C, Java, Ruby, HTML, Python, Perl, … いろんなプログラミング言語がありますが、
どれを使うかは好みです。
 作文でも日本語英語フランス語など好みで言語を決めてよいのと似てます。
 解決のステップで分解したそれぞれの単位を、個別にコンピューターに命令していきます。
 部品を組み合わせて目的をクリアしていくパズルゲーム的な側面です。
 「お金を数える」プログラミングはこんな感じ(擬似コードと呼びます)
 Int countAmount(incomes){
 Int amount = 0;
 While( incomes.remain() ){
 coin = incomes.pop();
 amount += c.value();
 }
 Return amount;
 }
 1. 大きな課題を解決可能な単位に分割
 2. 個別に手続きを作り出してコーディング
 両方の一連の流れをプログラミングと呼びます。
設計とコーディングの手法はどんな課題であっても適用できます。
 例えば「少子化問題」のような複雑な問題を解決する際に、「子供を増やす」ことば
かり考えても、問題が複雑すぎてどこから手をつけて良いか分からなくなってしまい
ます(結果として、「子ども手当」のような変な政策が出来てしまいます)。
 私が担当者であれば、少子化の原因であるとされる「都心の不動産が高い」「都心に
しか仕事がない」「保育所が不足している」などの問題を、「他から独立した問題」
として専門チームをアサインし、それぞれのチームが(少子化のことはあえて考えず
に)自分たちにアサインされた問題を解決することだけに集中することが出来る環境
を作ります。
 そして、それぞれのチームが、さらに与えられた問題を複数の独立した問題に分割し、
それぞれの担当者が「一つの独立した問題」に集中出来るようにし、かつ、彼らの成
果が明確に数字として測れるようにすると、「分割された問題の解決が、上位の問題
の解決に結びついているかどうか」が分かるようになります。
週刊 Life is Beautiful 2017年11月14日号
 「子供を増やす」と大きな問題のままだと複雑で手がかりがない。
 3つの課題に分割
 「都心の不動産が高い」
 「都心にしか仕事がない」
 「保育所が不足している」
 個別に問題解決策を検討する
 それぞれの課題ももっと分割できるかもしれない
 例えば「保育所が不足している」
 保育所の数を増やす
 保育士の数を増やす
あと何の役に立つのか?
 妻がプログラマの夫に「買い物にいって牛乳を1つ買ってきてちょうだい。卵があっ
たら6つお願い」と言った。
 夫はしばらくして、牛乳を6パック買ってきた。
 妻は聞いた「なんで牛乳を6パックも買ってきたのよ!」
 夫いわく「だって、卵があったから……」

「プログラマにお使いを頼んだら……」ジョークが海外の掲示板で人気 - DNA
https://dailynewsagency.com/2011/02/16/programmer_joke/
読み書き
抽象化して考えるようになる
算盤
 計算が早くなる
 最終的にソロバン自体が頭の中に収まる
プログラミング
設計によってもっと高度な抽象化をする
 1946年、米国陸軍が、そろばんの日本人と電動計算機の米国
兵士を競わせる計算試合を開催した。結果は4対1でそろばん
が勝利した。
(中略)
 計算試合では、四則演算(加法、減法、乗法、除法)のスピード
と正確さが競われ、四則をすべて組み合わせた問題も出題さ
れた。結果、そろばんが4対1で電動計算機に勝利した。
 そろばんが電動計算機に勝利した日|WIRED.jp
https://wired.jp/2009/12/01/%e3%81%9d%e3%82%8d%e3%81%b0%e3%8
2%93%e3%81%8c%e9%9b%bb%e5%8b%95%e8%a8%88%e7%ae%97%e6
%a9%9f%e3%81%ab%e5%8b%9d%e5%88%a9%e3%81%97%e3%81%9f%
e6%97%a5/
 コンピューターは人間の思考をアシストする自転車と同じものだ
あるいは「コンピューテーショナル思考」または「計算論的思考」。
「プログラミング的思考」に設計が加わった概念と思ってください。
 Jeannette M. Wing(Microsoft Research and Carnegie Mellon University)
 翻訳:中島秀之(公立はこだて未来大学)
 計算論的思考, 情報処理 Vol.56 No.6 June 2015
 https://t.co/PHomGSfid3
人間の思考法のこと
人間の問題解決法であり、人間がコンピュータのように考えることを目指
すものではない。
 コンピュータは単調で退屈であるが、人間は賢くて想像力豊かである。
人間がコンピュータを刺激的なものにする。
 これまで挑戦できなかった問題を解くことができ、新しいシステ
ムを構築することができる。
限界は我々の想像力だけ
「人間が想像できることは、人間が必ず実現できる」
ジュール・ヴェルヌ
限界は我々の想像力だけ
×
人間が想像できることは、人間が必ず実現できる
 つまり、プログラミングができると何でも実現できます
 もし実現できそうにないことがあったとしたら、今はまだ実現できないだけ
 明日登場するテクノロジーが可能にしてくれます
2007年 オープンソースでドローンの制御コンピューターが公開
2007年 iPhoneの登場(日本での発売は2008年)
2012年 Oculus Rift DK1の公開
2015年 ディープラーニングフレームワークの公開
 不揃いな豆を手で仕分ける作
業(ハンドピック)
 焙煎時の火の通りや、粉砕時
の粒のサイズ、抽出時間など
が均一になる
 雑味が消えて美味しくなる
ディープラーニングで
自動化にチャレンジ中!
農家用小型光選別機「ピカ選」登場 サタケ | 新製品 | JAcom
農業協同組合新聞
http://www.jacom.or.jp/archive03/new_product/2009/08/new_prod
uct090804-5515.html
メーカー希望小売価格228万円(税別)で玄米2t/hの処理
能力(FGS-2000)。
昇降機、タンクを一体構造としたオールインワン設計で、クラス
初のフルカラーCCDカメラを搭載し、原料に混入した透明ガラス
の選別も可能だ。
販売機種はFGS-2000と、玄米処理能力1t/hタイプのFGS-1000
(税別価格198万円)の2機種。年間目標販売台数は計1000台。
限界は我々の想像力だけ
 コンピュータ科学を先行した学生は何を専門にしても良い
 コンピュータ科学を専攻した後に医学、法律、経営、政治、
そしてあらゆる種類の科学や工学、さらには芸術の分野に
進むことができる
 Jeannette M. Wing
あらゆる活動においてコンピュータ等を活用することが求め
られるこれからの社会を生きていく子供たちにとって、将来
どのような職業に就くとしても、極めて重要なこと
ご清聴ありがとうございました
https://datecut.page.link/20180808
あと何の役に立つのか?
神山町プログラミング教材講習会
神山町プログラミング教材講習会
神山町プログラミング教材講習会
神山町プログラミング教材講習会
神山町プログラミング教材講習会

More Related Content

Similar to 神山町プログラミング教材講習会

TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
(株)TAM
 

Similar to 神山町プログラミング教材講習会 (16)

Appsheet基礎講座.pptx
Appsheet基礎講座.pptxAppsheet基礎講座.pptx
Appsheet基礎講座.pptx
 
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
4/17
4/174/17
4/17
 
Force.com開発基礎
Force.com開発基礎Force.com開発基礎
Force.com開発基礎
 
ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義
 
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
TAM 新人ディレクター システムスキルアップ プログラム 第7回 「プログラム言語」
 
Visual Studio Code #phpcon2015
Visual Studio Code #phpcon2015Visual Studio Code #phpcon2015
Visual Studio Code #phpcon2015
 
Cp 01 brochure2015 rev2
Cp 01 brochure2015 rev2Cp 01 brochure2015 rev2
Cp 01 brochure2015 rev2
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
ネットにつながれない君たちに贈る。ノンプログラミングでESP8266を15分でネットに繋げる方法@io tlt
ネットにつながれない君たちに贈る。ノンプログラミングでESP8266を15分でネットに繋げる方法@io tltネットにつながれない君たちに贈る。ノンプログラミングでESP8266を15分でネットに繋げる方法@io tlt
ネットにつながれない君たちに贈る。ノンプログラミングでESP8266を15分でネットに繋げる方法@io tlt
 
本の紹介
本の紹介本の紹介
本の紹介
 
Androidアプリケーション開発中級研修 前編
Androidアプリケーション開発中級研修 前編Androidアプリケーション開発中級研修 前編
Androidアプリケーション開発中級研修 前編
 
.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略
 
PowerApps をざっくりさわってみた
PowerApps をざっくりさわってみたPowerApps をざっくりさわってみた
PowerApps をざっくりさわってみた
 
CodePushとReact Nativeで緊急OTAリリース!了解!
CodePushとReact Nativeで緊急OTAリリース!了解!CodePushとReact Nativeで緊急OTAリリース!了解!
CodePushとReact Nativeで緊急OTAリリース!了解!
 

神山町プログラミング教材講習会