SlideShare ist ein Scribd-Unternehmen logo
1 von 72
ラボラトリーオートメーション
のためのソフトウェア思想教育
Laboratory Automation Developers Conference 2021
2021/12/18
株式会社NextInt
中山心太
1
非プログラマ―が知っておくべき
プログラミングの本質
Laboratory Automation Developers Conference 2021
2021/12/18
株式会社NextInt
中山心太
2
自己紹介
• 中山心太(ところてん)
• @tokoroten
• 株式会社NextInt 代表
• 著書
• 仕事ではじめる機械学習
• データサイエンティスト養成読本ビジネス活用編
• お仕事
• 機械学習システム構築に関する技術顧問
• 各種スポットデータ分析業、ビジュアライズ
• 業務改善コンサルティング、DX支援、DX講演
• 新規事業コンサルティング、PoC構築
• ゲームディレクター
3
発表の経緯
4
メカの人と生物の人に、プログラミン
グの初歩の話をしたいんだけど、どん
な内容がいいか相談させてください
こんなんでどうよ?
アッハイ
じゃあその内容で講演してもらえますか?
この講演の趣旨
• 非プログラマに向けて、プログラミングの本質を解説します
• プログラミングの本質を知ることで、何がプログラムで実現可
能なのか、何がプログラムにとって難しいのかを知ることがで
きます
• 非プログラマがプログラマとコミュニケーションをとるために
必要な考え方を短時間でお伝えします
5
よくある生物学部の情報教育ヒアリング
• 1年生
• 教養講座でプログラミングを軽く触る
• 入出力、分岐、ループ、ソートくらいでだいたい終わり
• 問題をブレイクダウンしたりするところまで到達しない
• 2、3年生
• 必修科目だらけで、プログラミングは一切やらない
• 4年生
• 研究室で先輩のコードの引継ぎで嫌々プログラミング(3割くらい)
• これができないと卒業できない、という状態になって初めて触る
• 画像処理、データ解析、MATLAB
• 引き継いだコードの改造が大半で、スクラッチで書くことは稀
6
LADEC2021の運営メンバーへのヒアリングより
東大の教養の教科書を調べてみる
• 目次
• 第4章 データ処理の基本:成績の集計
• 第5章 ライフゲーム
• 第6章 放物運動のシミュレーション
• 第7章 p値の計算
• 第8章 大規模データの検索
• 第9章 データからの情報抽出:回帰分析
• 第10章 拡散のシミュレーション
• 第11章 高度な検索:ゲノムを解析する
• 第12章 データを分類する
• 日本のトップの大学でこのカリキュラムなの
で、これより下の大学はもっと簡易になる
7
京大理学部のカリキュラム
8
http://www.sci.kyoto-u.ac.jp/ja/_upimg/kce/OcLT2Q/files/undergrad_chart_2021.pdfより引用
• 一年の教養でしかプログラミングをしていない……
• 情報基礎[理学部] 2021
• 二分探索、ソート、デジタル回
路の基礎(全加算器くらい?)で
講義が終わるみたい
• 大きな問題をプログラムに落と
し込む、ということはやらない
京大理学部の情報の講義を調べてみる
9
https://ocw.kyoto-u.ac.jp/syllabus/?act=detail&syllabus_id=la_37956&year=2021 より引用
母校(電通大、電子工学)の講義を調べてみる
• 2年後期、プログラミング演習
• C言語の言語仕様を勉強して終わ
りっぽいぞ……
• 私の時(20年前)は1年後期でC言
語でソートを書いて終わりだっ
た覚えがあるので、あまり変
わってないみたい
• 3年次の選択必修でC++の講義を
取った記憶はある
10
http://www.ds.mce.uec.ac.jp/~yuki/prog/ より引用
非情報系の学部における情報教育の課題
• ソフトウェアエンジニアリングまで到達していない
• 講義は言語仕様の解説、基本的なプログラミングの解説に終始
• 産業としてのソフトウェア開発技術とはどのようなものか、どのような思想
なのか、動いている複雑なソフトウェアとどう向き合うのか?というところ
が伝わっていない
• 「大学で学ぶプログラミング」と「ソフトウェアエンジニアリング」の間の
溝を埋めなければならない
• 産業としてのソフトウェア開発技術とはどんなものか?
• ソフトウェアの開発、運用、保守、信頼性
• 新しいアルゴリズムはどうやって作り出されるのか
• 人間が行っている行動をコンピュータが実行可能なものに翻訳する
• 極めて複雑なソフトウェアをどうやってテストしながら、安全に育てていく
のか
11
目次
• コンピュータはなぜ強力なのか、なぜ社会を変革しているのか
• コンピュータとはどのような性質のものなのか?
• 何がコンピュータにとって難しいのか
• 要件定義:問題のブレイクダウン
• ソフトウェアテストの必要性
• 時間が余ったとき用の予備資料いろいろ
12
目次
• コンピュータはなぜ強力なのか、なぜ社会を変革しているのか
• コンピュータとはどのような性質のものなのか?
• 何がコンピュータにとって難しいのか
• 要件定義:問題のブレイクダウン
• ソフトウェアテストの必要性
• 時間が余ったとき用の予備資料いろいろ
13
コンピュータによる社会変革
• 1995年のインターネット革命以
後、マーケットの変化速度は急速
に加速
• この背景には、コンピュータ、イ
ンターネット、ソフトウェアが存
在する
14
How Long Does It Take to Hit 50 Million Users?より引用
https://www.visualcapitalist.com/how-long-does-it-take-to-hit-50-million-users/
製品・技術
サービス
利用者が5000万人
突破するまでの期間
飛行機 64年
自動車 62年
電話 50年
電気 46年
クレジットカード 28年
テレビ 22年
ATM 18年
コンピュータ 14年
携帯電話 12年
インターネット 7年
Facebook 4年
WeChat 1年
ポケモンGO 19日
全てがソフトウェアに
• ソフトウェアによって置き換わったもの
• 電話 → スマートフォン
• カメラ → デジカメ → スマホ
• レンタルビデオ → YouTube、Netflix
• 映画 → Pixar
• 書店 → Kindle
• タクシー → Uber
• 地図 → Google Map
• 小売店 → Amazon
• 求人 → LinkedIn
• 財布 → 電子決済アプリ
• 全ての産業でソフトウェアによる変革が進む
• これから先は?医療?教育?銀行?生物学?
15
画像は1980 vs 2010 – Topcultured より引用 https://topcultured.com/1980-vs-2010/
ムーアの法則による指数関数的性能向上
16
https://github.com/karlrupp/microprocessor-trend-data より引用
CPUの高性
能化、廉価化
コンピュータ
の普及、適応
領域の拡大
CPUメーカー
の市場競争
半導体の
技術革新
なぜソフトウェアは躍進したのか?
• 集積回路の微細化による性能向上、価格下落、ムーアの法則
• コンピュータは単純だが早い
• 毎秒100億回以上の計算ができる(2.5GHz*4コア=100億回/sec)
• コンピュータは簡単な動作を組み合わせて、より複雑な動作を実現する
• 人間にとって複雑な処理でも、毎秒100億回計算できるコンピュータには容易なこと
が非常に多い
• コンピュータに「疲れる」「飽きる」という概念はないので、
一度プログラムを作れば、同じ処理であれば、何度でも繰り返す
• これが人間の努力を粉砕している
17
年 製品名 販売価格 製造プロセス トランジスタ 動作周波数
1971 Intel 4004 $60 10μm 2300個 500 kHz
1997 Intel Pentium II $268 0.35μm 2740万個 300 MHz
2019 AMD Ryzen9 3900X $499 7 nm 98億個 3.5 GHz
コンピュータは世界人口よりも多い
• Armベースチップ(スマホやIoT機器に使われているCPU)は累計で
1600億個を突破、年間平均出荷数は220億個以上
• あなたは何台のコンピュータを使って生活している?
18
Armベースのチップ、前四半期の出荷個数が過去最高を更新|アーム株式会社のプレスリリースより引用
https://prtimes.jp/main/html/d/p/000000091.000022759.html
コンピュータという新しい労働力
• ムーアの法則により、安く、高性能になったコン
ピュータはありとあらゆる職場に普及、新しい労
働力となった
• 現代社会は業務改善とはソフトウェア改修、ソフ
トウェアの繋ぎ方の変更になった
• けれども、コンピュータという新しい労働力(奴
隷)を使うためのソフトウェアについて分かってい
る人が全く足りていない
• ソフトウェアを自ら改修し続ける企業が世界経済
を支配する時代になった
19
世界経済の変化(時価総額トップ10)
時価総額ランキング上位企業(1992年と2019年) / 世界は大きく変化・日本の地位は低下 - ファイナンシャルスター より引用
https://finance-gfp.com/?p=10552
20
世界経済の変化(時価総額トップ10)
21
石油
小売り
製造業
通信
タバコ・食品
通信
食品
銀行
銀行
化学・医薬品
石油
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェア
保険・投資
投資・銀行
ソフトウェア
時価総額ランキング上位企業(1992年と2019年) / 世界は大きく変化・日本の地位は低下 - ファイナンシャルスター より引用
https://finance-gfp.com/?p=10552
余談:2021年12月の世界の時価総額ランキング
• COVID-19の影響で
石油産業が打撃を
受けて、Appleが首
位に
• 世界的な半導体不
足を受けて、
TSMC、NVIDIA
• EV、自動運転への
期待からTesla
22
https://companiesmarketcap.com/
生物学もこの例外ではない
• Laboratory Automationはこの流れ
• 安くなったコンピュータ(とロボット)がラボに入ってきた
• 疲れ知らずで働き続けるコンピュータが、ラボを価格破壊する
• 生物学の問題を、コンピュータの探索問題に変換する
• 人間が根性でアタリの実験条件を探すのではなく、
コンピュータが総当たりでアタリの実験条件を探し出す
• コンピュータ、ソフトフェアをうまく扱えたやつが、マーケッ
ト、アカデミアを支配する時代へ
• なので、コンピュータ、ソフトフェアについて勉強しましょう
23
目次
• コンピュータはなぜ強力なのか、なぜ社会を変革しているのか
• コンピュータとはどのような性質のものなのか?
• 何がコンピュータにとって難しいのか
• 要件定義:問題のブレイクダウン
• ソフトウェアテストの必要性
• 時間が余ったとき用の予備資料いろいろ
24
コンピュータはどのような性格なのか?
• コンピュータという新しい奴隷(労働力)を躾け
るには、コンピュータの性質を知っていなけ
ればいけない
• 彼らの独特な言葉(プログラミング)を話せなけ
れば、彼らに指示を行うことができない
• 通訳(プログラミング)はプログラマがやってく
れる
• しかし、通訳がいるからといって、相手の風
習を知らないでいいわけではない
25
CPUとはどんなものか?
• 計算を行う半導体
• メモリ上に格納された命令列を読んでいって逐次実行していく
• 基本的な命令は数十個程度、マイナーなのも含めると数百
• 基本的な命令を組み合わせて複雑なことを実現していく
• 実行結果をメモリ上に書き込んでいく
• たったこれだけの機能で、きわめて複雑な機能を提供する
26
CPUができることは極めて少ない
• 逐次実行
• プログラムカウンタが指し示すメモリを読み取り、その命令を実行する
• 実行が終わったら、プログラムカウンタがインクリメントされる
• レジスタ演算
• レジスタとは、CPUの中にある数~30個程度の演算用メモリ、レジスタ間や特定の数値と演算
• プログラムカウンタもレジスタの一種
• 足し算、引き算、掛け算、割り算、大小比較、同値判定、論理演算などができる
• CPUは2つの数値の間の演算しかできない
• 条件ジャンプ
• レジスタやフラグを読み取って、条件に合致したら、プログラムカウンタの値を変更する、無条件
ジャンプも可能
• メモリIO
• レジスタと大容量の主記憶メモリの間で、値の読み書きを行う
• あるレジスタが示すメモリアドレスに、別のレジスタの値を書き込む、などができる
27
※アルゴリズムの説明に必要な機能に限定して抽象化されたCPUなので、実際のCPUの機能とは異なります
コンピュータができることはとても多い
• 「ループ」はコンピュータが強力である理由の一つであるが、
ループが機能として存在しないCPUも存在する(ARMなど)
• 「ループ」は「レジスタ演算」と「条件ジャンプ」で実現される
• コンピュータの多くの機能は、基本機能の組み合わせで実現される
• コンパイラの内部では左から右のような変換が行われている
28
for(i = 0; i < 100; i++ ) {
do_something(i);
}
i = 0;
LOOP_LABEL:
do_something(i);
i++;
if (i < 100) {goto LOOP_LABEL;}
※C言語風の疑似コードなので、C言語っぽく読んでください
※※ x86などのCISCにはLOOP命令があるが割愛、マイクロコードのレベルではたぶん一緒じゃないかな、しらんけど
余談:関数コールは何をやっているのか?
• 関数コールは、スタック(メモリIO)と、ジャンプで実現
• スタックに引数と、リターンアドレスを積んで、関数のアドレスへジャンプ
• 関数は返り値をレジスタに入れて、リターンアドレスへジャンプ
29
result = do_something(i);
stack.push(i);
stack.push(RETURN_LABEL);
goto DO_SOMETHING;
RETURN_LABEL:
stack.pop(), stack.pop();
result = REGISTER0;
DO_SOMETHING:
return_address = stack[-1];
k = stack[-2];
REGISTER0 = k * 2;
goto return_address;
int do_something(int k){
return k * 2;
}
※コールスタックを強調する書き方になっていますが、普通は関数コール専用の命令、リターン専用の命令を使います
プログラミングは技術の組合せの積み上げ
30
• プログラミングの学習とは、下
から上への積み上げ
• 簡単なアルゴリズムを組合せ、
複雑なアルゴリズムを作り上げ
る
• この繰り返しで、コンピュータ
が実行可能な世界を広げていく
• 何重に積み上げられたとしても、
毎秒100億回以上計算できるコン
ピュータにとっては非常に容易
なことが多い
• 愚直に組むと、一瞬で組み合わ
せ爆発するので、計算量を抑え
るためのテクニックが必要
逐次実行
条件ジャンプ メモリIO
レジスタ演算
ループ
ソート
ディープラーニング
動作計画
行列演算
制御理論
多重配列
逆運動学 組合せ最適化
統計処理 キュー
スタック
画像処理
機械学習
画像認識
CPUが提供する機能
アルゴリズムを
組み合わせるこ
とで新しいアル
ゴリズムを作り
上げる
数理モデリング グラフ理論
数値微分
関数
現代的な言語と、
標準ライブラリ
のサポート範囲
ファイルIO
構文解析
※それっぽく並べているだけなので、厳密性はないです
CPUはどのような性質なのか?
• 逐次実行
• あらかじめ記述された命令列を実行する
• レジスタ演算
• コンピュータはたった2個のものしか見えない、操作できない
• 全ての操作を2つの値の操作に帰着させる必要がある
• 条件ジャンプ
• 条件ジャンプによりループを実現することができ、無限の労働力を提供
• パラメータを変えたループは無限の試行錯誤を提供する
• メモリIO
• 人間に比して莫大な記憶能力を持つ
• 人間とコンピュータがどうやってソート(並べ替え)を行うのかを
例に出して、これを性質の違いを説明する
31
人間がソートを行う
• 人間は「全体」が見えるので、ソートはとても簡単
• 見れば分かる
32
緑、橙、青、赤紫、
水色、紫、っと
コンピュータがソートを行う
• コンピュータは2つの数値しか操作できないので、ソートのアルゴリ
ズムは難しい
• 2つの数値の比較、入れ替えを何度も繰り返す
• コンピュータは超高速なので、それでも人間よりも早い
33
水色と橙だと、
橙のほうが大きいな
つぎは、水色と紫だな…
コンピュータのソートのアニメーション
34
https://visualgo.net/en/sorting より引用
• 2つの変数の比較と操作しかしていないのが分かる
人間がソートを行う
• 人間は膨大なデータの「全体」が見えないので、ソートはとて
も難しい
• 見ても分からん
35
ええぇぇぇ
コンピュータがソートを行う
36
さっきと同じ要領でやればえ
えねんな…
できました(1ms)
• コンピュータは2つの数値しか操作できないので、ソートのアルゴリズム
は難しい
• 2つの数値の比較、入れ替えを何度も繰り返す
• コンピュータは超高速なので、それでも人間よりも早い
プログラミングとは何か?
• プログラミングとは、限られた機能のCPUに、複雑な物事を実行さ
せること
• CPUは「命令の逐次実行」 「レジスタ演算」 「条件ジャンプ」「メモリ
IO」しかできない
• プログラマはコンピュータの気持ちになって、「2つしか物が見れないコン
ピュータがどうやって全体を見るのか」を考える
• 象を撫でる盲目の賢人を作り上げる
• 「無意識を意識する」のがプログラムの設計プロセス
• 「見れば分かるじゃん」は禁句、それは人間の考え方
• 人間は「全体」を見れば自明なことは考えない傾向にある
• 人間が行っている無意識の動作を、意識的に記述する必要がある
• 意識的に記述できれば、ブレイクダウンを繰り替えして、コンピュータが実
行可能なものに帰着させていく(=要件定義)
37
コンピュータはどのような性質か?
• プログラミングは「無意識を意識」して、CPUの機能に帰着されるよう
に記述しなければならない
• CPUは逐次実行、あらかじめすべてを記述する必要
• CPUは局所的な構造(たかだか2点の値)しか操作できない
• メモリは莫大な空間を持つ
• 無限ループにより、パラメータを変えた動作を何度も繰り返す
• 記憶力が超人的で、盲目で、二つの変数の操作に限っては思考速度が人間
の数兆倍速く、外国語を話す奴隷、に渡す作業マニュアルを我々は書かな
くてはいけない
• 上記の性質を持つコンピュータは苦手なことがとても多い
• コンピュータが苦手なことを知ることで、それらを避けるアプローチを検討するこ
とができる
38
目次
• コンピュータはなぜ強力なのか、なぜ社会を変革しているのか
• コンピュータとはどのような性質のものなのか?
• 何がコンピュータにとって難しいのか
• 要件定義:問題のブレイクダウン
• ソフトウェアテストの必要性
• 時間が余ったとき用の予備資料いろいろ
39
何がコンピュータにとって難しいのか
• 人間は「全体」が見れる
• コンピュータは「全体」が見えない、できるのは2つの数値の操作だ
け
• 画像認識のような、「全体構造」を認識することはコンピュータに
とって極めて難しい
• というか「全体構造」が見えるのであれば、それは「強い人工知能」
• 現代の技術では「全体構造」を見ることはできない
• どうやって、全体構造を見ないで全体構造を見ているフリをするのか?が求
められている
• 細胞をカウントする問題を例にとって説明する
40
人間が細胞のカウントをする
41
https://commons.wikimedia.org/wiki/File:Staphylococcus_aureus_01.jpg より引用
見れば分かるじゃん
1,2,3,4,5,6,7,8,
9.10,11,12,13 … …
(1時間後)
120個/mm2くらいかな
コンピュータが細胞のカウントをする
42
https://commons.wikimedia.org/wiki/File:Staphylococcus_aureus_01.jpg より引用
• バイラテラルフィルタでノイズ除去
• DB-SCANを使って、セグメンテー
ション
• 連接領域の面積を見てバックグラウ
ンドを排除
• 連接領域の縦横比を見て異常な形状
を削除して……
いや、むしろ
• バイラテラルフィルタでノイズ除去
• キャニーフィルターでエッジ抽出
• エッジをハフ変換して円状の物体を
抽出
• 円の大きさを見て要らんやつを捨て
て……
(10ms後)
100個/mm2ですね
プログラムから画像はどう見えるのか?
• プログラムから画像はただの数値の配列
に見える
• 画像の左上のピクセルの輝度は252
• 数値の配列に対する操作を繰り返して画
像を認識しなくてはいけない
• コンピュータは二つの数値の間の操作し
かできないので、人間的な認識をさせる
ことはできない
• コンピュータが実行できる画像処理を繰
り返して、画像認識を実現する
• バイラテラルフィルタ、DB-SCAN、キャ
ニーフィルター、ハフ変換、etc…
• 超大変
43
統計によって、全体を見ないで全体を見る
• 前提条件を確認する
• 細胞は明るい、バックグラウンドは暗い
• 出力するのは統計値なので、誤差が許容され
るよな?
• 前提条件をハックできないか?
• 細胞はより明るくできないか?
• バックグラウンドはもっと暗くできないか?
• ハックしてみる
• 実験環境を弄る前に、まず画像を弄って検証
してみよう→割といけるやんけ
• 右図はパワポの機能でコントラストを修正
• 画像の輝度の強度から、細胞数を推定するプ
ログラムを作成できそうだな
• 撮影環境を改善したら割と精度よくなりそう
44
コントラスト改善
平均輝度
181
細胞数
輝度
181
なぜ統計とコンピュータが相性がいいのか?
• コンピュータは「全体構造」を見ることができない
• 一度に見ることができるのはたった2つの数字だけ
• 統計量は莫大なデータを、たった数個の数値に次元圧縮(写像)
• 次元圧縮された数個の統計量を見ることで、コンピュータでも
疑似的に「全体構造」を見ることができる
• コンピュータにとって難しい問題を、簡単な問題に変換できる
• 余談:なぜディープラーニングが流行っているのか?
• いい感じの次元圧縮を繰り返して、一度に2つの数字しか操作できない
コンピュータでも「全体構造」を認識できているフリができるから
45
余談:統計量ハック
• 統計量しか見てないプログラムは容易にハックされる
46
https://www.autodesk.com/research/publications/same-stats-different-graphs より引用
目次
• コンピュータはなぜ強力なのか、なぜ社会を変革しているのか
• コンピュータとはどのような性質のものなのか?
• 何がコンピュータにとって難しいのか
• 要件定義:問題のブレイクダウン
• ソフトウェアテストの必要性
• 時間が余ったとき用の予備資料いろいろ
47
要件定義とは何か?
• 雑に説明すると「やりたいこと」をヒアリングし、「それを実
現するは何が必要なのか」を考えること
• 大きな問題を小さな問題の集合にブレイクダウンする
• 小さな問題をもっと小さな問題の集合にブレイクダウンする
• これを繰り返し、「コンピュータが実行可能な問題の集合」に分解し
ていく
• その他、要件定義で決めること(割愛)
• 機能要件、非機能要件の洗い出し
• 予算・スケジュール・人員の見積
• コミュニケーション方法の確定
48
分散をブレイクダウンしてみる
• 分散の公式のそれぞれの演算を、CPUの機能に落とし込んでみると、比
較的簡単にプログラムにできそうだと分かる
• 数式をプログラムで表現するには、全く性質の違うもので再現しようとし
ているので、割と大変
• 数式: (高校数学では)時系列はない、連続、無限小、無限大を取り扱う
• プログラム:時系列がある、離散、有限で取り扱う
• 余談:多くの人が、高校数学の発想でプログラムを理解しようとして挫折する
49
𝑆2
=
1
𝑛
i=1
n
(𝑥𝑖 − 𝑥)2
割り算
ループ+
足し算
メモリIO
平均値=
ループ+メモリIO+
足し算+割り算
二乗=掛け算
def variance(x):
n = len(x)
ave = sum(x) / n
t = 0
for xi in x:
t += (xi - ave) * (xi - ave)
var = t / n
return var
要件定義はブレイクダウン
50
細胞培養を行うロボット
モータ制御
ハードウェア制御 センシング
画像処理
細胞の分類
機械学習
カメラ制御
逆運動学 画像認識
ロギング
設定を読み込んで
実験条件を固定
制御理論
やりたいことを分解していって、
「コンピュータが実行できること」
に還元する
コンピュータが実行できることとして、
よく知られていること
動作計画
JSON読込
※それっぽく並べているだけなので、厳密性はないです
再掲:プログラミングは技術の組合せの積み上げ
51
• プログラミングの学習とは、下
から上への積み上げ
• 簡単なアルゴリズムを組合せ、
複雑なアルゴリズムを作り上げ
る
• この繰り返しで、コンピュータ
が実行可能な世界を広げていく
• 何重に積み上げられたとしても、
毎秒100億回以上計算できるコン
ピュータにとっては非常に容易
なことが多い
• 愚直に組むと、一瞬で組み合わ
せ爆発するので、計算量を抑え
るためのテクニックが必要
逐次実行
条件ジャンプ メモリIO
レジスタ演算
ループ
ソート
ディープラーニング
動作計画
行列演算
制御理論
多重配列
逆運動学 組合せ最適化
統計処理 キュー
スタック
画像処理
機械学習
画像認識
CPUが提供する機能
アルゴリズムを
組み合わせるこ
とで新しいアル
ゴリズムを作り
上げる
数理モデリング グラフ理論
数値微分
関数
現代的な言語と、
標準ライブラリの
サポート範囲
ファイルIO
構文解析
※それっぽく並べているだけなので、厳密性はないです
要件定義は上と下のすり合わせ
52
「コンピュータが実行できること」
を知らないと要件定義できない
プログラマと会話するのに必須
「CPUは何ができるのか?」
を知っておくと、何が難しいのかが分かる
プログラマが何とかしてくれる
やりたい
こと
逐次実行、レジスタ演算
条件ジャンプ、メモリIO
コンピュータが
実行できること
やりたいことをMECEに分解していって、
「コンピュータが実行できること」
に還元する、分解能力、言語能力
要件定義はなぜ難しいのか?
• 「やりたいこと」を細かくブレイクダウンしていき、何度もブレイクダウ
ンを繰り返し、最終的に「コンピュータが実行できること」に還元する
• そのためには「人間が無意識に行っていることを意識して記述する認識能力、言語
化能力」「大問題を小問題分解する能力」「コンピュータが実行できることに関す
る知識」が要求される
• 「コンピュータが実行できること」を知らないと、誤った方向にブレイク
ダウンしていってしまう
• ダメな人は「人間が実行できること」にブレイクダウンしてしまう
• 「やりたいこと」に制約条件を加えると、うまくコンピュータが実行でき
るかも、という発想が要求される
• 何がコンピュータにとって簡単なのか、難しいか、を知らなければ、適切な制約条
件を導入することができない
• 前述の細胞のカウントを例に出すと、「厳密なカウントではなく、大体あってれば
いい」という制約を発見できるかどうか
53
余談:要件定義はなぜ難しいのか?inリアル
• リアルワールドの要件定義は「やりたいこと」を複数人が主張
• 複数の人が、各自が自分の業績評価が上がるように別のことを主張する
• 「やりたいこと」同士がコンフリクトして同時達成困難
• そもそも、動くものが出来上がってこないと「無意識を意識する」ことができないので、
適切な要求が上がってこない
54
https://xtech.nikkei.com/atcl/nxt/column/18/01157/051900036/ より引用
https://diamond.jp/articles/-/144498 より引用
プログラマーの考え方を身に着ける
• 要件定義が上手くできるようになるためには、プログラマの考え方
を身に着けることが大事、プログラマーの能力≒言語能力
• プロセスや作業に名前を付ける
• 「無意識の行動を意識する」には、名づけが必須
• 人は言語によって世界を認識する、名づけと認識は表裏一体
• 例:虹の色数は言語によって異なる
• 名前がついたものはパラメータを除いて不変であること
• パラメータしか違わないものには同じ名前がついていること
• ありとあらゆるものを、 f(x) にしていく
• プロセスや作業の集合の順序構造で、全体が定義できること
55
何が変更されうるかを事前検討する
• 非プログラマは、何がどう組み合わさっているか分からない
• 出来上がったものを見て、気軽に「このへんを直したい」といいがち
• 「最初から交換する可能性があるって言ってくれてれば……」となる
• 要件定義段階で何が変更されうるかを検討しておく必要がある
• プログラムの保守性や、変更可能性を引き上げることができる
56
楽
楽 楽
難 難
難
無理
このへん
非プログラマから見る
出来上がったプログラム
プログラマの見る世界
細胞カウントシステムの顕微鏡を交換したい
• デジタル顕微鏡が変わるとどうなるのか?
• デジタル顕微鏡のデバイスIDが変わる
• レンズの色収差、歪み、絞り、被写界深度が変わる
• 顕微鏡の照明が変わるので、画像全体の明るさが変わる
• 画像の解像度、画角が変わる
• 撮像素子の感度曲線が変わる、ゲイン調整やガンマ調整が必要
• 顕微鏡が交換されることを前提にプログラムを組んでいないと、動作しなくなる
• 画像処理のために設定されたパラメータが全滅する
• 顕微鏡ごとに異なる画像処理パラメータを保存できる仕組みを作る必要がある
• プログラムを作成する前に、顕微鏡が変わる可能性に気づいて、それをプログラ
マに伝えられるか?
• Wetの人は顕微鏡が変わることが当たり前なので、自明すぎて気づかないかもしれない
• 人間にとって当たり前のことでも、コンピュータにとって難しいことは極めて多い
• だからこそ、コンピュータの性質について知っておく必要がある
57
余談:プログラマが大変だと思うこと
58
• 0個を1個にしてくれは、ちょっとツライ
• 新しいシステムを作ってくっつけるだけなので、まぁなんとか……
• 1個を2個にしてくれは、無茶苦茶キツイ
• 不変であることを前提に作られたプログラムを可変個に対応させなければい
けない
• 2個を10個にしてくれ、はほぼゼロコスト
• 配列の中身の数が変わるだけ
• オーダーが1つ変わるだけなら、割とそのまま動く
• 10個を1000個にしてくれは死ぬ
• オーダーが2つ変わると、処理方式やアルゴリズムそのもの、画面構成を見
直さないといけない、場合によってはプログラミング言語も変更する
目次
• コンピュータはなぜ強力なのか、なぜ社会を変革しているのか
• コンピュータとはどのような性質のものなのか?
• 何がコンピュータにとって難しいのか
• 要件定義:問題のブレイクダウン
• ソフトウェアテストの必要性
• 時間が余ったとき用の予備資料いろいろ
59
ソフトウェアテストの必要性
• ソフトウェアテストは、ソフトウェアを安全に改修するための仕組み
• ソフトウェアテストを知るには、まずV字モデルを知る必要がある。
• システム開発における開発工程とテスト工程の対応表をあらわしたもの
60
要求分析
要件定義
基本設計
詳細設計
コーディング
受け入れ試
験
システム
テスト
結合
テスト
単体
テスト
コード
レビュー
↑ココで使われる技術
ソフトウェアテストとは?
• プログラムをブラックボックスとしてみなして、外部からのプログラムの振る舞いの同
一性をある程度保証し続ける仕組み
• ソフトウェアテストのやり方
• 入力値と、期待する出力値のペアをいくつか作成する
• プログラムを作成し、ある入力値を入れた際に、期待する出力値が出るかどうかを確認する
• プログラムが改修されたとしても、同じ入力値と出力値になることを自動で確認し続ける
• ソフトウェアテストは、ソフトウェアの機能を保証しながら開発し続けるために必要
• これにより副作用を発生させないで機能追加することができる
• 副作用が発生したとしても、テストが落ちるので、バグ入りを出荷することが減る
• 現代の開発では、単体テスト、結合テスト程度まで自動化している
• 頑張ってる会社はシステムテストも自動化、入力パターンのシナリオを作り、人間が操作するのと
同じように入力を行い、同じ挙動、同じ画面出力であることを確認する
61
ソフトウェアテストの実例
• 平方根を取るプログラムがちゃん
と平方根を返せているかをテスト
する
• 期待する動作
• 正の値に対しては平方根を返す
• 負の値に対して、エラーを返す
• 全てTrueなので、入力と出力が期
待値通りだと分かる
62
コード改修によるテストの失敗検知
• 平方根をmath.sqrtではなく、
0.5乗を使うようにコードを修正
• テストが一つFalseになってい
るので、コード改修によって、
コードの振る舞いが変わってい
ることが分かる
• 0.5乗の場合、負の値を入力する
と、複素数を返すので、エラー
にはならない
63
生物学はテスト可能になっているか?
• 現在のWetの実験は、再現性が怪しい
• 実験のたびに無意識の行動や実験機器の状態が変化してしまう
• 実験が成功するまで繰り返して、チャンピオンデータを論文発表する
• 実験者の性別によってラットの行動が変わるなんてこともある
• ラットは男性のテストステロンによってストレスを感じる
https://www.nature.com/articles/nmeth.2935
• 論文に書かれているのと同じ条件で実験しても、同じ結果が返ってこない
• 論文に書かれていないパラメータが無数に存在している
• 無意識の行動は論文に記載されない
• 再現できないことが当たり前なので「 ○○○○細胞はありまぁす!」が発生
• Laboratory Automationは、実験の手続きをすべて記述し、ロボットに実
行させることで、なるべく再現可能にする
• ソフトウェア業界ではInfrastructure as a Codeという概念がおそらくLAと近い
64
余談:Infrastructure as a Code
• IaaC以前
• サーバのセットアップは、人間がコンソールにログインしていろいろ
とコマンドを叩くものだった
• 作業者によってサーバの環境が違う、作業時期によってライブラリの
バージョンが違う、クラスタ運用しているのにマシンごとに環境が違
う、といった問題が発生
• IaaC以後
• クラウドの普及で仮想サーバが当たり前になったので、
サーバのセットアップを、プログラムに行わせるようになった
• 同じ設定のサーバを簡単に作れるようになった
• プログラムを動作させるサーバの環境違いによる挙動の違いに悩まさ
れることが無くなった
65
まとめ
• コンピュータの性能向上によってありとあらゆる場所にコン
ピュータが普及、すべての産業が変革を余儀なくされている
• プログラミングの知識だけでは、現実の複雑さに向き合うこと
はできない、ソフトウェアエンジニアリングの知識が必要
• CPUはできることが非常に少ないが、それらを組み合わせて複
雑な動作を実現することができる
• 要件定義とは、「やりたいこと」を「コンピュータが実行可能
なことの集合」に分解していくこと
• 分解していくための認識能力、コンピュータが実行可能なことに関す
る知識が必要
66
次に読むとよさそうな本
67
目次
• コンピュータはなぜ強力なのか、なぜ社会を変革しているのか
• コンピュータとはどのような性質のものなのか?
• 何がコンピュータにとって難しいのか
• 要件定義:問題のブレイクダウン
• ソフトウェアテストの必要性
• 時間が余ったとき用の予備資料いろいろ
68
Laboratory Automationのクラウド化
• LAの汎用マシンを大量に並べた事業者がそのうち現れる
• 現在のLabの実験請負がシステム化される
• 最初はメカニカルタークみたいな感じで、裏側に人間がいるだろうが、徐々
に自動化比率が上がっていく
• Wetの人は手順書をプログラムで書いて、APIで事業者に投げつける
と結果が返ってくる世界になる
• 裏でデジタルツインが動作計画を評価して、実験の成功確率を評価
• 成功確率が一定を上回った動作計画であれば、実行する
• 論文にもプログラムが付いていて、事業者にそれを投げつけると、
同じ結果が返ってくるので、誰でも検証できる世界になる
• 機械学習系の論文では、論文に使われたコードとデータセットがGitHubで公
開されることがよくある、同じことがWetでも起こりうる
69
Laboratory Automationとダイバーシティ生産
• ダイバーシティ生産とは、落合陽一が提唱する新しい製造業の形
• インテリジェンス化した製造装置が、多様な製品を作り出す世界観
• LAは図中の「多様な生産」に相当すると考えることができる
• MIで候補薬を設計して、LAで実験する体制が作れれば、全自動オーダーメイド医療が可
能になる
• がん細胞を採取したら、勝手に培養してくれ、勝手に効く薬が出てくる世界
落合陽一 日本再興戦略 「近代とは何か」より引用
余談:半導体からCPUへの積み上げ
71
NAND
AND OR
NOT
ブール代数
フリップフロップ
SRAM マルチプレクサ
半加算器
乗算器
メモリIO
レジスタ
DRAM
逐次実行
条件ジャンプ レジスタ演算
全加算器
集積回路
XOR
CPUの創りかた
LEDの点灯から、ブール代
数、カルノー図から、最終
的には4bit CPUの作成と、
そのうえで動くアセンブラ
の作成まで行う
大学のデジタル回路の単位
はこれで取りました
トランジスタ
除算器
コンピュータシステムの理
論と実装
nand2tetrisという、NAND
からCPUを作り上げて、そ
のうえでコンパイラを作り、
テトリスを動かすという大
学の講義の教科書の翻訳版
CPU
論理素子を
組み合わせ
た回路
デジタル素子
アナログ素子
量子力学(固体物理学) 基礎理論
※それっぽく並べているだけなので、厳密性はないです
余談:なぜCUIが今でも使われるのか
72

Weitere ähnliche Inhalte

Was ist angesagt?

「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へYoheiGibo
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページCLARA ONLINE, Inc.
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチYoshiki Hayama
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
プロダクトの強い軸を作るプロダクトマネジメントフレームワーク
プロダクトの強い軸を作るプロダクトマネジメントフレームワークプロダクトの強い軸を作るプロダクトマネジメントフレームワーク
プロダクトの強い軸を作るプロダクトマネジメントフレームワークkumiko koshiro
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門Masahito Zembutsu
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビューTakafumi ONAKA
 
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことかYoshiki Hayama
 
マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話cyberagent
 
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントDX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントTakeshi Kakeda
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Takayuki Shimizukawa
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpkyon mm
 
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へakipii Oga
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくるtoshihiro ichitani
 
ヒューレットパッカード社の 社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
ヒューレットパッカード社の 社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business Tokoroten Nakayama
 

Was ist angesagt? (20)

「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
はじめてのPRD
はじめてのPRDはじめてのPRD
はじめてのPRD
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
プロダクトの強い軸を作るプロダクトマネジメントフレームワーク
プロダクトの強い軸を作るプロダクトマネジメントフレームワークプロダクトの強い軸を作るプロダクトマネジメントフレームワーク
プロダクトの強い軸を作るプロダクトマネジメントフレームワーク
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか
 
マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話
 
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントDX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくる
 
ヒューレットパッカード社の 社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
ヒューレットパッカード社の 社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
 

Ähnlich wie ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)

デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択Shingo Kitayama
 
JPC2016: PUP-01 知って得する MPN 最新情報
JPC2016: PUP-01 知って得する MPN 最新情報JPC2016: PUP-01 知って得する MPN 最新情報
JPC2016: PUP-01 知って得する MPN 最新情報MPN Japan
 
Mirai carved out by innovations
Mirai carved out by innovationsMirai carved out by innovations
Mirai carved out by innovationsOsaka University
 
クラウドの進化とメディア理解の発展
クラウドの進化とメディア理解の発展クラウドの進化とメディア理解の発展
クラウドの進化とメディア理解の発展Osaka University
 
『ハイブリッドクラウド研究会』創立について
『ハイブリッドクラウド研究会』創立について『ハイブリッドクラウド研究会』創立について
『ハイブリッドクラウド研究会』創立についてMasahiko Ebisuda
 
ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~Ken Azuma
 
デジタルプラットフォーム力を実現させているものは何か?
デジタルプラットフォーム力を実現させているものは何か?デジタルプラットフォーム力を実現させているものは何か?
デジタルプラットフォーム力を実現させているものは何か?Hiroshi Takahashi
 
05.日本マイクロソフト(株)_発表資料
05.日本マイクロソフト(株)_発表資料05.日本マイクロソフト(株)_発表資料
05.日本マイクロソフト(株)_発表資料wagatuma
 
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来Daiyu Hatakeyama
 
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介Junichi Kodama
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre正善 大島
 
20180704 soracom digitalization_final
20180704 soracom digitalization_final20180704 soracom digitalization_final
20180704 soracom digitalization_finalHideki Ojima
 
エンジニアのキャリアを考える
エンジニアのキャリアを考えるエンジニアのキャリアを考える
エンジニアのキャリアを考えるMKT International Inc.
 
高度Ict利活用人材育成推進会議プレゼン(1124) final(改)
高度Ict利活用人材育成推進会議プレゼン(1124) final(改)高度Ict利活用人材育成推進会議プレゼン(1124) final(改)
高度Ict利活用人材育成推進会議プレゼン(1124) final(改)Tsukasa Makino
 
if-up 2019 | キーノートパネルセッション「プロダクト x テクノロジーx イノベーション」
if-up 2019 | キーノートパネルセッション「プロダクト x テクノロジーx イノベーション」if-up 2019 | キーノートパネルセッション「プロダクト x テクノロジーx イノベーション」
if-up 2019 | キーノートパネルセッション「プロダクト x テクノロジーx イノベーション」SORACOM,INC
 
非エンジニアのためのIt業界
非エンジニアのためのIt業界非エンジニアのためのIt業界
非エンジニアのためのIt業界Hideto Masuoka
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」naoki ando
 

Ähnlich wie ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質) (20)

デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
 
OSS Market Momentum In Japan
OSS Market Momentum In JapanOSS Market Momentum In Japan
OSS Market Momentum In Japan
 
JPC2016: PUP-01 知って得する MPN 最新情報
JPC2016: PUP-01 知って得する MPN 最新情報JPC2016: PUP-01 知って得する MPN 最新情報
JPC2016: PUP-01 知って得する MPN 最新情報
 
Mirai carved out by innovations
Mirai carved out by innovationsMirai carved out by innovations
Mirai carved out by innovations
 
クラウドの進化とメディア理解の発展
クラウドの進化とメディア理解の発展クラウドの進化とメディア理解の発展
クラウドの進化とメディア理解の発展
 
Microsoft 365 Day Session 3
Microsoft 365 Day Session 3Microsoft 365 Day Session 3
Microsoft 365 Day Session 3
 
『ハイブリッドクラウド研究会』創立について
『ハイブリッドクラウド研究会』創立について『ハイブリッドクラウド研究会』創立について
『ハイブリッドクラウド研究会』創立について
 
ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~
 
デジタルプラットフォーム力を実現させているものは何か?
デジタルプラットフォーム力を実現させているものは何か?デジタルプラットフォーム力を実現させているものは何か?
デジタルプラットフォーム力を実現させているものは何か?
 
05.日本マイクロソフト(株)_発表資料
05.日本マイクロソフト(株)_発表資料05.日本マイクロソフト(株)_発表資料
05.日本マイクロソフト(株)_発表資料
 
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来
Wiz国際情報工科自動車大学校_特別講演_ITの織り成す未来
 
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
 
20180704 soracom digitalization_final
20180704 soracom digitalization_final20180704 soracom digitalization_final
20180704 soracom digitalization_final
 
エンジニアのキャリアを考える
エンジニアのキャリアを考えるエンジニアのキャリアを考える
エンジニアのキャリアを考える
 
高度Ict利活用人材育成推進会議プレゼン(1124) final(改)
高度Ict利活用人材育成推進会議プレゼン(1124) final(改)高度Ict利活用人材育成推進会議プレゼン(1124) final(改)
高度Ict利活用人材育成推進会議プレゼン(1124) final(改)
 
if-up 2019 | キーノートパネルセッション「プロダクト x テクノロジーx イノベーション」
if-up 2019 | キーノートパネルセッション「プロダクト x テクノロジーx イノベーション」if-up 2019 | キーノートパネルセッション「プロダクト x テクノロジーx イノベーション」
if-up 2019 | キーノートパネルセッション「プロダクト x テクノロジーx イノベーション」
 
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
Developers Summit 2013【15-B-6】開発者の "資産形成" につながる Action とは?
 
非エンジニアのためのIt業界
非エンジニアのためのIt業界非エンジニアのためのIt業界
非エンジニアのためのIt業界
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
 

Mehr von Tokoroten Nakayama

データマイニングの話詰め合わせ
データマイニングの話詰め合わせデータマイニングの話詰め合わせ
データマイニングの話詰め合わせTokoroten Nakayama
 
データサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたことデータサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたことTokoroten Nakayama
 
機械学習の精度と売上の関係
機械学習の精度と売上の関係機械学習の精度と売上の関係
機械学習の精度と売上の関係Tokoroten Nakayama
 
難易度ボラタリティグラフという分析手法
難易度ボラタリティグラフという分析手法難易度ボラタリティグラフという分析手法
難易度ボラタリティグラフという分析手法Tokoroten Nakayama
 
インターネット上の情報発信手段の変遷 情報発信の簡易化
インターネット上の情報発信手段の変遷 情報発信の簡易化インターネット上の情報発信手段の変遷 情報発信の簡易化
インターネット上の情報発信手段の変遷 情報発信の簡易化Tokoroten Nakayama
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016Tokoroten Nakayama
 
機械学習ビジネス研究会(未踏研究会)
機械学習ビジネス研究会(未踏研究会)機械学習ビジネス研究会(未踏研究会)
機械学習ビジネス研究会(未踏研究会)Tokoroten Nakayama
 
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumiTokoroten Nakayama
 
失敗から学ぶ データ分析グループの チームマネジメント変遷
失敗から学ぶデータ分析グループのチームマネジメント変遷失敗から学ぶデータ分析グループのチームマネジメント変遷
失敗から学ぶ データ分析グループの チームマネジメント変遷Tokoroten Nakayama
 
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCTプロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCTTokoroten Nakayama
 
特徴ベクトル変換器を作った話 #dogenzakalt
特徴ベクトル変換器を作った話 #dogenzakalt特徴ベクトル変換器を作った話 #dogenzakalt
特徴ベクトル変換器を作った話 #dogenzakaltTokoroten Nakayama
 
特徴ベクトル変換器を作った話
特徴ベクトル変換器を作った話特徴ベクトル変換器を作った話
特徴ベクトル変換器を作った話Tokoroten Nakayama
 
jubatusのECサイトへの適応 #jubatus_hackathon
jubatusのECサイトへの適応 #jubatus_hackathonjubatusのECサイトへの適応 #jubatus_hackathon
jubatusのECサイトへの適応 #jubatus_hackathonTokoroten Nakayama
 
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)Tokoroten Nakayama
 
DAUを評価指標から捨てた会社の話 #tokyowebmining
DAUを評価指標から捨てた会社の話 #tokyowebminingDAUを評価指標から捨てた会社の話 #tokyowebmining
DAUを評価指標から捨てた会社の話 #tokyowebminingTokoroten Nakayama
 
BattleField3に見る 自己表現としてのゲームプレイ
BattleField3に見る自己表現としてのゲームプレイBattleField3に見る自己表現としてのゲームプレイ
BattleField3に見る 自己表現としてのゲームプレイTokoroten Nakayama
 
情報処理とは何か あとbigdataとか
情報処理とは何か あとbigdataとか情報処理とは何か あとbigdataとか
情報処理とは何か あとbigdataとかTokoroten Nakayama
 
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話Tokoroten Nakayama
 
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話Tokoroten Nakayama
 
たのしいうぇっぶくろーら #pyfes
たのしいうぇっぶくろーら #pyfesたのしいうぇっぶくろーら #pyfes
たのしいうぇっぶくろーら #pyfesTokoroten Nakayama
 

Mehr von Tokoroten Nakayama (20)

データマイニングの話詰め合わせ
データマイニングの話詰め合わせデータマイニングの話詰め合わせ
データマイニングの話詰め合わせ
 
データサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたことデータサイエンティスト養成読本の解説+書き忘れたこと
データサイエンティスト養成読本の解説+書き忘れたこと
 
機械学習の精度と売上の関係
機械学習の精度と売上の関係機械学習の精度と売上の関係
機械学習の精度と売上の関係
 
難易度ボラタリティグラフという分析手法
難易度ボラタリティグラフという分析手法難易度ボラタリティグラフという分析手法
難易度ボラタリティグラフという分析手法
 
インターネット上の情報発信手段の変遷 情報発信の簡易化
インターネット上の情報発信手段の変遷 情報発信の簡易化インターネット上の情報発信手段の変遷 情報発信の簡易化
インターネット上の情報発信手段の変遷 情報発信の簡易化
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
 
機械学習ビジネス研究会(未踏研究会)
機械学習ビジネス研究会(未踏研究会)機械学習ビジネス研究会(未踏研究会)
機械学習ビジネス研究会(未踏研究会)
 
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
 
失敗から学ぶ データ分析グループの チームマネジメント変遷
失敗から学ぶデータ分析グループのチームマネジメント変遷失敗から学ぶデータ分析グループのチームマネジメント変遷
失敗から学ぶ データ分析グループの チームマネジメント変遷
 
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCTプロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
プロダクション環境でオンラインで機械学習を動かすにあたってツライ話 #MLCT
 
特徴ベクトル変換器を作った話 #dogenzakalt
特徴ベクトル変換器を作った話 #dogenzakalt特徴ベクトル変換器を作った話 #dogenzakalt
特徴ベクトル変換器を作った話 #dogenzakalt
 
特徴ベクトル変換器を作った話
特徴ベクトル変換器を作った話特徴ベクトル変換器を作った話
特徴ベクトル変換器を作った話
 
jubatusのECサイトへの適応 #jubatus_hackathon
jubatusのECサイトへの適応 #jubatus_hackathonjubatusのECサイトへの適応 #jubatus_hackathon
jubatusのECサイトへの適応 #jubatus_hackathon
 
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
 
DAUを評価指標から捨てた会社の話 #tokyowebmining
DAUを評価指標から捨てた会社の話 #tokyowebminingDAUを評価指標から捨てた会社の話 #tokyowebmining
DAUを評価指標から捨てた会社の話 #tokyowebmining
 
BattleField3に見る 自己表現としてのゲームプレイ
BattleField3に見る自己表現としてのゲームプレイBattleField3に見る自己表現としてのゲームプレイ
BattleField3に見る 自己表現としてのゲームプレイ
 
情報処理とは何か あとbigdataとか
情報処理とは何か あとbigdataとか情報処理とは何か あとbigdataとか
情報処理とは何か あとbigdataとか
 
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
 
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
 
たのしいうぇっぶくろーら #pyfes
たのしいうぇっぶくろーら #pyfesたのしいうぇっぶくろーら #pyfes
たのしいうぇっぶくろーら #pyfes
 

Kürzlich hochgeladen

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 

Kürzlich hochgeladen (10)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)