プログラミング言語

科目基礎情報

学校 熊本高等専門学校 開講年度 平成29年度 (2017年度)
授業科目 プログラミング言語
科目番号 HI303 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 人間情報システム工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 新・明解 C言語 実践編,柴田望洋,ソフトバンククリエイティブ社
担当教員 大隈 千春

到達目標

プログラミング言語の一つであるC言語に習熟し,構造化プログラミング技法に心がけ,よりよいプログラムが書けるようになることを目標とする.ライブラリ関数の挙動や制御構造の概念を理解して,与えられた問題を解決する方法を設計してプログラムで実現できるようになる.基本的なアルゴリズムとして探索や整列に関するアルゴリズムなどを学び,効率も考慮したプログラムの作成に配慮できるようになる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
アルゴリズム理解(整列・探索)問題を解決するための考え方を整理することができ,それを解決する基本的なアルゴリズムを理解することができ,応用的なプログラムに適用することができる.問題を解決するための考え方をすることができ,それを解決する基本的なアルゴリズムを理解することができ,プログラムの挙動を理解できる.授業内で学習するアルゴリズムの挙動を理解することができない.
構造体"構造体の宣言や構造体型の変数の種々の宣言方法,構造体の初期化と入出力とメンバの参照について理解できる.構造体の宣言や構造体型の変数の基本的な宣言方法,構造体の初期化と入出力とメンバの参照について理解できる.構造体の宣言や構造体型の変数の基本的な宣言方法,構造体の初期化と入出力とメンバの参照について理解できない.
ファイル処理テキストファイル,バイナリファイルを利用した,実用的なプログラムを作成できる.テキストファイル,バイナリファイルに対して適切な入出力プログラムを作成できる.テキストファイル,バイナリファイルを用いたプログラムを理解できない.
自己参照構造体自己参照構造体の意味を理解できる.静的チェーンや動的チェーンを生成操作した応用プログラムを作成できる.自己参照構造体の構造を理解でき,プログラムを作成できる.自己参照構造体の構造を理解できない.
再帰再帰アルゴリズムを利用した,実用的なプログラムを作成できる再帰アルゴリズムを理解できる,プログラムを作成できる.再帰アルゴリズムを理解できない
二分岐探索二分岐探索アルゴリズムを実装することができる.二分探索アルゴリズムを理解することができる.二分探索アルゴリズムを理解できない.

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

教育方法等

概要:
2年次「情報処理」で学習したプログラミング言語C言語についてさらに習熟する.新たに構造的なデータ(配列)や動的な変数(構造体とポインター)の取り扱い方,関数の組み方と使い方,再帰などのプログラミング手法を学習し,探索や整列など基本的なアルゴリズムを学び,簡単な実技演習を通して自力でプログラムが作成できるようになる.プログラミング言語は,C言語とする.構造的プログラミング技法の習得にも心がけ,よりよいプログラムが書けるようになる.
授業の進め方・方法:
本科目は,2年生「情報処理」に続く科目である.プログラミング言語はC言語とし,プログラミングは主にUNIX環境で行う.本科目では講義主体で進めるが,簡単な演習を通じて実際のプログラムの挙動を確認しながら内容理解を深める.前期には探索や整列アルゴリズムを学びながら,二年次に学習したことの定着を図る.さらに構造体や自己参照構造体,ファイルの取り扱い,再帰アルゴリズムなどを学ぶ.
注意点:
本科目は2単位であり規定授業時数は60時間である。
試験は,筆記による試験と一定の期間を定めて実技課題による試験を行う.
授業内で行う演習については,期限内に報告書を提出する.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 整列アルゴリズム
整列アルゴリズム(選択ソートやバブルソート)の挙動や時間計算量などによる違いを理解し,プログラムへの適用を理解できる.
2週 整列アルゴリズム
前週に同じ
3週 整列アルゴリズム 前週に同じ
4週 構造体 構造体の考え方,構造体の宣言と構造体型の変数のいろいろな宣言方法,構造体の初期化と入出力とメンバの参照について理解できる.構造体を関数引数としての受け渡し,入れ子の構造体の応用ができる.
5週 構造体 前週に同じ
6週 構造体
前週に同じ
7週 中間試験
8週 中間試験の解説
2ndQ
9週 探索アルゴリズム 探索アルゴリズム(番兵や,二分探索)の挙動を理解し,プログラムへの適用ができる.
10週 探索アルゴリズム 前週に同じ
11週 探索アルゴリズム 前週に同じ
12週 コマンドライン引数 コマンドライン引数を利用したプログラムを作成できる.
13週 ファイル処理(テキスト,バイナリ) ファイルに対する入出力を含むプログラムを書ける
主にテキストファイルの扱いができる
14週 ファイル処理(テキスト,バイナリ) 前週に同じ
バイナリファイルの生成,読み書きができる
15週 ファイル処理(テキスト,バイナリ) 前週に同じ
16週 定期試験の解説
後期
3rdQ
1週 ファイル処理(銀行システム) バイナリファイルを利用した実用的なプログラムを作成することができる.銀行システムを模したプログラムを作成できる.
2週 ファイル処理(銀行システム) 前週に同じ
3週 ファイル処理(銀行システム) 前週に同じ
4週 自己参照構造体(チェーン) 自己参照構造体の意味を理解できる.自己参照構造体を用いて静的チェーンについて理解できる.また,チェーンを作成するにおける動的なメモリを割り当て,動的チェーンを組み立て,動的チェーンを操作する関数をプログラミングができる.
5週 自己参照構造体(チェーン) 自己参照構造体を用いた単方向チェーン,双方向チェーンの構造を理解でき,実装できる.
6週 自己参照構造体(チェーン) 前週に同じ
7週 中間試験
8週 中間試験の解説
4thQ
9週 再帰 再帰の意味と仕組みを理解でき,再帰関数を用いたプログラミングができる.
10週 再帰 前週に同じ
11週 再帰 前週に同じ
12週 二分探索木 自己参照構造体チェーンを用いた二分探索木を生成でき,再帰的探索を実装できる
13週 二分探索 前週に同じ
14週 二分探索 前週に同じ
15週 二分探索 前週に同じ
16週 定期試験の解説

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

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

評価割合

筆記試験実技課題演習合計
総合評価割合602020100
基礎的能力30101050
専門的能力30101050