SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
「書く」ソフトウェア教育から
「読む」ソフトウェア教育への転換
山上俊彦
IoT 事業本部, ACCESS
2016/07
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 1 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
書くソフトウェア教育の
生産性に疑問を持ち
 よりよい方法を
  捜す人が対象
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 2 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
探して読むを基本に
1 日 1 万行読むための
 ソフトウェア教育を
     解説
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 3 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
読むソフトウェア教育の
イントロ
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 4 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
普遍的な知的能力の獲得
既存の知識
ネット上の資産
(利用可能)
- 最小ギャップの
発見
 問題解決
ソリューション
【ソフトウェアでも技術でも事業開発でも同じ:オープンイノベーション時代のスキル】
検索・結合 洞察
小学校の読書 - 作家教育はしない
【読み書きの教育】
時間がたてば
自分も他人
- 読むスキルの需要
【ソフトウェア開発における不可避の時間軸の問題】
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 5 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
何故、「読む」ソフトウェア教育?
小さな完結する
ソフトウェア製作は
企業にはない
- 100 行のソフトを
書く演習は必要?
【情報通信ソフトウェアで 30 年務めた所感】
書く:
完結する、
ゼロから動く
- 読む:
俯瞰してつかむ
【ソフトウェア教育のトレンド変化】
トップダウン設計力ボトムアップコーディング力
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 6 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
読むソフトウェア教育
1. ソフトウェアは
書かないと
理解できない
2. 書かないと
楽しくない
【読むソフトウェア教育への 2 つの反論】
書く教育は言語や
プラットフォームに
依存
- 教育者の選択が
悪いと役に立たない
【読むソフトウェア:言語依存・プラットフォーム依存のない教育】
書くスキル
- 読むスキル
【読み書きにはそれぞれ固有のスキル: 読む教育の教育は不足】
(デバッグスキル、
実行環境スキル)
(大量読破、俯瞰スキル)
(工数判定、品質判定、依存性・拡張性判定)
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 7 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
OSS に見るプログラミングスキル転換
スキル パワー
10 年前の
プログラミング
アーキテクト
能力
スキルパワー
今の
プログラミング
ソフトは資産ではなくて負債 (1 行でも書かないほうがいい)
80 % 以上はフレームワークが仕事をしている
何をどう流用し、組み合わせるかを知っていることが決定的
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 8 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
俯瞰するプログラミングで獲得すべき能力
開始、終了、接点、
繰り返し、の把握
依存性、ドキュメント、
基盤、拡張の把握
処理作法、名前、
記述規則、の把握
品質、例外処理、
負荷対応の把握
【俯瞰するプログラミングスキル】
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 9 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを
読む技術
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 10 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを読む技術
構成力を
付ける
-
名前、ファイル、
ライブラリ、拡張性、
プロジェクト統一規則
【読むソフトウェア:構成力(抽象化単位)】
動的構成力を
付ける
-
利用技術、
利用基盤、依存性、
処理ルール (エラー等)
【読むソフトウェア:動的構成力(抽象化単位)】
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 11 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを読む技術 (2)
判定力を付ける -
利用技術、規模、
複雑さ、依存性、
拡張性、品質
【読むソフトウェア:判定力(利用可能性を判断)】
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 12 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースコードを読む技術 (3)
巨視的な理解
規模の把握 (ファイル数、行数など)、ディレクトリ構造、ドキュメ
ントの精査、プロ  ェクトのポータルサイトの確認 (サイトマッ
プ)、メーリングリスト、掲示板等コミュニティサイトの確認、名前
付け規約の確認、ソースコード管理システム、バグ管理システム
微視的な理解
ソースコード、ソースコードリファレンス、ChangeLog、バグデー
タベース、ソースコード管理システム (バージョン間の差分)、検索
エンジン、メーリングリスト、コーディングガイドライン
周辺
言語選択、実行環境選択、依存環境、プラットフォーム選択、圧縮
方法選択、ドキュメンテーション、コミュニティ
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 13 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
具体的なソフトウェアソースの
読み方
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 14 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースの読み方
シーケンシャル
実行フロー
(ジャンプ) 探して戻る
【読み方はいろいろ】
静的に読む
(IDE, gdb など
ツール利用)
-
動的に読む
(ログ、性能などを
読む)
【大量だと静的に読むのも大変】
はしから順に読む -
順書きされていない
順読みするように
できていない
【もっとも非効率的な読み方】
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 15 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
読まない技術
読む技術とは
読まない (飛ばす)
技術
-
読むべきところを
見つける
【もっとも効率的な読み方(読まないスキル): 1 人で読めるのは 1 万行くらい】
(e.g. oprofile, gprof)
目的に合わせて絞って読む
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 16 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースを読む: 読む目的
書くのは動けばいいが、読む目的はいろいろ
プログラミングの学習(テクニック、作法、構造)
コードの概要(構造、外部 IF(F, DB, Net)、技術理解、異常処理、運
用処理)
品質、外部依存性、チーム構造、歴史 (最近の更新)、ライセンス
改造、拡張の準備
コードは How、テストは What、ドキュメントは Why
読みながら何を「書く (メモ)」かも問題。ツール活用
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 17 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースの読み方はサイズに依存
サイズはあらゆる
人間の協調活動に
影響
- 読み方は
サイズに依存
【プログラムのサイズが読み方を決める】
・サイズが読み方、書き方、メンテナンスの仕方を決める
小規模
1–5 万行
中規模
5–20 万行
大規模
20 万行越え
(100 人年以上)
【チームの能力による: サイズの目安】
10 人以下、半年以下
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 18 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大規模なソース
OSS は 100 万行なんて珍しくない
(MySQL/PHP/PostgreSQL/Samba/Perl …)
Linux カーネルなんて 500 万行 (2007)
ひらメソッド(超精細)なんてのもある:
LKH-jp(旧読学のススメ)で提案されているコードリーディング手
法.
関数単位で Wiki にメモを残しながら,ボトムアップに読み進める.
知らない関数がでないようにボトムアップに読む
WebKit (browser) テスト除いて 80 万行
Android  カーネル除いて  800 万行
OSS でなくてもブラウザ、Java、など 100 万行超える組み込みソ
フトはごろごろ
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 19 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
実践: 読む技術
全体構成、モジュール構成、オブジェクト構成
エントリポイントを把握
入出力作法(型など)を把握
呼び出し関係
メイン処理部分
実行シーケンス
終了処理
(ソース履歴)
コーディング規則
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 20 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
メタコーディングガイドライン
プログラミング言語による
ファイル構成を読み解く
コーディングガイドラインを読み解く
なぜそうなっているかを読み解く
不規則性の把握
マクロ、typedef など
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 21 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方: 名前の理解
読むこと
名前の塊を理解すること
関数名、変数名、定数名、…
コメントのスタイル
ファイル名
名前付けの体系
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 22 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方: 歴史、依存関係の理解
歴史を読むこと
設計の開始点を読む
チーム構成を読む
変更の時間間隔、最新の変更を読む
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 23 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方: 構造の理解
構造を読むこと
ファイル構成、ディレクトリ構成  (言語によってはクラス、オブ
ジェクト)
バージョン管理
グローバルな名前体系、コーディングルール
インタフェース仕様
拡張の方法
想定されているデバッグのしかた
外部依存関係
データ構造
制御構造
データベース構成
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 24 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方: 周辺ドキュメントを読む
ヘッダファイルを読むこと
基本的なデータ構造
分岐やデバッグの作法
依存関係
権利を読むこと
ライセンス条件
配布条件
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 25 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方:ツールの使い方
静的な解析ツール (プラットフォーム依存)
ctags, doxygen, …
呼び出し関係の可視化ツールなどもある
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 26 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方:人の理解
ソースコードには著者の意思や哲学がちりばめられている
書いたひとを理解できればソースの理解は格段に効率化する
拡張する方法、好きなデータ構造などテーストを理解
ドキュメント提供の仕方、パッチ判定の仕方を理解
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 27 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
静的な読み方: テストコードを読む
テストコードを読むこと
テストの環境設定
テストの網羅性
テストの対象
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 28 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースを読む:いろいろ読む
読む技術
仕様書を読む技術
API 仕様書を読む技術
アーキテクチャを読む技術
コード規則を読む技術
リリースプロセスを読む技術
コメントを読む技術
ロードマップを読む技術
依存関係を読む技術
人間を読む技術
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 29 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
目的別の読み方
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 30 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
プログラム言語を学ぶ
名前付け規則(変数、関数、定数、予約語)
データ定義(型、クラス)
構文規則(代入、条件文、繰り返し)
宣言、実行文、コメント
モジュール定義、処理フロー
ライブラリ、API、実行環境依存部分
他のプログラミング言語との類似、差異
教育効果尺度: 言語仕様理解度、言語比較理解度
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 31 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
プロジェクトを学ぶ
プラットフォーム、依存する実行環境、ライブラリ、共通部分
名前付け規則(変数、関数、定数、ファイル)
コメント、ドキュメンテーション
バージョン管理
変遷、成長 (拡張) の過程
拡張、外部 API
コンフィギュレーション定義
ライセンス条件
ロードマップ
教育効果尺度: プロジェクト理解度、API 理解度
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 32 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
技術を学ぶ
技術該当部分
実装部分と API 実行、Web 実行部分
コンフィギュレーション定義
ライセンス条件
教育効果尺度: アルゴリズム理解度、プラットフォーム理解度
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 33 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
品質を学ぶ
コーディングの整合性、規則性
更新履歴
条件判定(アサーション)
エラー判定(準正常系)
エラー処理(異常系)
耐性(異常データ、異常トラフィック)
更新履歴(頻度、更新方法、ドキュメンテーション)
教育効果尺度: 品質判定の正確性
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 34 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
機能実装例を学ぶ
例えば、Android コーディングの実装例
具体的に何を書くの?
携帯電話アプリってどう動くの?
プラットフォーム、API?
プラットフォーム依存のコーディング作法 (開始、終了、異常処理)
IDE?
教育効果尺度: 機能実装準備理解の進み具合
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 35 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソフトウェアソースを
大量に読む
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 36 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ソースを読む:たくさん読む
読む技術 - たくさん読む
【ソースをたくさん読む: 目的をはっきりさせて】
たくさんの著者と対話して学ぶ
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 37 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大きなプロジェクトを読み解く
大規模プロジェクトにしかないもの
API 仕様書
アーキテクチャ技術資料
リリースプロセス
ロードマップ
プロジェクト間依存関係 (Required Versions)
ファウンデーション (ByLaws, Membership agreement, …)(= ソース管理団体)
人間関係、今起こっていること
概要を読んで計画する
あるいは、できればコードまで読まないですます場合
プロジェクト外部からの言及、批判
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 38 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む
大量のコードを読む
そうはいっても何読むの?
Linux Kernel? GNU? GNOME? Android?
Adobe Open Source / http://sf.net/projects/adobe-source (C++ です)
石黒邦宏 (ACCESS 元 CTO) 曰く、「凄いコードなんでびっくりした。
凄いハッカーが作った凄いコード。ここ五年間に見たコードの中でい
ちばん凄かった。皆、これを勉強しなきゃ」
知らない OSS は怖い → ルータソフト Zebra http://www.zebra.org/
石黒邦宏作成の OSS
読む経験
読む勘所
既視感
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 39 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む: 読む力 = 探す力
読む力 = 探す力
探すキー
関数、変数、
マクロ、型、…
探す場所
Dir, Web, Mail,
document, test, …
探すツール
Google, ViewVC,
Eclipse plugin, …
コード専用検索エンジンもある:BlackDuck Open Hub http://code.openhub.net/ (旧
Koders), Krugle (http://www.krugle.com/), {(http://www.google.com/codesearch は終了 (2015))
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 40 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む: 忍耐力
大量の情報を処理するにはツールでも時間がかかる
400 万行のソースコードは doxygen かけるのに 2 時間
他人の書いたコードを読むのは苦痛
読み始めに抵抗感、ハードルが高い
(プログラムは思ったとおり動かない、書いたとおり動く)
大量といってもどれくらい読めばいいの?
Code Complete 2nd Edition にコードリーディングの節があるが、1
日 1,000 行とのこと
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 41 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む: ソース可視化
IDE: 階層表示、型表示 on Eclipse (C/C++ なら Eclipse+CDT)
エディタ: Emacs with etags, vi with ctags
コードクローン可視化ツール: Gemini (阪大), CCFinderX
C フロー: cflow, cscope
SourceNavigator
ソース以外の視覚化
性能ボトルネックの可視化
Wiki の可視化
データ可視化: Gnuplot, GNU Octova, Scilab, MayaVi, Maxima,
OpenDX (バックエンドに使う)
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 42 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む: ソース可視化 (2)
山のようにツールはあるが探すのもかったるい
とりあえず Eclipse+CDT (C/C++ の場合) にする
Eclipse 4.5 をダウンロードしてインストール
CDT Plugin (8.8) をダウンロードしてインストール
workspace をつくり、“src” などソース拡張のディレクトリを指定
読みたいソースを指定したディレクトリに格納
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 43 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む: ツール選択
フレームワークの理解
最近は main() やイベントハンドラを書くことはない
80 % 以上はフレームワークが仕事をしている
再利用可能な部品をどう組み合わせるかが勝負
フレームワーク対応のツールで読むことが多い
Java なら Eclipse, iPhone なら Apple Xcode, …
フレームワークの中身が読めないと意味がわからない
こちらから呼ぶのではなく、向こうがこちらを呼ぶ
Hollywood Principle: Don’t call me, I will call you.
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 44 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む: 紙から実行まで
紙派: 驚くべきことに紙と鉛筆というエキスパートも多い
集中できる
情報が多すぎない
何万行も紙で読むことは不可能: どこを読むかが重要
実行派: コンパイルして、動くコードなら、ビルドして動かす
IDE で breakpoint をいれて動かす
call stack など見ながら読むところの目星を付ける
グローバル変数の動きなどを追う
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 45 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む: 書き留めること
ただ読んだだけではだめ
わかったことを書き留める
書き留めるツールの選択
書き留めるフォーマットの選択
当然、何を書くかでどう読むかが変わる
読む前に書くことを考える
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 46 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
大量のコードを読む: 人に聞く
OSS を理解する最良の方法は知人に聞くこと
大量で無秩序な情報 →  事情を知っている人に聞く
「誰に」「何を」聞くかを的確に知ること
OSS の世界は狭い: ヒューマンネットワークが重要
OSS 関係者は大量のメールを読んでいるので埋没する可能性に注意
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 47 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
演習
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 48 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
演習 A
1 プロジェクト探索
大規模なプロジェクト、小規模なプロジェクトを探す
小規模で活発なプロジェクトを探す
2 プロジェクト解説
プロジェクトの歴史、概要をまとめる
3 OSS 地図
大きな Foundation 化されているプロジェクトの比較をする
4 Coding style 比較
Linux Kernel coding style と GNU coding style の比較をする
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 49 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
演習 B
1 プロジェクト観察
小規模で活発なプロジェクトを探し、過去 2 週間のメールアーカイ
ブから、プロジェクトの現在状況をまとめる
小規模で活発なプロジェクトを探し、メーリングリストに 2 週間入
って、プロジェクトの現在状況をまとめる
2 ソース観察
適当なサイズのコードを読み、プログラム構造をまとめる
3 IDE 体験
Eclipse を使ってみる
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 50 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
演習 C
1 用語辞典作り
適当なプロジェクトを探し、ドキュメント、メーリングリストから、
わからない単語 10 個を抽出し、意味を調べる
2 ツール探索
ソース用検索ツールを探す
インストールして使ってみて使用感をレポートする
探した履歴をまとめ、どうすれば早く探せるかをまとめてレポート
する
ソースの可視化ツールを探す
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 51 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
むすび
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 52 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
むすび
書く技術より読む技術
ソースコードを読むことは状況を読むことに近い
読む目的を理解
外部依存性の理解
すべては読まない技術
構造の理解
リスクの理解
成り立ちの理解
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 53 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
参考
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 54 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
参考
ソースコードを読むための技術
http://i.loveruby.net/ja/misc/readingcode.html
その後、Ruby ソースコード完全解説序章にはいった模様
Code Reading: The Open Source Perspective (by Diomidis Spinellis,
2003 Addison-Wesley)
オープンソースのコードサーチエンジン BlackDuck Open Hub
http://code.openhub.net/
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 55 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
最近の潮流
単体で読みやすくする
ユニットテストをしっかりする
リファクタリングする
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 56 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(参考)Eclipse
IBM によって開発された Java 用統合開発環境 (IDE)
Java で書かれている
1998 年開発開始, 2001 年 11 月オープンソース化
2004 年 Eclipse Foundation 設立
プラグイン
さまざまな機能をプラグインとして組み込めるよう設計
非常に拡張性が高い
プラグインでさまざまな言語 (C++, Perl, C#, Python, …) に対応
CVS 連携, JUnit 連携, Ant 連携
SWT(Standard Widget Toolkit) を使い、動作が軽快
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 57 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(参考) リファクタリング
振る舞いを変えずにソースコードの内部構造を整理する)
主な技術
長いメソッドの抽出
双方向関連を単方向に変更
継承を委譲に書き換える
コンストラクタを Factory Method に書き換える
引数オブジェクトの導入
クラス、メソッド、属性の名称を変更
最近の IDE はリファクタリング機能が具備
アジャイルプログラミングの XP などでは開発の習慣としてリフ
ァクタリングを挙げている
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 58 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
スーパープログラマの知人が推奨する読むべきソースコード
C なら Python のインタープリタ  https://github.com/python/cpython
(ボリュームがある)
きれいに書いてあるのは Python
バージョン管理ツールの mercurial
http://mercurial.selenic.com/release/?M=D
– (ver 0.1 は 689 行 (6KB) ver3.2 のサイズは 600 倍の 3.9MB)  適当
なサイズのを選んで読む
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 59 / 60
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
参考文献
Code Reading—オープンソースから学ぶソフトウェア開発技法
(2004)
山上俊彦 (ACCESS Confidential) 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 2016/07 60 / 60

Contenu connexe

Tendances

ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)Toshihiko Yamakami
 
サルでもわかるディープラーニング入門 (2017年) (In Japanese)
サルでもわかるディープラーニング入門 (2017年) (In Japanese)サルでもわかるディープラーニング入門 (2017年) (In Japanese)
サルでもわかるディープラーニング入門 (2017年) (In Japanese)Toshihiko Yamakami
 
デゲーミフィケーションとは何か ゲームの快感原理を学んで自己成長に活かす(in Japanese)
デゲーミフィケーションとは何か ゲームの快感原理を学んで自己成長に活かす(in Japanese)デゲーミフィケーションとは何か ゲームの快感原理を学んで自己成長に活かす(in Japanese)
デゲーミフィケーションとは何か ゲームの快感原理を学んで自己成長に活かす(in Japanese)Toshihiko Yamakami
 
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)Youichiro Miyake
 
強化学習技術とゲーム AI 〜 今できる事と今後できて欲しい事 〜
強化学習技術とゲーム AI  〜 今できる事と今後できて欲しい事 〜強化学習技術とゲーム AI  〜 今できる事と今後できて欲しい事 〜
強化学習技術とゲーム AI 〜 今できる事と今後できて欲しい事 〜佑 甲野
 
ゲーム体験を支える強化学習の実応用について
ゲーム体験を支える強化学習の実応用についてゲーム体験を支える強化学習の実応用について
ゲーム体験を支える強化学習の実応用についてJun Okumura
 
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechconDeNA
 
マンガ駆動開発で始める 、初めてのUXデザインプロセス  マンガ駆動開発 第4版
マンガ駆動開発で始める、初めてのUXデザインプロセス マンガ駆動開発 第4版マンガ駆動開発で始める、初めてのUXデザインプロセス マンガ駆動開発 第4版
マンガ駆動開発で始める 、初めてのUXデザインプロセス  マンガ駆動開発 第4版Koji Hara
 
エヌビディアのディープラーニング戦略
エヌビディアのディープラーニング戦略エヌビディアのディープラーニング戦略
エヌビディアのディープラーニング戦略NVIDIA Japan
 
SHIBUYA SYNAPSE #2「ゲームAIのこれから - ゲーム開発工程における人工知能 「ゲームの外のAI」の促進に向けて」
SHIBUYA SYNAPSE #2「ゲームAIのこれから - ゲーム開発工程における人工知能 「ゲームの外のAI」の促進に向けて」SHIBUYA SYNAPSE #2「ゲームAIのこれから - ゲーム開発工程における人工知能 「ゲームの外のAI」の促進に向けて」
SHIBUYA SYNAPSE #2「ゲームAIのこれから - ゲーム開発工程における人工知能 「ゲームの外のAI」の促進に向けて」shibuya_synapse
 
SHIBUYA SYNAPSE #2「ゲームの外のAI - ゲームバランス調整」
SHIBUYA SYNAPSE #2「ゲームの外のAI - ゲームバランス調整」SHIBUYA SYNAPSE #2「ゲームの外のAI - ゲームバランス調整」
SHIBUYA SYNAPSE #2「ゲームの外のAI - ゲームバランス調整」shibuya_synapse
 
使いやすいAI(人工知能)「IBM Watson」を見てみよう! - 書籍「現場で使える! Watson開発入門」連動セミナー:リクルートスタッフィング
使いやすいAI(人工知能)「IBM Watson」を見てみよう! - 書籍「現場で使える! Watson開発入門」連動セミナー:リクルートスタッフィング使いやすいAI(人工知能)「IBM Watson」を見てみよう! - 書籍「現場で使える! Watson開発入門」連動セミナー:リクルートスタッフィング
使いやすいAI(人工知能)「IBM Watson」を見てみよう! - 書籍「現場で使える! Watson開発入門」連動セミナー:リクルートスタッフィングYoshiki Hayama
 
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~NVIDIA Japan
 

Tendances (13)

ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
ソーシャルスマートの7つの秘訣 - シリコンバレーの最新スキル (in Japanese)
 
サルでもわかるディープラーニング入門 (2017年) (In Japanese)
サルでもわかるディープラーニング入門 (2017年) (In Japanese)サルでもわかるディープラーニング入門 (2017年) (In Japanese)
サルでもわかるディープラーニング入門 (2017年) (In Japanese)
 
デゲーミフィケーションとは何か ゲームの快感原理を学んで自己成長に活かす(in Japanese)
デゲーミフィケーションとは何か ゲームの快感原理を学んで自己成長に活かす(in Japanese)デゲーミフィケーションとは何か ゲームの快感原理を学んで自己成長に活かす(in Japanese)
デゲーミフィケーションとは何か ゲームの快感原理を学んで自己成長に活かす(in Japanese)
 
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(後篇)
 
強化学習技術とゲーム AI 〜 今できる事と今後できて欲しい事 〜
強化学習技術とゲーム AI  〜 今できる事と今後できて欲しい事 〜強化学習技術とゲーム AI  〜 今できる事と今後できて欲しい事 〜
強化学習技術とゲーム AI 〜 今できる事と今後できて欲しい事 〜
 
ゲーム体験を支える強化学習の実応用について
ゲーム体験を支える強化学習の実応用についてゲーム体験を支える強化学習の実応用について
ゲーム体験を支える強化学習の実応用について
 
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
 
マンガ駆動開発で始める 、初めてのUXデザインプロセス  マンガ駆動開発 第4版
マンガ駆動開発で始める、初めてのUXデザインプロセス マンガ駆動開発 第4版マンガ駆動開発で始める、初めてのUXデザインプロセス マンガ駆動開発 第4版
マンガ駆動開発で始める 、初めてのUXデザインプロセス  マンガ駆動開発 第4版
 
エヌビディアのディープラーニング戦略
エヌビディアのディープラーニング戦略エヌビディアのディープラーニング戦略
エヌビディアのディープラーニング戦略
 
SHIBUYA SYNAPSE #2「ゲームAIのこれから - ゲーム開発工程における人工知能 「ゲームの外のAI」の促進に向けて」
SHIBUYA SYNAPSE #2「ゲームAIのこれから - ゲーム開発工程における人工知能 「ゲームの外のAI」の促進に向けて」SHIBUYA SYNAPSE #2「ゲームAIのこれから - ゲーム開発工程における人工知能 「ゲームの外のAI」の促進に向けて」
SHIBUYA SYNAPSE #2「ゲームAIのこれから - ゲーム開発工程における人工知能 「ゲームの外のAI」の促進に向けて」
 
SHIBUYA SYNAPSE #2「ゲームの外のAI - ゲームバランス調整」
SHIBUYA SYNAPSE #2「ゲームの外のAI - ゲームバランス調整」SHIBUYA SYNAPSE #2「ゲームの外のAI - ゲームバランス調整」
SHIBUYA SYNAPSE #2「ゲームの外のAI - ゲームバランス調整」
 
使いやすいAI(人工知能)「IBM Watson」を見てみよう! - 書籍「現場で使える! Watson開発入門」連動セミナー:リクルートスタッフィング
使いやすいAI(人工知能)「IBM Watson」を見てみよう! - 書籍「現場で使える! Watson開発入門」連動セミナー:リクルートスタッフィング使いやすいAI(人工知能)「IBM Watson」を見てみよう! - 書籍「現場で使える! Watson開発入門」連動セミナー:リクルートスタッフィング
使いやすいAI(人工知能)「IBM Watson」を見てみよう! - 書籍「現場で使える! Watson開発入門」連動セミナー:リクルートスタッフィング
 
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
 

En vedette

OMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
OMA LwM2M Workshop - Michael Koster, IPSO Alliance ObjectsOMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
OMA LwM2M Workshop - Michael Koster, IPSO Alliance ObjectsOpen Mobile Alliance
 
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)Toshihiko Yamakami
 
ソフトウェア開発炎上の検討 (in Japanese)
ソフトウェア開発炎上の検討 (in Japanese)ソフトウェア開発炎上の検討 (in Japanese)
ソフトウェア開発炎上の検討 (in Japanese)Toshihiko Yamakami
 
オープンイノベーション:ハッカソンから学ぶこと  (in Japanese)
オープンイノベーション:ハッカソンから学ぶこと  (in Japanese)オープンイノベーション:ハッカソンから学ぶこと  (in Japanese)
オープンイノベーション:ハッカソンから学ぶこと  (in Japanese)Toshihiko Yamakami
 
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)Toshihiko Yamakami
 
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)Toshihiko Yamakami
 
Implementing Domain-Driven Design: Part 1
Implementing Domain-Driven Design: Part 1Implementing Domain-Driven Design: Part 1
Implementing Domain-Driven Design: Part 1Atsushi Kambara
 
TensorFlowの使い方(in Japanese)
TensorFlowの使い方(in Japanese)TensorFlowの使い方(in Japanese)
TensorFlowの使い方(in Japanese)Toshihiko Yamakami
 
IoT系標準化の動き(メモ、2016年) (in Japanese)
IoT系標準化の動き(メモ、2016年) (in Japanese)IoT系標準化の動き(メモ、2016年) (in Japanese)
IoT系標準化の動き(メモ、2016年) (in Japanese)Toshihiko Yamakami
 
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!Nagato Kasaki
 
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリングオープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリングToshihiko Yamakami
 
(行動誘導技術、オープンイノベーション系の)大学・学会・国際会議用講演タイトル(2017年) (in Japanese)
(行動誘導技術、オープンイノベーション系の)大学・学会・国際会議用講演タイトル(2017年) (in Japanese)(行動誘導技術、オープンイノベーション系の)大学・学会・国際会議用講演タイトル(2017年) (in Japanese)
(行動誘導技術、オープンイノベーション系の)大学・学会・国際会議用講演タイトル(2017年) (in Japanese)Toshihiko Yamakami
 
HOME'SアプリのFragmentとデザインの関係 Minami Aoyama Night #2
HOME'SアプリのFragmentとデザインの関係 Minami Aoyama Night #2HOME'SアプリのFragmentとデザインの関係 Minami Aoyama Night #2
HOME'SアプリのFragmentとデザインの関係 Minami Aoyama Night #2Akiyoshi Samukawa
 
世間の常識に反する「新規事業開発で最初に考えてはいけない3項目、考えるべき3項目」(in Japanese)
世間の常識に反する「新規事業開発で最初に考えてはいけない3項目、考えるべき3項目」(in Japanese)世間の常識に反する「新規事業開発で最初に考えてはいけない3項目、考えるべき3項目」(in Japanese)
世間の常識に反する「新規事業開発で最初に考えてはいけない3項目、考えるべき3項目」(in Japanese)Toshihiko Yamakami
 
福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版Kindai University
 
C++のtemplate特殊化的なことをC#でやった話
C++のtemplate特殊化的なことをC#でやった話C++のtemplate特殊化的なことをC#でやった話
C++のtemplate特殊化的なことをC#でやった話Atsushi Kambara
 
ドローン農業最前線
ドローン農業最前線ドローン農業最前線
ドローン農業最前線tetsuya furukawa
 
リーンスタートアップと顧客開発とアジャイル開発を一気通貫するッ #devlove #devkan
リーンスタートアップと顧客開発とアジャイル開発を一気通貫するッ #devlove #devkanリーンスタートアップと顧客開発とアジャイル開発を一気通貫するッ #devlove #devkan
リーンスタートアップと顧客開発とアジャイル開発を一気通貫するッ #devlove #devkanItsuki Kuroda
 
UIも大事だよ。という話。@Opt Group Tech Day
UIも大事だよ。という話。@Opt Group Tech DayUIも大事だよ。という話。@Opt Group Tech Day
UIも大事だよ。という話。@Opt Group Tech DayTetsuya Takeda
 

En vedette (20)

OMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
OMA LwM2M Workshop - Michael Koster, IPSO Alliance ObjectsOMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
OMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
 
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
人造幸福を作り出すコンピュータ技術  ゲームをビッグビジネスにした「夢中」の創造の原理 (In Japanese)
 
ソフトウェア開発炎上の検討 (in Japanese)
ソフトウェア開発炎上の検討 (in Japanese)ソフトウェア開発炎上の検討 (in Japanese)
ソフトウェア開発炎上の検討 (in Japanese)
 
LPWAとは?(in Japanese)
LPWAとは?(in Japanese)LPWAとは?(in Japanese)
LPWAとは?(in Japanese)
 
オープンイノベーション:ハッカソンから学ぶこと  (in Japanese)
オープンイノベーション:ハッカソンから学ぶこと  (in Japanese)オープンイノベーション:ハッカソンから学ぶこと  (in Japanese)
オープンイノベーション:ハッカソンから学ぶこと  (in Japanese)
 
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
ソーシャルゲームが生んだおもてなし:ソもてなし理論 (in Japanese)
 
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
査読付き論文を高速生産する1つのマインドセット、3つの方法 (in Japanese)
 
Implementing Domain-Driven Design: Part 1
Implementing Domain-Driven Design: Part 1Implementing Domain-Driven Design: Part 1
Implementing Domain-Driven Design: Part 1
 
TensorFlowの使い方(in Japanese)
TensorFlowの使い方(in Japanese)TensorFlowの使い方(in Japanese)
TensorFlowの使い方(in Japanese)
 
IoT系標準化の動き(メモ、2016年) (in Japanese)
IoT系標準化の動き(メモ、2016年) (in Japanese)IoT系標準化の動き(メモ、2016年) (in Japanese)
IoT系標準化の動き(メモ、2016年) (in Japanese)
 
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
 
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリングオープンイノベーション時代の工学スキル:国際標準化エンジニアリング
オープンイノベーション時代の工学スキル:国際標準化エンジニアリング
 
(行動誘導技術、オープンイノベーション系の)大学・学会・国際会議用講演タイトル(2017年) (in Japanese)
(行動誘導技術、オープンイノベーション系の)大学・学会・国際会議用講演タイトル(2017年) (in Japanese)(行動誘導技術、オープンイノベーション系の)大学・学会・国際会議用講演タイトル(2017年) (in Japanese)
(行動誘導技術、オープンイノベーション系の)大学・学会・国際会議用講演タイトル(2017年) (in Japanese)
 
HOME'SアプリのFragmentとデザインの関係 Minami Aoyama Night #2
HOME'SアプリのFragmentとデザインの関係 Minami Aoyama Night #2HOME'SアプリのFragmentとデザインの関係 Minami Aoyama Night #2
HOME'SアプリのFragmentとデザインの関係 Minami Aoyama Night #2
 
世間の常識に反する「新規事業開発で最初に考えてはいけない3項目、考えるべき3項目」(in Japanese)
世間の常識に反する「新規事業開発で最初に考えてはいけない3項目、考えるべき3項目」(in Japanese)世間の常識に反する「新規事業開発で最初に考えてはいけない3項目、考えるべき3項目」(in Japanese)
世間の常識に反する「新規事業開発で最初に考えてはいけない3項目、考えるべき3項目」(in Japanese)
 
福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版
 
C++のtemplate特殊化的なことをC#でやった話
C++のtemplate特殊化的なことをC#でやった話C++のtemplate特殊化的なことをC#でやった話
C++のtemplate特殊化的なことをC#でやった話
 
ドローン農業最前線
ドローン農業最前線ドローン農業最前線
ドローン農業最前線
 
リーンスタートアップと顧客開発とアジャイル開発を一気通貫するッ #devlove #devkan
リーンスタートアップと顧客開発とアジャイル開発を一気通貫するッ #devlove #devkanリーンスタートアップと顧客開発とアジャイル開発を一気通貫するッ #devlove #devkan
リーンスタートアップと顧客開発とアジャイル開発を一気通貫するッ #devlove #devkan
 
UIも大事だよ。という話。@Opt Group Tech Day
UIも大事だよ。という話。@Opt Group Tech DayUIも大事だよ。という話。@Opt Group Tech Day
UIも大事だよ。という話。@Opt Group Tech Day
 

Similaire à 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 (in Japanese)

Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋智啓 出川
 
The way to the timeless way of programming
The way to the timeless way of programmingThe way to the timeless way of programming
The way to the timeless way of programmingShintaro Kakutani
 
コミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということコミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということKazuho Oku
 
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料Mitsutoshi Kiuchi
 
JAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデートJAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデートYasuhiro Matsuo
 
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)Toshihiko Yamakami
 
イントラの中のWiki
イントラの中のWikiイントラの中のWiki
イントラの中のWikikan
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414Kentaro Ebisawa
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」Yoshiki Shibukawa
 
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオンさくらインターネット株式会社
 
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014Hiroshi Tokumaru
 
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetectionElastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetectionShotaro Suzuki
 
Gunosy における AWS 上での自然言語処理・機械学習の活用事例
Gunosy における AWS 上での自然言語処理・機械学習の活用事例Gunosy における AWS 上での自然言語処理・機械学習の活用事例
Gunosy における AWS 上での自然言語処理・機械学習の活用事例圭輔 大曽根
 
意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウドTakuma Nakajima
 
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組みRecruit Technologies
 
85cloudvol22-kintone20161217
85cloudvol22-kintone2016121785cloudvol22-kintone20161217
85cloudvol22-kintone20161217kintone papers
 
EmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについてEmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについてSatoshi Akama
 
KOBE IT FESTIVAL 2012
KOBE IT FESTIVAL 2012KOBE IT FESTIVAL 2012
KOBE IT FESTIVAL 2012Hiroshi Bunya
 

Similaire à 「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 (in Japanese) (20)

Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
 
The way to the timeless way of programming
The way to the timeless way of programmingThe way to the timeless way of programming
The way to the timeless way of programming
 
コミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということコミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということ
 
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
2016/4/16 Softlayer Bluemix Community Festa 2016講演資料
 
JAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデートJAWS-UG AI支部 #2 re:Invent アップデート
JAWS-UG AI支部 #2 re:Invent アップデート
 
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
APIエコノミーとは何か? それはどこへ続く道なのか(2017年) (in Japanese)
 
イントラの中のWiki
イントラの中のWikiイントラの中のWiki
イントラの中のWiki
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
IBM Cloud&sakura.io体験ハンズオン
IBM Cloud&sakura.io体験ハンズオンIBM Cloud&sakura.io体験ハンズオン
IBM Cloud&sakura.io体験ハンズオン
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
【最新版誘導用】クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン
 
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
 
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetectionElastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
 
Gunosy における AWS 上での自然言語処理・機械学習の活用事例
Gunosy における AWS 上での自然言語処理・機械学習の活用事例Gunosy における AWS 上での自然言語処理・機械学習の活用事例
Gunosy における AWS 上での自然言語処理・機械学習の活用事例
 
意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド
 
sakura.io handson with IBM Bluemix
sakura.io handson with IBM Bluemixsakura.io handson with IBM Bluemix
sakura.io handson with IBM Bluemix
 
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
 
85cloudvol22-kintone20161217
85cloudvol22-kintone2016121785cloudvol22-kintone20161217
85cloudvol22-kintone20161217
 
EmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについてEmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについて
 
KOBE IT FESTIVAL 2012
KOBE IT FESTIVAL 2012KOBE IT FESTIVAL 2012
KOBE IT FESTIVAL 2012
 

Plus de Toshihiko Yamakami

Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toward Interactive People Analytics: A New Approach to Leverage Organizationa...Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toward Interactive People Analytics: A New Approach to Leverage Organizationa...Toshihiko Yamakami
 
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)Toshihiko Yamakami
 
ホワイトペーパーの書き方 (in Japanese)
ホワイトペーパーの書き方 (in Japanese)ホワイトペーパーの書き方 (in Japanese)
ホワイトペーパーの書き方 (in Japanese)Toshihiko Yamakami
 
認知科学に基づく「効果的なデモ」のヒント (in Japanese)
認知科学に基づく「効果的なデモ」のヒント (in Japanese)認知科学に基づく「効果的なデモ」のヒント (in Japanese)
認知科学に基づく「効果的なデモ」のヒント (in Japanese)Toshihiko Yamakami
 
An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
 An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co... An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...Toshihiko Yamakami
 
Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
 Singularity Literacy: Civic Skill Shift from Workplace to Studyplace Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
Singularity Literacy: Civic Skill Shift from Workplace to StudyplaceToshihiko Yamakami
 
Lessons Learned in Tokyo Public Transportation Open Data APIs
Lessons Learned in Tokyo Public Transportation Open Data APIsLessons Learned in Tokyo Public Transportation Open Data APIs
Lessons Learned in Tokyo Public Transportation Open Data APIsToshihiko Yamakami
 
A Dynamism View Model of Convergence and Divergence of IoT Standardization
A Dynamism View Model of Convergence and Divergence of IoT StandardizationA Dynamism View Model of Convergence and Divergence of IoT Standardization
A Dynamism View Model of Convergence and Divergence of IoT StandardizationToshihiko Yamakami
 
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...Toshihiko Yamakami
 
A Social Dimension View Model of Divergence of IoT Standardization
A Social Dimension View Model of Divergence of IoT StandardizationA Social Dimension View Model of Divergence of IoT Standardization
A Social Dimension View Model of Divergence of IoT StandardizationToshihiko Yamakami
 
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...Toshihiko Yamakami
 
行動誘導技術で読み解くアイディアマラソン (in Japanese)
行動誘導技術で読み解くアイディアマラソン (in Japanese)行動誘導技術で読み解くアイディアマラソン (in Japanese)
行動誘導技術で読み解くアイディアマラソン (in Japanese)Toshihiko Yamakami
 
論文SEOとは何か?(in Japanese)
論文SEOとは何か?(in Japanese)論文SEOとは何か?(in Japanese)
論文SEOとは何か?(in Japanese)Toshihiko Yamakami
 
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...Toshihiko Yamakami
 
シニア・イノベーションの視点
シニア・イノベーションの視点シニア・イノベーションの視点
シニア・イノベーションの視点Toshihiko Yamakami
 
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...Toshihiko Yamakami
 
An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
 An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage... An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...Toshihiko Yamakami
 
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...Toshihiko Yamakami
 
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...Toshihiko Yamakami
 
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...Toshihiko Yamakami
 

Plus de Toshihiko Yamakami (20)

Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toward Interactive People Analytics: A New Approach to Leverage Organizationa...Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
Toward Interactive People Analytics: A New Approach to Leverage Organizationa...
 
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
Amazon SageMaker: 機械学習の民主化から工業化へ(in Japanese)
 
ホワイトペーパーの書き方 (in Japanese)
ホワイトペーパーの書き方 (in Japanese)ホワイトペーパーの書き方 (in Japanese)
ホワイトペーパーの書き方 (in Japanese)
 
認知科学に基づく「効果的なデモ」のヒント (in Japanese)
認知科学に基づく「効果的なデモ」のヒント (in Japanese)認知科学に基づく「効果的なデモ」のヒント (in Japanese)
認知科学に基づく「効果的なデモ」のヒント (in Japanese)
 
An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
 An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co... An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
An Experimental Implementation of an Edge-based AI Engine with Edge-Cloud Co...
 
Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
 Singularity Literacy: Civic Skill Shift from Workplace to Studyplace Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
Singularity Literacy: Civic Skill Shift from Workplace to Studyplace
 
Lessons Learned in Tokyo Public Transportation Open Data APIs
Lessons Learned in Tokyo Public Transportation Open Data APIsLessons Learned in Tokyo Public Transportation Open Data APIs
Lessons Learned in Tokyo Public Transportation Open Data APIs
 
A Dynamism View Model of Convergence and Divergence of IoT Standardization
A Dynamism View Model of Convergence and Divergence of IoT StandardizationA Dynamism View Model of Convergence and Divergence of IoT Standardization
A Dynamism View Model of Convergence and Divergence of IoT Standardization
 
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
A Visualization Framework to Empower Small and Medium-Sized Enterprises in Op...
 
A Social Dimension View Model of Divergence of IoT Standardization
A Social Dimension View Model of Divergence of IoT StandardizationA Social Dimension View Model of Divergence of IoT Standardization
A Social Dimension View Model of Divergence of IoT Standardization
 
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
Device Stand-by Management Scheme of IoT: A Framework for Dealing with Real-w...
 
行動誘導技術で読み解くアイディアマラソン (in Japanese)
行動誘導技術で読み解くアイディアマラソン (in Japanese)行動誘導技術で読み解くアイディアマラソン (in Japanese)
行動誘導技術で読み解くアイディアマラソン (in Japanese)
 
論文SEOとは何か?(in Japanese)
論文SEOとは何か?(in Japanese)論文SEOとは何か?(in Japanese)
論文SEOとは何か?(in Japanese)
 
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
A Dimensional Model of Service Design Toward Utilizing Public Transportation ...
 
シニア・イノベーションの視点
シニア・イノベーションの視点シニア・イノベーションの視点
シニア・イノベーションの視点
 
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
An Organizational Coordination Model for IoT: A Case Study of Requirement Eng...
 
An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
 An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage... An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
An Evolution-by-design Approach: Toward Multi-disciplinary Life-cycle Manage...
 
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
A Migration-oriented Partial Adaptation Architecture for IoT-empowered City P...
 
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
A Dimensional Framework to Evaluate Coverage of IoT Services in City Platform...
 
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
Horizontal Requirement Engineering in Integration of Multiple IoT Use Cases o...
 

Dernier

世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラムKochi Eng Camp
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~Kochi Eng Camp
 

Dernier (6)

世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 

「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 (in Japanese)