変数とデータ型の概念を説明できる。代入や演算子を理解し,式を記述できる。制御構造を理解し,条件分岐や反復処理を記述できる。関数(プロシージャ)を理解し,関数を使ったプログラムを記述できる。与えられた問題に対して,それを解決するためのソースプログラムを記述し,実行することができる。
概要:
1年,2年で学習したC言語のプログラミング能力を高めることを目標とします。問題のトップダウン的解析や関数によるプログラムの機能分割に積極的に取り組むことにより,構造化プログラミングの方法を理解し,実践的なプログラミング能力を身につけます。
授業の進め方・方法:
前半は,教科書の練習問題程度のプログラムを作成することで,C言語のプログラミングの基本を復習・理解してください。後半は,提示された問題に対して,それを解決するためのアルゴリズムを考え,プログラムを作成する実習を行います。
授業への取り組み(出席および授業課題提出状況)30%,レポート 70%で総合評価し,50点以上を合格とします。
注意点:
プログラムを完成させることが目的ではなく,プログラミングという作業に慣れることが重要です。構造化プログラミング,関数による機能分割にもチャレンジして欲しいと思います。人に聞いたり,ネットで調べたりすることは大切ですが,プログラムのコピーだけは絶対に行わないようにしてください。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス シラバスの説明,授業の進め方,プログラムの作成方法 |
前期授業の進め方を理解する。 プログラムの記述,コンパイル,実行の方法を理解する。
|
2週 |
C言語の基本 画面への出力,課題提出メールの書き方 |
Cプログラムの基本構造を理解する。 ディスプレイへの出力ができる。メールの作法を理解する。
|
3週 |
変数と代入,式の記述 キーボードからの入力 |
変数について説明できる。変数に代入できる。数式を記述できる。キーボードから変数に入力できる。
|
4週 |
条件文 if文,if else文,switch case文 |
条件設定よる場合分けを行うことができる。
|
5週 |
複雑な条件式 論理演算子 |
かつ(AND),または(OR)による複雑な条件式を記述できる。
|
6週 |
繰り返し for文,while文,do while文,入れ子構造 |
繰り返しの内容によって,命令文を適切に使い分けることができる。
|
7週 |
配列 添字,配列の初期化 |
配列の考え方を理解し,プログラムを作成できる。
|
8週 |
配列 2次元配列,2次元配列の初期化,多次元配列 |
多次元配列の考え方を理解し,プログラムを作成できる。
|
2ndQ |
9週 |
関数 関数の戻り値と型,引数,関数の呼び出し |
関数の戻り値,関数の型,関数の引数について説明できる。
|
10週 |
関数の設計 |
関数を設計し,プログラムを作成できる。
|
11週 |
変数 ローカル変数,グローバル変数,静的変数,動的変数,変数の寿命 |
変数を適切に使い分けることができる。
|
12週 |
乱数 |
乱数を理解し,乱数を用いたプログラムを作成できる。
|
13週 |
文字と文字列 |
文字列の表現方法を理解し,文字列を処理するプログラムを作成できる。
|
14週 |
課題プログラム1
|
基本的な(簡単な)プログラムを作成できる。
|
15週 |
ファイル操作
|
ファイルデータの読み取り,ファイルデータの書き込みを処理するプログラムを作成できる。
|
16週 |
|
|
後期 |
3rdQ |
1週 |
データ構造 スタック |
データ構造スタックのデータ格納の特徴(last in first out)を理解し,スタックとスタックを操作するプログラムを実装できる。
|
2週 |
データ構造 キュー |
データ構造キューのデータ格納の特徴(first in first out)を理解し,キューとキューを操作するプログラムを実装できる。
|
3週 |
データ構造 リスト実装の準備 |
変数や型が占めるバイト数を求めるsizeof演算子を用い配列や構造体が占めるバイト数を求めることができる。 malloc関数を用いて,適切なメモリサイズをもつ領域を動的に確保できる。
|
4週 |
データ構造 リスト |
データ構造リストと配列の違いについて,メモリ確保や格納場所へのアクセスの観点から説明できる。 構造体とポインタを適切に用いてリストとリストを操作するプログラムを実装できる。
|
5週 |
プログラム解析 プログラム鑑賞会 |
夏季休業の課題プログラム1に関連するプログラム等を解読し,良い点・問題な点を指摘できる。
|
6週 |
プログラム解析 goto文と構造化プログラミング |
プログラム実行順が複雑に入り組んだプログラムを観察し,プログラムの可読性の重要性を説明できる。 構造化プログラミング手法を用いたプログラムを設計できる。
|
7週 |
プログラム解析 プログラム読解演習 |
プログラムの仕様書とそのプログラムを読解し,プログラムを保守・点検できる。
|
8週 |
プログラム設計手法 全数探索 |
全ての可能性のある解の候補を全て調べる全数探索法を理解し,プログラム作成に応用できる。
|
4thQ |
9週 |
プログラム設計手法 動的計画法 |
対象となる問題を複数の部分問題に分割し,部分問題の結果を記録しながら解く動的計画法を理解し,プログラム作成に応用できる。
|
10週 |
プログラム設計手法 再帰 |
最小公倍数を求めるユークリッド互除法を理解する。 ユークリッド互除法を再帰を用いて表現し,最小公倍数を求めるプログラムを作成できる。
|
11週 |
プログラム設計手法 プログラム設計手法演習 |
全数探索法を用い約数を全て列挙するプログラムを作成できる。 再帰を用いて素因数分解を実行するプログラムを作成できる。
|
12週 |
数値解析 二分探索法を用いた方程式の求解 |
探索の対象となるデータ範囲を半分ずつに限定しながら値を探索する二分探索法を理解する。 二分探索法を用いて方程式の近似解を求めるプログラムを作成できる。
|
13週 |
数値解析 モンティカルロ法 |
乱択を繰り返し行い答えを求める手法の一つであるモンティカルロ法の手法を理解する。 モンティカルロ法を用いて円周率の近似値を求めるプログラムを作成できる。
|
14週 |
数値解析 数値微分 |
微分の近似値を計算する数値微分の手法を説明できる。 微分値を利用し関数の最小値を求める手法である勾配降下法を説明できる。 勾配降下法を用いて関数の最小値を求めるプログラムを作成できる。
|
15週 |
数値解析 数値積分 |
定積分の近似値を計算する区分求積法と台形則を説明できる。 定積分の近似値を求めるプログラムを作成できる。
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
変数の概念を説明できる。 | 4 | |
データ型の概念を説明できる。 | 4 | 後2 |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 後2 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | |
その他の学習内容 | 少なくとも一つの具体的なコンピュータシステムについて、起動・終了やファイル操作など、基本的操作が行える。 | 4 | |
少なくとも一つの具体的なオフィススイート等を使って、文書作成や図表作成ができ、報告書やプレゼンテーション資料を作成できる。 | 4 | |
少なくとも一つのメールツールとWebブラウザを使って、メールの送受信とWebブラウジングを行うことができる。 | 4 | |