概要:
本講義では,2年次のプログラミング入門や計算機の講義内容を基に計算機の仕組みを理解し,より実践的なプログラミングができるようになることを目標とする.具体的には①数列等の問題を解くプログラムが書ける,②2次元平面状でのロボットの移動を想定したシミュレーションプログラムが組める程度を目標とする.演習と課題レポートを実施し,知識の定着とプログラミングとデバッグ技術向上を図る.
授業の進め方・方法:
授業は,プレゼンテーション形式の座学の時間と図面を描く実習の時間で構成される。
座学では,適宜プリントを配布し,授業の要点をまとめ,理解を促す。
実習では,時間内に適切な表現で図面を完成させることを評価する。時間が足りない場合は宿題とする場合もある。
注意点:
1.試験や課題レポート等は、JABEE 、大学評価・学位授与機構、文部科学省の教育実施検査に使用することがあります。
2.授業参観される教員は当該授業が行われる少なくとも1週間前に教科目担当教員へ連絡してください。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス |
到達目標や学習方法,評価方法について理解し,使えるようになる
|
2週 |
C言語の基本① コンパイル,main関数,変数と型 |
コンパイルや変数と型などの基本的なことを理解し,使えるようになる
|
3週 |
C言語の基本② 制御文for,while, if, swicth |
制御文の描き方や使い方を理解し,使えるようになる
|
4週 |
関数 |
関数やローカル変数と関数プロトタイプについて理解し,使えるようになる
|
5週 |
関数 |
関数を使った構造化プログラミングについて理解し,使えるようになる
|
6週 |
ポインタと変数 |
ポインタ変数宣言,変数とポインタについて理解し,使えるようになる
|
7週 |
ポインタと配列 |
ポインタと一次元配列,ポインタによる配列表現について理解し,使えるようになる
|
8週 |
ポインタと関数 |
ポインタと関数について理解し,使えるようになる
|
2ndQ |
9週 |
構造体 |
構造体の使い方,構造体とポインタについて理解し,使えるようになる
|
10週 |
構造体 |
構造体の高度な使い方について理解し,使えるようになる
|
11週 |
ファイル入出力 |
ファイル入出力について理解し,使えるようになる
|
12週 |
ソート |
バブルソート,選択ソート,クイックソートについて理解する
|
13週 |
分割コンパイル |
分割コンパイルの方法について理解し,使えるようになる
|
14週 |
移動ロボットシミュレーション① |
2次元平面状を移動する移動ロボットのシミュレーションができる
|
15週 |
移動ロボットシミュレーション② |
2次元平面状を移動する移動ロボットのシミュレーションができる
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 2 | |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 2 | |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 2 | |
専門的能力 | 分野別の専門工学 | 機械系分野 | 情報処理 | プログラムを実行するための手順を理解し、操作できる。 | 3 | |
定数と変数を説明できる。 | 3 | |
整数型、実数型、文字型などのデータ型を説明できる。 | 3 | |
演算子の種類と優先順位を理解し、適用できる。 | 3 | |
算術演算および比較演算のプログラムを作成できる。 | 3 | |
データを入力し、結果を出力するプログラムを作成できる。 | 3 | |
条件判断プログラムを作成できる。 | 3 | |
繰り返し処理プログラムを作成できる。 | 3 | |
一次元配列を使ったプログラムを作成できる。 | 3 | |
情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
変数の概念を説明できる。 | 4 | |
データ型の概念を説明できる。 | 4 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 3 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 3 | |
主要な計算モデルを説明できる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 3 | |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 2 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 2 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 2 | |
情報数学・情報理論 | 離散数学に関する知識をアルゴリズムの設計、解析に利用することができる。 | 3 | |
コンピュータ上での数値の表現方法が誤差に関係することを説明できる。 | 3 | |
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。 | 3 | |
コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。 | 4 | |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 3 | |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 4 | |
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。 | 3 | |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 3 | |
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。 | 2 | |