2019/01/30 現在 |
科目一覧へ戻る |
開講学期 /Semester |
2018年度/Academic Year 前期 /First Semester |
---|---|
対象学年 /Course for; |
3年 |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
齋藤 寛 |
担当教員名 /Instructor |
齋藤 寛, 小平 行秀, 荊 雷 |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2018/05/31 |
---|---|
授業の概要 /Course outline |
(ICTGクラスの担当は荊雷先生です。) Raspberry Piは、教育用途に開発された安価な基板で、Linuxの下、プログラム開発、センサーやアクチュエータとの連携、および深層学習など様々なことに利用することができる。そのため、ソフトウェア、ハードウェアを含んだコンピュータシステムを理解する上では最も適した教材の一つで、世界中の様々なところで利用されている。 |
授業の目的と到達目標 /Objectives and attainment goals |
本演習の目的は、Raspberry Piを用いてコンピュータシステムを構築し、実際に動かすことでコンピュータシステムを理解することである。演習課題を通じて、学生は以下を学ぶ。 1. Rasbperry Piの構成とRaspbian OSのインストール 2. ネットワークへの接続 3. Pythonによるプログラミング 4. GPIO、I2C、A/D変換ICを用いたセンサーからのデータ取得とアクチュエータの制御 5. カメラの利用による画像データの取得 最終的に、自分のアイディアをRaspberry Piで実現することを目的とする。 なお、初めてとなる2018年度は、以上の一部が変更されることがある。 |
授業スケジュール /Class schedule |
基本 1 授業の紹介、Raspberry piやシステム構成の説明 (演習課題1) OSのインストール、Raspbianの設定、terminalやエディタの使い方 2 ネットワークの接続方法の説明 (演習課題2)ネットワークへの接続とIPの固定化、アプリケーションのインストールの仕方、ブラウザの使い方 3 Pythonの説明 (演習課題3)Pythonのインストール、例を用いたPythonによるコーディングと実行 4-5 Raspberry piと外部機器との接続の説明 (演習課題4)GPIO、I2C、A/D変換ICを用いたセンサーからのデータ取得とアクチュエータの制御 応用 6-7 WebIOPiの説明 (演習課題5)WebIOPiによるスマホからの制御 8 カメラの利用の仕方の説明 (演習課題6)カメラからの画像データ取得 発展 9 Raspberry piを用いた個別課題と発表について (演習課題7)自分のアイディアをRaspberry Piで実現する 10 - 12 (演習課題7)自分のアイディアをRaspberry Piで実現する 13, 14 発表会 各自、発表3分、交換+予備1分でプレゼンテーション その後、各自の机でデモを行って、それをみんなが見て回る。 なお、初めてとなる2018年度は、以上の一部が変更されることがある。 |
教科書 /Textbook(s) |
指定なし |
成績評価の方法・基準 /Grading method/criteria |
演習課題1-6 42% 演習課題7 58% |
履修上の留意点 /Note for course registration |
演習を通じて、コンピュータシステムを理解するためにも、履修者全員が個別で演習課題を行うようにする。 |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
林、”ラズベリーパイで遊ぼう!”、ラトルズ |
科目一覧へ戻る |
開講学期 /Semester |
2018年度/Academic Year 後期 /Second Semester |
---|---|
対象学年 /Course for; |
3年 |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
富岡 洋一 |
担当教員名 /Instructor |
富岡 洋一, 中里 直人, 奥山 祐市 |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2018/05/31 |
---|---|
授業の概要 /Course outline |
(ICTGクラスの担当は奥山先生です。) 本演習ではField-Programmable Gate Array (FPGA)を利用した組込みシステム開発について学びます.FPGAはユーザが論理や配線を自由に変更できる集積回路で,設計した回路を現場ですぐにFPGA上に実装し検証することが可能です.製造後には論理や配線が固定化されてしまうApplication Specific Integrated Circuit (ASIC)に比べて,FPGAはエンジニアリングコストと開発期間を削減できることが知られています.組込みシステムではマイコンが良く用いられますが,音声処理,画像処理等のように計算量が多いアプリケーションでは多くの場合マイコンだけでは十分な速度を実現できません.このようなとき,FPGA上にターゲットアプリケーションを大規模並列処理する専用回路を実装することで,消費電力は低く保ちつつリアルタイム処理を実現します.このため,今日の組込みシステム開発ではFPGAはマイコンと並んで必要不可欠なデバイスとなっています.本演習ではスイッチ,LEDの制御や画像処理を題材に,ソフトウェアとハードウェアを合わせた組込みシステム開発を基礎から学んでいきます. |
授業の目的と到達目標 /Objectives and attainment goals |
1. 学生は論理回路設計論、論理回路設計特論、コンピュータアーキテクチャ論、プログラミングC等の内容を復習しながら、横断的に学ぶことでコンピュータシステムの理解を深めます. 2. 学生は周辺回路の制御モジュールや画像処理モジュールの設計,モジュール間のインターコネクト設計,FPGAへの実装,検証を通して、実践的なシステム設計の知識と技能を習得します. |
授業スケジュール /Class schedule |
第1回:Quartus Prime チュートリアル Quatrus Primeを利用した論理回路設計のフローについて理解する 第2回: 組み合わせ回路のモデリングと実装 assign文とalways文を利用した組合せ論理回路のモデリングについて学ぶ.設計した回路をFPGAに書き込む方法について学ぶ. 第3,4回: 順序回路のモデリングと実装 always文を利用したメモリ論理,順序回路のモデリングについて学ぶ. 第5,6,7回: Nios IIプロセッサを用いた組込みシステム設計 Qsysを用いたインターコネクト設計,Nios IIプロセッサを利用した組込みシステム設計について学ぶ. 第8回:画像の取得と表示 画像を取得し,ディスプレイに表示するサンプルコードをFPGAにプログラムする.シグナルタップを用いて各モジュールに伝達する信号を観測し,VGAコントローラ等の機能を理解する.画像はカメラモジュールから入力するか,パソコンから転送する. 第9,10回:Nios IIプロセッサを利用した画像処理システムの構築 Nios IIプロセッサを用いて入力画像に基本的な画像処理を施した後に表示するシステムを構築する. 第11,12,13,14回: 画像処理システムの高速化 第9,10回の画像処理を専用回路で高速化する. |
教科書 /Textbook(s) |
指定なし |
成績評価の方法・基準 /Grading method/criteria |
レポート100% |
履修上の留意点 /Note for course registration |
関連性が高い科目:論理回路設計論、論理回路設計特論、コンピュータアーキテクチャ論、プログラミングC |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
圓山 宗智,完全版 FPGA電子工作オールインワン・キット (トライアルシリーズ) 単行本,CQ出版 |
科目一覧へ戻る |
開講学期 /Semester |
2018年度/Academic Year 前期 /First Semester |
---|---|
対象学年 /Course for; |
3年 |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
渡部 有隆 |
担当教員名 /Instructor |
渡部 有隆, 西舘 陽平, 朱 欣, コンスタンティン マルコフ, 吉岡 廉太郎 |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2017/12/15 |
---|---|
授業の概要 /Course outline |
ソフトウェア開発は、ソフトウェアに求められる要件(機能)を理解し、要件を満たす設計を行い、設計通りにソフトウェアを構築する総合的な活動です。これらの活動を適切に行うには、プログラミングやソフトウェア工学はもとより、さまざまな知識と技術を組み合わせながら開発を推進する実践的な能力が必要となります。 ソフトウェア総合演習では、学生が2-3人のチームで与えられた課題を解決するソフトウェアの開発を通してソフトウェア開発の実践的な能力を身につけます。課題は授業の始めにチーム毎に指定され、3週間1フェーズで段階的に開発を行い、中間レビューでの進捗報告と最終レビューでの成果報告を行います。また、同じ課題に取り組むチーム間で成果物の性能を競い合います。また、開発作業はツールを使って計画・管理し、開発過程を記録する方法を実践します。 ソフトウェア総合演習Ⅰでは1~2年までに学んだ各科目の内容を使った総合的なソフトウェア開発を実施します。開発の内容は、データ演算を中心としたソフトウェアを対象とし、適切なデータ構造やアルゴリズムの選択と実装を意識した開発を行います。 |
授業の目的と到達目標 /Objectives and attainment goals |
1. 比較的小規模なソフトウェアについて要求を理解しモデル化できるようになる 2. 比較的小規模なソフトウェアについて機能および品質要件を意識した設計できるようになる 3. 開発環境の構築と開発作業の初歩的な管理ができるようになる 4. 設計通りにソフトウェアが構築できていることを検証できるようになる |
授業スケジュール /Class schedule |
各回の授業(3コマ)では、 1. 各チームの進捗確認と教員からのフィードバック 2. その週の作業の進め方と留意点に関する説明 3. チーム毎のミーティングと開発作業 を行います。 第1回:チーム分け, 開発環境構築 チームを結成し、役割分担を行い、開発環境を準備する。 第2回:課題設定と計画立案 課題を受け取り、要件を整理し、段階的に開発するための計画を立てる。 第3回:フェーズ1 要件定義 最初のフェーズで実装する要件を整理し、設計を開始する。 第4回:フェーズ1 設計・開発 対象範囲の設計を行い、開発を行う。 第5回:フェーズ1 デモ 開発途中のソフトウェアの動作を確認し、要件、設計、実装の計画を見直す。 第6回:フェーズ2 要件定義 本フェーズで実装する開発する要件を整理し、設計を開始する。 第7回:フェーズ2 設計・開発 対象範囲の設計を行い、開発を行う。 第8回:フェーズ2 デモ(中間レビュー) 開発途中のソフトウェアの動作を確認し、要件、設計、実装の計画を見直す。 第9回:フェーズ3 要件定義 本フェーズで実装する開発する要件を整理し、設計を開始する。 第10回:フェーズ3 設計・開発 対象範囲の設計を行い、開発を行う。 第11回:フェーズ3 デモ 実装できたソフトウェアの動作を確認し、テストおよび最終発表に向けた計画を確認する。 第12回:テスト計画 テスト計画を立て、テストを実施する。 第13回:テスト・改修 改修とテストを繰り返し、品質を向上する。 第14回:最終レビュー 成果物の内容およびテスト結果を精査し、受け入れが妥当か否かを判断する。 |
教科書 /Textbook(s) |
必要に応じて資料を配布する。 |
成績評価の方法・基準 /Grading method/criteria |
以下の項目で評価します。 1. 各レビュー(中間と最終)での発表25% 2. 成果物(ドキュメントおよびソフトウェア)40% 3. 期末試験(個人面談) 25% 4. 活動への参加と貢献度 10% ※成果物の評価では、要件の充足率(機能の有無と精度)、性能、創造性、新規性を評価します。 ※各学生の貢献度は活動への取り組み姿勢と各レビューの内容および開発記録で確認します。 ※期末試験の形態と内容については授業の開始時に改めて定めますので確認してください。 |
履修上の留意点 /Note for course registration |
・この授業は実践活動を行うため学生には主体的な参加が求められます。 ・活動の性質上、課題ごとに必要とされる知識・技術が異なります。開発に必要な技術・知識(設計、プログラミング等)について、スキルが足りない場合には自助努力を求めます。 |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
※準備中 |
科目一覧へ戻る |
開講学期 /Semester |
2018年度/Academic Year 後期 /Second Semester |
---|---|
対象学年 /Course for; |
3年 |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
吉岡 廉太郎 |
担当教員名 /Instructor |
吉岡 廉太郎, ピエール-アラン ファヨール, 王 軍波, マキシム モズゴボイ |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2017/12/15 |
---|---|
授業の概要 /Course outline |
ソフトウェア開発は、ソフトウェアに求められる要件(機能)を理解し、要件を満たす設計を行い、設計通りにソフトウェアを構築する総合的な活動です。これらの活動を適切に行うには、プログラミングやソフトウェア工学はもとより、さまざまな知識と技術を組み合わせながら開発を推進する実践的な能力が必要となります。 ソフトウェア総合演習では、学生が3-4人のチームで与えられた課題を解決するソフトウェアの開発を通してソフトウェア開発の実践的な能力を身につけます。課題は授業の始めにチーム毎に指定され、3週間1フェーズで段階的に開発を行い、中間レビューでの進捗報告と最終レビューでの成果報告を行います。同じ課題に取り組むチーム間で成果物を競い合います。また、開発作業はツールを使って計画・管理し、開発過程が常に明らかになるよう実践します。 ソフトウェア総合演習Ⅱでは1~3年前期までに学んだ各科目の内容を使った総合的なソフトウェア開発を実施します。開発の内容は、ソフトウェア総合演習Ⅰで取り組んだ内容に加え、オブジェクト指向による設計、データベースの利用、ユーザインタフェースを含む課題に取り組みます。 |
授業の目的と到達目標 /Objectives and attainment goals |
1. ソフトウェアについて要求を理解しモデル化できるようになる 2. ソフトウェアについて機能および品質要件を意識した設計できるようになる 3. 開発環境の構築と開発作業の管理ができるようになる 4. 設計通りにソフトウェアが構築できていることを検証できるようになる 5. ソフトウェアが要求を満たしているか妥当性確認できるようになる |
授業スケジュール /Class schedule |
各回の授業(3コマ)では、 1. 各チームの進捗確認と教員からのフィードバック 2. その週の作業の進め方と留意点に関する説明 3. チーム毎のミーティングと開発作業 を行います。 第1回:チーム分け, 開発環境構築 チームを結成し、役割分担を行い、開発環境を準備する。 第2回:課題設定と計画立案 課題を受け取り、要件を整理し、段階的に開発するための計画を立てる。 第3回:フェーズ1 要件定義 最初のフェーズで実装する要件を整理し、設計を開始する。 第4回:フェーズ1 設計・開発 対象範囲の設計を行い、開発を行う。 第5回:フェーズ1 デモ 開発途中のソフトウェアの動作を確認し、要件、設計、実装の計画を見直す。 第6回:フェーズ2 要件定義 本フェーズで実装する開発する要件を整理し、設計を開始する。 第7回:フェーズ2 設計・開発 対象範囲の設計を行い、開発を行う。 第8回:フェーズ2 デモ(中間レビュー) 開発途中のソフトウェアの動作を確認し、要件、設計、実装の計画を見直す。 第9回:フェーズ3 要件定義 本フェーズで実装する開発する要件を整理し、設計を開始する。 第10回:フェーズ3 設計・開発 対象範囲の設計を行い、開発を行う。 第11回:フェーズ3 デモ 実装できたソフトウェアの動作を確認し、テストおよび最終発表に向けた計画を確認する。 第12回:テスト計画 テスト計画を立て、テストを実施する。 第13回:テスト・改修 改修とテストを繰り返し、品質を向上する。 第14回:最終レビュー 成果物の内容およびテスト結果を精査し、受け入れが妥当か否かを判断する。 |
教科書 /Textbook(s) |
必要に応じて資料を配布する。 |
成績評価の方法・基準 /Grading method/criteria |
以下の項目で評価します。 1. 各レビュー(中間と最終)での発表25% 2. 成果物(ドキュメントおよびソフトウェア)40% 3. 期末試験(個人面談) 25% 4. 活動への参加と貢献度 10% ※成果物の評価では、要件の充足率(機能の有無と精度)、性能、創造性、新規性を評価します。 ※各学生の貢献度は活動への取り組み姿勢と各レビューの内容および開発記録で確認します。 ※期末試験の形態と内容については授業の開始時に改めて定めますので確認してください。 |
履修上の留意点 /Note for course registration |
・IE03ソフトウェア総合演習ⅠおよびF14ソフトウェア工学概論を履修していることを前提とした授業です。 ・この授業は実践活動を行うため学生には主体的な参加が求められます。 ・活動の性質上、課題ごとに必要とされる知識・技術が異なります。開発に必要な技術・知識(設計、プログラミング等)について、スキルが足りない場合には自助努力を求めます。 ・プログラミング言語はJavaを想定していますが、教員の了解を得られれば他言語での開発も可能です。 |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
※準備中 |