応用プログラミングA

科目基礎情報

学校 函館工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 応用プログラミングA
科目番号 0078 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 生産システム工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 内田智史監修 C言語によるプログラミング応用編第2版 (オーム社)
担当教員 佐藤 恵一,東海林 智也

到達目標

1. 与えられた問題に対して、それを解決するための応用プログラムを作成することができる。
2. 組み込み系のプログラム開発に必要な知識を理解し、組込み系の応用プログラムを作成することができる。
3. コンピュータ上で数値計算を行う際に発生する誤差の影響を理解し、適切な数値表現ができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1より実践的な応用プログラムを作成することができる。単純な応用プログラムを作成することができる。単純な応用プログラムを作成することができない。
評価項目2より実践的な組込み系の応用プログラムを作成することができる。単純な組み込み系の応用プログラムを作成することができる。単純な組み込み系の応用プログラムを作成することができない
評価項目3誤差の影響を理解し、適切な数値表現ができる。誤差の影響を理解できる。誤差の影響を理解できない。

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

函館高専教育目標 B 説明 閉じる
函館高専教育目標 C 説明 閉じる

教育方法等

概要:
2年までのプログラミング入門、プログラミング基礎で学習したことをさらに発展させ、より実践的なプログラムを作成する。開発環境もPC上、組込み系、各種OSにおける開発手法を学ぶ。
本授業の1週から15週は、銀行系オンラインシステムの開発に従事した教員が、その経験を活かして行う。
授業の進め方・方法:
プログラミング入門、プログラミング基礎は文法中心の学習であったが、それを実際のアプリケーションで活用する知識を学ぶ。プログラミング言語に関する文法や浮動小数点数に関する知識もさらに詳細に学習する。ネットワークなど実際に社会で使用されているテーマで演習を行う。
注意点:
前期はC言語、後期はJava言語をプログラミング言語として用いる。

評価方法:
試験 50 % (前期期末試験 x 0.25 + 後期達成度評価試験 x 0.25)
課題 50 % (前期レポート課題x 0.25 + 後期レポート課題x 0.25)
ただし、前期最終課題(自由作品)が非常に優れている場合は、前期最終評価に対して前期評価50%範囲内で加点することがある。
学習環境や学校行事日程などの大幅な変更などにより、一部変更する場合がある。

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス、static通用範囲と生存期間 static通用範囲と生存期間を理解できる。
2週 可変引数、コマンドライン引数の取得 可変引数、コマンドライン引数の取得を理解できる。
3週 疑似乱数 疑似乱数発生の仕組みを理解できる。
4週 ポインタ変数のポインタ表記とデータ表記。ポインタによる構造体メンバの参照 ポインタ変数のポインタ表記とデータ表記。ポインタによる構造体メンバの参照を理解できる。
5週 ポインタ配列、ポインタのポインタ ポインタ配列、ポインタのポインタを理解できる
6週 動的メモリ確保 動的メモリ確保を理解できる
7週 ビットごとの演算 ビットごとの演算を理解できる
8週 1対1通信、メッセージ交換アプリ(簡易LINE)の作成 サーバ/クライアント通信を理解できる
2ndQ
9週 1対多通信、非同期多重通信、文字ベース鬼ごっこゲームの作成 非同期多重通信(1対多)を理解できる。
10週 OpenGLの基本 OpenGLのプログラム構成、3DCGの座標系、イベントドリブン型プログラミング手法の基本を理解できる。
11週 OpenGLアニメーション OpenGLのアニメーションするプログラムを作成できる。
12週 OpenGLテクスチャマッピング テクスチャマッピングをするプログラムを作成できる。
13週 1対多通信、非同期多重通信、OpenGL図形を用いた鬼ごっこゲームの作成 OpenGL図形を用いた非同期多重通信のプログラムを作成できる。
14週 ネットワークアプリケーションの作成 ネットワークアプリケーションを作成できる。
15週 前期期末試験
16週 試験答案返却・解答解説 間違った問題の正答を求めることができる
後期
3rdQ
1週 浮動小数点数(1) 浮動小数点数と誤差の関係を理解できる。
2週 浮動小数点数(2) 浮動小数点数と誤差の関係を理解できる。
3週 浮動小数点数(3) 浮動小数点数と誤差の関係を理解できる。
4週 浮動小数点数(4) 浮動小数点数と誤差の関係を理解できる。
5週 浮動小数点数の達成度評価試験 オンライン試験により浮動小数点数について学んできた項目の達成度を評価し、振り返ることができる。
6週 Javaの実行環境の構築とHello World Javaの実行環境を構築できる。またJava言語を用いてHello Worldを作成できる。
7週 Javaのデータ型と画面表示と入力 Java言語のデータ型の概念を説明できる。また画面表示とキーボード入力が出来る。
8週 Javaの演算処理と分岐処理 Java言語を用いて演算処理と分岐処理ができる。
4thQ
9週 Javaの配列と乱数 Java言語の配列と乱数を利用できる。
10週 Javaの例外処理 Java言語を用いて例外処理ができる。
11週 Javaのファイル入出力 Java言語を用いてファイルの入出力操作ができる。
12週 Javaのリスト型とマップ型と拡張for文 Java言語のリスト型とマップ型の概念を説明できる。また拡張for文を利用できる。
13週 Javaのラムダ式(1) Java言語を用いてラムダ式を使うことが出来る。
14週 Javaのラムダ式(2) Java言語を用いてラムダ式を使うことが出来る。
15週 Javaのforeach処理 Java言語を用いてforeach処理ができる。
16週 ※ 学年末試験は実施しません

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4前1,後3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4前1,前2
変数の概念を説明できる。4前1,前2,前4,前5
データ型の概念を説明できる。4前1,前2,前4,前5,前6,後2
制御構造の概念を理解し、条件分岐を記述できる。4前1,前2,後3
制御構造の概念を理解し、反復処理を記述できる。4前1,前2,後14
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4前2,後10,後11,後12,後13,後14,後15
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4前1,後10,後11,後12,後13,後14,後15
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4前3,前11,後10,後11,後12,後13,後14,後15
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。4後1
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。4前3,前11
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。4前12
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。4前12
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。4前12
ソフトウェア与えられたアルゴリズムが問題を解決していく過程を説明できる。4前11,後4,後5,後6,後7
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4前3,前10
計算機工学小数を2進数、10進数、16進数で表現できる。4前7,後4,後5,後6,後7
情報通信ネットワークプロトコルの概念を説明できる。3前12,前13,前14
インターネットの概念を説明できる。3前12,前13,前14
主要なサーバの構築方法を説明できる。4前12,前13,前14
情報通信ネットワークを利用したアプリケーションの作成方法を説明できる。4前12,前13,前14
情報数学・情報理論コンピュータ上での数値の表現方法が誤差に関係することを説明できる。3後4,後5,後6,後7
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。3後4,後5,後6,後7

評価割合

試験発表相互評価態度ポートフォリオ課題合計
総合評価割合50000050100
基礎的能力2500002550
専門的能力2500002550
分野横断的能力0000000