応用プログラミングA

科目基礎情報

学校 函館工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 応用プログラミングA
科目番号 0078 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 生産システム工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 前期: 内田智史監修 C言語によるプログラミング応用編第2版 (オーム社)
後期: オンラインテキスト
 浮動小数点数 : https://tmytokai.github.io/open-ed/activity/fpoint/
 Java: https://tmytokai.github.io/open-ed/activity/java-basic/
担当教員 佐藤 恵一,東海林 智也

到達目標

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週 実習で使用する開発環境、変数・関数の通用範囲 変数や関数の通用範囲が理解できる。
2週 static,extern static、externの使い方を理解し、通用範囲と生存期間を理解できる。
3週 基本アルゴリズム(スワップ・スイッチ・カウンタ) 基本アルゴリズムを理解でき、組み合わせて処理を行うことができる。
4週 可変引数 可変引数のプログラムを作成することができる。
5週 コマンドラインの引数 コマンドラインで引数を与えるプログラムを作成することができる。
6週 ポインタ配列  ポインタ配列を理解できる。
7週 疑似乱数 疑似乱数の発生されるプログラムを作成できる。
8週 動的メモリ確保 動的メモリ確保のメリットを理解し、プログラムを作成することができる。
2ndQ
9週 ビット演算 ビット演算を理解し、簡単なアプリケーションを作成することができる。
10週 1対1同期通信 簡易LINEの作成 OSIトランスポート層の機能(ソケット)を理解し、1対1交互に通信する簡単なアプリを作成することができる。
11週 1対多非同期多重通信 鬼ごっこゲームの作成 1対多非同期多重通信の動作を理解することができる。
12週 OpenGL基本 座標系、イベントドリブン型プログラミング OpenGLの座標系を理解し、基本的な描画の仕組みを理解できる。イベントドリブン型プログラミングを理解できる
13週 OpenGLアニメーション・テクスチャマッピング OpenGLのアニメーションおよびテクスチャマッピングを理解できる。
14週 OpenGL3Dフラフィックス、1対多非同期多重通信(OpenGL版鬼ごっこゲームの作成) OpenGL3D図形を描画するための座標系など基本的な知識を理解できる。図を使った簡単なネットワークアプリケーションが作成できる。
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の関数型インターフェース Java言語の関数型インターフェースを使うことが出来る。
14週 Javaのラムダ式 Java言語を用いてラムダ式を使うことが出来る。
15週 JavaのforEach処理 Java言語を用いてforEach処理ができる。
16週 ※ 学年末試験は実施しません

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

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

評価割合

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