プログラミングⅡ

科目基礎情報

学校 有明工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 プログラミングⅡ
科目番号 3I004 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 創造工学科(情報システムコース) 対象学年 3
開設期 通年 週時間数 前期:1 後期:1
教科書/教材 C言語によるプログラミング基礎編[第2版];内田智史監修/オーム社、C言語によるプログラミング応用編[第2版];内田智史監修/オーム社
担当教員 菅沼 明

到達目標

1. プログラムの開発環境としてUNIXを有効に利用できる。
2. 基本的なデータ表現法と基本的なアルゴリズムを理解し、C言語で表現することができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1プログラムの開発環境としてUNIXのツールを組み合わせて有効に利用できる。プログラムの開発環境としてUNIXを利用できる。プログラムの開発環境としてUNIXを利用できない。
評価項目2基本的なデータ表現法と基本的なアルゴリズムを理解し、C言語で効率よく表現し、わかりやすいプログラムを記述することができる。基本的なデータ表現法と基本的なアルゴリズムを理解し、C言語で表現することができる。基本的なデータ表現法と基本的なアルゴリズムを理解できず、C言語で表現できない。

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

学習・教育到達度目標 B-1 説明 閉じる

教育方法等

概要:
 コンピュータで何らかの問題を解かせようとする場合、計算手順(アルゴリズム)を考え、次にそれをプログラムとして記述する。すなわち、プログラムを作成するためには、問題を解くためのアルゴリズムを考えることと、それをプログラム化するためにプログラミング言語(コンピュータに命令を与えるための言語)の文法に関する知識とが必要である。
 本授業の目標は、プログラミングⅠに引き続いてプログラミング言語の文法を学習し、プログラミング技術を修得することである。ここでプログラミング言語として、システム記述などに適しており、広く使われているC言語を採用する。なお、ANSI(米国規格協会)の標準規格に準拠したプログラムの記述方法を学習する。
 この科目では、C言語を用いて「自作関数」「配列」「構造体」「ポインタ」「ファイル入出力」「コマンドライン引数」に関するテーマを扱う。C言語のプログラムはメイン関数を含めて1つ以上の関数から構成されている。一つの関数においてある一まとまりの処理を行なうようにし、関数をそれが必要となった場所で呼び出すというモジュール化は分かりやすいプログラムの作成にとって重要である。次に、扱うデータの数が増えると一括して操作できるような変数の集まりが必要になってくる。配列は同じようなデータを1列に並べて、一括して処理するプログラムを記述しやすくするデータ構造である。構造体は、複数のデータを一つにまとめて意味のある型として定義したものである。ポインタは変数などのメモリ上の格納場所(アドレス)を指し示すものである。標準入力(キーボード)と標準出力(ディスプレイ)を介した入出力以外のものとしてファイル入出力がある。これにより、ファイルにデータを保存したり、ファイルからデータを読み出すことが可能となる。さらに、UNIX上で自作のプログラムを実行する際に、コマンドラインからデータを渡すことも可能である。
 この科目はSDGsの目標のうち、「4.質の高い教育をみんなに」と「9.産業と技術革新の基盤をつくろう」に関連する。GE 対応科目
授業の進め方・方法:
 教室における授業と演習室での演習を実施する。年間で30問程度のプログラミング課題を出す予定であり、本授業および連携して開講する「情報システム演習Ⅱ」において各自、課題に取り組む。作成したプログラムはファイルで提出する。
注意点:
 プログラミングⅠの内容の習得を前提とするが、一部、復習の内容を含んでいる。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス、プログラミングIの復習 C言語のプログラムの基本的な記述法を理解する。
2週 UNIX概説、関数 UNIXの基本コマンドを使うことができる。
引数の概念を理解でき、引数を通してデータの受け渡しが行われることを理解できる。自作の関数を使用したプログラムを作成できる。
3週 UNIX概説、関数 UNIXの基本コマンドを使うことができる。
関数内の変数と引数との関係を図示できる。自作の関数を使用したプログラムを作成できる。
4週 UNIX概説、関数 UNIXの基本コマンドを使うことができる。
自作の関数を使用したプログラムを作成できる。
5週 関数 自作の関数を使用したプログラムを作成できる。
6週 関数 自作の関数を使用したプログラムを作成できる。
7週 関数 自作の関数を使用したプログラムを作成できる。
8週 中間試験
2ndQ
9週 答案返却、配列 配列の概念を理解でき、配列を使う意義を理解できる。配列を宣言でき、配列にデータを保管でき、そのデータを参照できる。
10週 配列 配列の概念を理解でき、配列を使う意義を理解できる。メモリ内に配置される配列を図示できる。配列を使用したプログラムを作成できる。
11週 構造体 構造体の概念を理解でき、構造体を使う意義を理解できる。メモリ内に配置される構造体を図示できる。構造体を宣言でき、構造体のメンバを直接参照できる。
12週 構造体 構造体を使用したプログラムを作成できる。
13週 構造体 構造体を使用したプログラムを作成できる。
14週 構造体 構造体を使用したプログラムを作成できる。
15週 期末試験
16週 テスト返却と解説
後期
3rdQ
1週 情報倫理、ポインタ 情報と情報社会、個人情報と知的財産について理解できる。
ポインタの概念を理解でき、ポインタ変数とは何かを理解できる。メモリ内に配置される変数間の関係を図示できる。ポインタを使用したプログラムを作成できる。
2週 情報倫理、ポインタ ネットワークにおけるコミュニケーションとマナーについて理解できる。
関数とポインタについて理解でき、関数の呼び出し方として参照による呼び出し(call by reference)を理解できる。関数の引数と変数の間の関係を図によって例示できる。ポインタを使用したプログラムを作成できる。
3週 情報倫理、ポインタ 情報社会における生活について理解できる。
ポインタと配列の関係について理解でき、ポインタを使用したプログラムを作成できる。
4週 情報倫理、ポインタ 情報セキュリティとネット被害について理解する。
ポインタを使用したプログラムを作成できる。
5週 ポインタ ポインタを使用したプログラムを作成できる。
6週 ポインタ ポインタを使用したプログラムを作成できる。
7週 ポインタ ポインタを使用したプログラムを作成できる。
8週 中間試験
4thQ
9週 答案返却、ファイル入出力 ファイルの概念を理解できる。ファイルのオープンとクローズができ、ファイル入出力に関する各種標準関数を使用できる。ファイル入出力を伴うプログラムを作成できる。
10週 ファイル入出力 ファイル入出力を伴うプログラムを作成できる。
11週 ファイル入出力 ファイル入出力を伴うプログラムを作成できる。
12週 コマンドライン引数 コマンドラインから引数を取得するプログラムを作成できる。
13週 コマンドライン引数 コマンドラインから引数を取得するプログラムを作成できる。
14週 コマンドライン引数 コマンドラインから引数を取得するプログラムを作成できる。
15週 学年末試験
16週 テスト返却と解説

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4前2,前3,前4,前5,前6,前7
変数の概念を説明できる。4前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7
データ型の概念を説明できる。4前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7
制御構造の概念を理解し、条件分岐を記述できる。4前1,前2,前3,前4,前5,前6,前7
制御構造の概念を理解し、反復処理を記述できる。4前1,前2,前3,前4,前5,前6,前7
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4前1,前2,前3,前4,前5,前6,前7,前9
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4前1,前2,前3,前4,前5,前6,前7,前9
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4前2,前3,前4,前5,前6,前7,前9
ソフトウェアアルゴリズムの概念を説明できる。4前2,前3,前4,前5,前6,前7,前9
与えられたアルゴリズムが問題を解決していく過程を説明できる。4前2,前3,前4,前5,前6,前7,前9
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後9
情報数学・情報理論コンピュータ上での数値の表現方法が誤差に関係することを説明できる。4前9,前10
その他の学習内容少なくとも一つの具体的なコンピュータシステムについて、起動・終了やファイル操作など、基本的操作が行える。4前2,前3,前4,後9,後10,後11
コンピュータウィルスやフィッシングなど、コンピュータを扱っている際に遭遇しうる代表的な脅威について説明できる。4後1,後2,後3,後4
コンピュータを扱っている際に遭遇しうる脅威に対する対策例について説明できる。4後1,後2,後3,後4
基本的な暗号化技術について説明できる。3後3,後4
マルウェアやフィッシングなど、コンピュータを扱っている際に遭遇しうる代表的な脅威について説明できる。4後3,後4
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。4前3,前4,前5,前6,前7,前10,前13,前14,後4,後5,後6,後7,後11,後13,後14
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。4前3,前4,前5,前6,前7,前10,前13,前14,後4,後5,後6,後7,後11,後13,後14
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。4前3,前4,前5,前6,前7,前10,前13,前14,後4,後5,後6,後7,後11,後13,後14
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。4前3,前4,前5,前6,前7,前10,前13,前14,後4,後5,後6,後7,後11,後13,後14

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合80000200100
基礎的能力2000010030
専門的能力6000010070
分野横断的能力0000000