プログラミング応用

科目基礎情報

学校 福井工業高等専門学校 開講年度 2019
授業科目 プログラミング応用
科目番号 0127 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 電子情報工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 教科書 「C言語によるはじめてのアルゴリズム入門」 河西朝雄 (技術評論社) / 教材「C・C++入門」 松林勝志他著 (森北出版)
担当教員 村田 知也

到達目標

1.変数と型の概念を理解し、C言語でプログラムを記述できる。
2.代入や演算子の概念を理解し、C言語でプログラムを記述できる。
3.条件分岐や反復処理の概念を理解し、C言語でプログラムを記述できる。
4.ポインタや関数の概念を理解し、C言語でプログラムを記述できる。
5.ファイル操作やデータ構造の概念を理解し、C言語でプログラムを記述できる。
6.基本から応用までアルゴリズムの構造を理解し、C言語でプログラムを記述できる。
7.与えられた文章問題を読み解き、C言語でのプログラムを組み立て、誤りなく実行することができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1変数と型の概念を詳細まで理解し、C言語で正確なプログラムを記述できる。変数と型の概念を理解し、C言語でプログラムを記述できる。変数と型の概念を理解できず、C言語でプログラムを記述できない。
評価項目2代入や演算子の概念を詳細まで理解し、C言語で正確なプログラムを記述できる。代入や演算子の概念を理解し、C言語でプログラムを記述できる。代入や演算子の概念を理解できず、C言語でプログラムを記述できない。
評価項目3条件分岐や反復処理の概念を詳細まで理解し、C言語で正確なプログラムを記述できる。条件分岐や反復処理の概念を理解し、C言語でプログラムを記述できる。条件分岐や反復処理の概念を理解できず、C言語でプログラムを記述できない。
評価項目4ポインタや関数の概念を詳細まで理解し、C言語で正確なプログラムを記述できる。ポインタや関数の概念を理解し、C言語でプログラムを記述できる。ポインタや関数の概念を理解できず、C言語でプログラムを記述できない。
評価項目5ファイル操作やデータ構造の概念を詳細まで理解し、C言語で正確なプログラムを記述できる。ファイル操作やデータ構造の概念を理解し、C言語でプログラムを記述できる。ファイル操作やデータ構造の概念を理解できず、C言語でプログラムを記述できない。
評価項目6基本から応用までアルゴリズムの構造を詳細まで理解し、C言語で正確なプログラムを記述できる。基本から応用までアルゴリズムの構造を理解し、C言語でプログラムを記述できる。基本から応用までアルゴリズムの構造を理解できず、C言語でプログラムを記述できない。
評価項目7与えられた文章問題を正確に読み解き、C言語でのプログラムをスマートに組み立て、誤りなく実行することができる。与えられた文章問題を読み解き、C言語でのプログラムを組み立て、誤りなく実行することができる。与えられた文章問題を読み解くことができず、C言語でのプログラムを組み立ても、誤りが多く実行できない。

学科の到達目標項目との関係

学習・教育到達度目標 RB2 説明 閉じる

教育方法等

概要:
C言語による基本的かつ代表的なプログラムの概念やアルゴリズムについて講義し、演習によって理解を深める。
実際にプログラムを記述して実行しながら授業を進めることで、自力でプログラムを組み立てられることを授業の目標とする。
授業の進め方・方法:
教科書や配布プリントなどを用いた講義と、情報処理演習室でのパソコン利用による演習を中心に進める。授業時間を以下のように3分割して進める。
「授業の1/3」前回の復習を行い、前回の練習問題の模範解答を見本にして解説をする。
「授業の2/3」教科書、配布プリントなどを用いて、プログラムを実行しながら講義を進める。
「授業の3/3」講義に則した練習問題を解く。
関連科目:情報構造論、オペレーティングシステム論、システム設計
注意点:
学習教育目標:RB2(◎)
関連科目:情報構造論、オペレーティングシステム、ソフトウェア工学
学習教育目標の達成度評価方法:中間学力試験、期末試験75%、最終のゲーム課題で25%とする。
学習教育目標の達成度評価基準:60点以上を合格とする。
再試:再試を行う場合もある。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 【講義】授業概要、プログラミングとは
【授業外学習】教科書による予習復習
ガイダンス。
プログラミングとは、全般的にどういうものだったのかを復習し、理解する。
2週 【講義】C言語の概要とプログラム作成手順(エディット,コンパイル,リンク,実行の方法)
【授業外学習】教科書による予習復習
エディット,コンパイル,リンク,実行の方法を理解する。
3週 【講義】変数とデータ型(変数の型宣言と初期化)
【授業外学習】前回の練習問題を解く
変数の型宣言と初期化を理解する。
4週 【講義】演算子の種類と使い方
【授業外学習】前回の練習問題を解く
演算子の種類と使い方を理解する。
5週 【講義】条件分岐(if, else if,switch, break)
【授業外学習】前回の練習問題を解く
if, else if, switch, break の使い方を理解する。
6週 【講義】反復処理 (for, while, do ~ while)
【授業外学習】前回の練習問題を解く
for, while, do ~ whileの使い方を理解する。
7週 【講義】配列の宣言と利用(1次元配列と文字列)
【授業外学習】前回の練習問題を解く
1次元配列と文字列の表現方法を理解する。
8週 【講義】多次元配列と最初から使える関数
【授業外学習】前回の練習問題を解く
多次元配列と最初から使える関数を理解する。
2ndQ
9週 【講義】ポインタ(1)アドレス演算子、間接演算子
【授業外学習】前回の練習問題を解く
アドレス演算子、間接演算子を理解する。
10週 【講義】ポインタ(2)動的メモリ割付、配列との違い
【授業外学習】前回の練習問題を解く
動的メモリ割付、配列との違いを理解する。
11週 【講義】多次元配列とポインタ
【授業外学習】前回の練習問題を解く
多次元配列とポインタを理解する。
12週 【講義】文字列とポインタ
【授業外学習】前回の練習問題を解く
文字列とポインタを理解する。
13週 【講義】関数の使い方
【授業外学習】前回の練習問題を解く
関数の使い方を理解する。
14週 【講義】ローカル変数とグローバル変数
【授業外学習】前回の練習問題を解く
ローカル変数とグローバル変数を理解する。
15週 【講義】関数の引数
【授業外学習】前回の練習問題を解く
関数の引数を理解する。
16週 【講義】前期のまとめ
【授業外学習】いままでの練習問題を復習する
前期を振り返り到達目標が達成できているか確認する。
後期
3rdQ
1週 【講義】構造体(1)宣言、代入、参照
【授業外学習】教科書による予習復習
構造体の基本的な書き方を理解する。
2週 【講義】構造体(2)ポインタ
【授業外学習】前回の練習問題を解く
構造体をポインタとして利用する方法を理解する。
3週 【講義】時間を表す構造体
【授業外学習】前回の練習問題を解く
構造体の特殊な利用事例を理解する。
4週 【講義】データの保存と表示(1)処理の流れ、宣言
【授業外学習】前回の練習問題を解く
ファイル入出力の基本的な書き方を理解する。
5週 【講義】データの保存と表示(2)複数行の処理
【授業外学習】前回の練習問題を解く
ファイル入出力の利用の仕方を理解する。
6週 【講義】データの保存と表示(3)バイナリファイル、グラフ化
【授業外学習】前回の練習問題を解く
ファイル入出力の利用の仕方を理解する。
7週 【講義】データ構造(1)スタック
【授業外学習】前回の練習問題を解く
データ構造の基本的な書き方を理解する。
8週 【講義】データ構造(2)キュー、リスト
【授業外学習】前回の練習問題を解く
データ構造のキューとリストを理解する。
4thQ
9週 【講義】データ構造(3)木、グラフ
【授業外学習】前回の練習問題を解く
データ構造の木とグラフを理解する。
10週 【講義】アルゴリズム(1)基本的な手法
【授業外学習】前回の練習問題を解く
アルゴリズムについて基本的な手法を理解する。
11週 【講義】アルゴリズム(2)基本ソート
【授業外学習】前回の練習問題を解く
基本形のソートアルゴリズムを理解する。
12週 【講義】アルゴリズム(3)改良ソート
【授業外学習】前回の練習問題を解く
改良形のソートアルゴリズムを理解する。
13週 【講義】アルゴリズム(4)サーチ
【授業外学習】前回の練習問題を解く
サーチアルゴリズムを理解する。
14週 【講義】ゲーム開発(1)
【授業外学習】前回の練習問題を解く
簡単なゲームを作成し、そのアルゴリズムを理解する。
15週 【講義】ゲーム開発(2)
【授業外学習】前回の練習問題を解く
簡単なゲームを作成し、そのアルゴリズムを理解する。
16週 全体のまとめ 全体を振り返り到達目標が達成できているか確認する。

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4前3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4前13
変数の概念を説明できる。4前3
データ型の概念を説明できる。4前3
制御構造の概念を理解し、条件分岐を記述できる。4前5
制御構造の概念を理解し、反復処理を記述できる。4前6
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4前16
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4前16
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4前16
主要な言語処理プロセッサの種類と特徴を説明できる。4前2
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。4前2
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。2後14,後16
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。2後14,後16
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。3後14,後16
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。4後14,後16
ソフトウェアアルゴリズムの概念を説明できる。4後10
与えられたアルゴリズムが問題を解決していく過程を説明できる。4後10
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3後10
整列、探索など、基本的なアルゴリズムについて説明できる。4後11,後13
時間計算量によってアルゴリズムを比較・評価できることを説明できる。3後10
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。2後10
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4後7
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4後7
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4後8
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4後9
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。2後10
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。2後10

評価割合

試験課題合計
総合評価割合7525100
基礎的能力502575
専門的能力25025