概要:
コンピュータシステムに関して学んだ様々な理論や技術を再認識し,実際のコンピュータ上で動作するプログラムを実現することを目的とする.特に,オブジェクト指向プログラミング言語と統合開発環境を用いた手法に関して演習を通じて理解を深め,ソフトウェアの企画,仕様検討,開発,ドキュメント作成といった工程を通じてソフトウェア開発の理解を深めることを目的とする.
授業の進め方・方法:
授業の最初に講義を行い,演習課題を出題する.課題によっては,資料収集やレポート作成が授業時間外にも及ぶ可能性がある.また,ソフトウェア開発では,各自の企画や進捗により,授業時間外に開発する必要がある.
注意点:
プログラミングやアルゴリズムを始めとするプログラミング技術が必須となる. また,システムプログラムや計算機工学などのコンピュータシステム自身の概念的な理解も必要である.
参考書:
・オペレーティングシステム入門[新版];古市栄治/日本理工出版会
・C言語によるプログラミング[基礎編]、[応用編];内田智史/オーム社
・はじめてのC;椋田/技術評論社
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
知的所有権 |
プログラムやインターネット上の情報に関する著作権を整理し,考察できる.
|
2週 |
サイバー犯罪とネットワークマナー |
サイバー犯罪に関する統計とネットワークマナーに関する情報を整理し,考察できる.
|
3週 |
不正アクセスとコンピュータウィルス |
不正アクセス行為とコンピュータウィルスの動作を把握し,防御手段を考察できる.
|
4週 |
入門的オブジェクト指向1 |
オブジェクト指向の概念を理解し,身の回りにどのようなオブジェクトがあるか考察できる.
|
5週 |
入門的オブジェクト指向2 |
オブジェクト指向を利用することの利点と特徴的なキーワードを整理し説明できる.
|
6週 |
オブジェクト指向スクリプト言語1 |
演習を通じて,スクリプト言語の概念を理解できる.
|
7週 |
オブジェクト指向スクリプト言語2 |
JavaScriptを用いた演習を通じて,スクリプト言語を理解できる.
|
8週 |
オブジェクト指向プログラミング言語1 |
オブジェクト指向プログラミング言語を用いて,基本的なプログラムを作成できる.
|
2ndQ |
9週 |
オブジェクト指向プログラミング言語2 |
クラスや継承などの特徴的な概念を理解し,これらを用いたプログラムを作成できる.
|
10週 |
オブジェクト指向プログラミング言語3 |
他のオブジェクト指向プログラミング言語や統合開発環境の情報を整理し説明できる.
|
11週 |
統合開発環境を用いたプログラム開発1 |
統合開発環境を用いて,簡単なGUIのプログラムを作成できる.
|
12週 |
統合開発環境を用いたプログラム開発2 |
統合開発環境で用意されている様々な部品の使い方を理解できる.
|
13週 |
統合開発環境を用いたプログラム開発3 |
プログラムの作成を通じて,イベントプロシージャの扱いを理解できる.
|
14週 |
統合開発環境を用いたプログラム開発4 |
これまでの演習の応用として,指示された簡単なソフトウェアを自分で設計し,開発できる.
|
15週 |
ソフトウェア開発の手順 |
ソフトウェア開発で必要となる一連の開発工程を理解できる.
|
16週 |
|
|
後期 |
3rdQ |
1週 |
基本計画1 |
どのような機能を持つシステムを作成するか,自身で企画することができる.
|
2週 |
基本計画2 |
システムの目的や機能の概要を整理し,基本計画書として文書化できる.
|
3週 |
基本設計1 |
システムで実装する機能を列挙し,各機能の処理を詳細に示すことができる.
|
4週 |
基本設計2 |
各機能の入出力データを把握し,基本設計書として文書化できる.
|
5週 |
機能設計、詳細設計1 |
システムで実装する画面の構成とレイアウトを考察できる.
|
6週 |
機能設計、詳細設計2 |
画面が遷移する条件を考察し,画面遷移図として示すことができる.
|
7週 |
機能設計、詳細設計3 |
各画面のレイアウトと画面遷移図から,機能設計書として文書化できる.
|
8週 |
コーディング1 |
これまでに作成した仕様書に応じて,システムの各画面を設計できる.
|
4thQ |
9週 |
コーディング2 |
システムのイベントプロシージャを定義し,仕様書に応じた機能を実装できる.
|
10週 |
コーディング3 |
システムの動作を確認し,必要に応じて機能の修正を行うことができる.
|
11週 |
コーディング4 |
現在の進捗に応じて,計画の修正を行うことができる.
|
12週 |
デバッグ、試験1 |
システムで必要となる試験項目と検証項目を抽出することができる.
|
13週 |
デバッグ、試験2 |
抽出した項目に対して試験と検証を行い,テスト結果を文書化できる.
|
14週 |
リリース1 |
システムを実行可能な形式に変換し,実行環境に関する考察ができる.
|
15週 |
リリース2 |
システムを説明として,マニュアルを作成することができる.
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数の概念を説明できる。 | 4 | |
データ型の概念を説明できる。 | 4 | |
代入や演算子の概念を理解し、式を記述できる。 | 4 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | |
主要な計算モデルを説明できる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 4 | |
計算機工学 | 整数を2進数、10進数、16進数で表現できる。 | 4 | |
基数が異なる数の間で相互に変換できる。 | 4 | |
コンピュータシステム | システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを説明できる。 | 4 | |
ユーザの要求に従ってシステム設計を行うプロセスを説明することができる。 | 4 | |
プロジェクト管理の必要性について説明できる。 | 4 | |
その他の学習内容 | 少なくとも一つの具体的なコンピュータシステムについて、起動・終了やファイル操作など、基本的操作が行える。 | 4 | |
少なくとも一つの具体的なオフィススイート等を使って、文書作成や図表作成ができ、報告書やプレゼンテーション資料を作成できる。 | 4 | |
少なくとも一つのメールツールとWebブラウザを使って、メールの送受信とWebブラウジングを行うことができる。 | 4 | |
コンピュータウィルスやフィッシングなど、コンピュータを扱っている際に遭遇しうる代表的な脅威について説明できる。 | 4 | |
コンピュータを扱っている際に遭遇しうる脅威に対する対策例について説明できる。 | 4 | |
マルウェアやフィッシングなど、コンピュータを扱っている際に遭遇しうる代表的な脅威について説明できる。 | 4 | |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 4 | |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 4 | |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 4 | |
標準的な開発ツールを用いてプログラミングするための開発環境構築ができる。 | 4 | |
要求仕様にあったソフトウェア(アプリケーション)を構築するために必要なツールや開発環境を構築することができる。 | 4 | |
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。 | 4 | |
分野横断的能力 | 汎用的技能 | 汎用的技能 | 汎用的技能 | 特性要因図、樹形図、ロジックツリーなど課題発見・現状分析のために効果的な図や表を用いることができる。 | 3 | |
どのような過程で結論を導いたか思考の過程を他者に説明できる。 | 3 | |
総合的な学習経験と創造的思考力 | 総合的な学習経験と創造的思考力 | 総合的な学習経験と創造的思考力 | 工学的な課題を論理的・合理的な方法で明確化できる。 | 3 | |
要求に適合したシステム、構成要素、工程等の設計に取り組むことができる。 | 3 | |
課題や要求に対する設計解を提示するための一連のプロセス(課題認識・構想・設計・製作・評価など)を実践できる。 | 3 | |
提案する設計解が要求を満たすものであるか評価しなければならないことを把握している。 | 3 | |