プログラミングⅡ

科目基礎情報

学校 明石工業高等専門学校 開講年度 2018
授業科目 プログラミングⅡ
科目番号 0031 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 学修単位: 4
開設学科 電気情報工学科 対象学年 2
開設期 通年 週時間数 2
教科書/教材 伊藤祥一著:「Springs of C」森北出版、Peter Prinz、Tony Crawford著、黒川利明訳:「Cクイックリファレンス」オライリー、および自作教材
担当教員 庫本 篤

到達目標

[1]C言語の演算子、データ型、関数など基本文法と構造体、ポインタならびにポインタと配列の関係が理解でき、プログラムが記述できる。
[2]グラフィカルな応用プログラムが記述できる。
[3]読みやすいプログラムとはどのようなプログラムかを考え、チームによるプログラムの開発を計画し、実装できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1C言語の基本文法を理解し、構造体、ポインタを利用した応用課題レベルのプログラムを記述することができる。C言語の基本文法を理解し、構造体、ポインタを利用した例題レベルのプログラムを記述することができる。C言語の基本文法を理解し、構造体、ポインタを利用した例題レベルのプログラムを記述することができない。
評価項目2グラフィカルな応用プログラムの問題に対して、解決方法を計画し記述できる。グラフィカルな応用プログラムの問題に対して、例題レベルのプログラムを記述できる。グラフィカルな応用プログラムの問題に対して、例題レベルのプログラムを記述できない。
評価項目3読みやすいプログラムを考慮した、チームによるプログラム開発を計画し、実装できる。読みやすいプログラムを考慮した、チームによるプログラム開発を例題レベルで、実装できる。読みやすいプログラムを考慮した、チームによるプログラム開発を例題レベルで、実装できない。

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

学習・教育到達度目標 (C) 説明 閉じる
学習・教育到達度目標 (D) 説明 閉じる
学習・教育到達度目標 (F) 説明 閉じる

教育方法等

概要:
プログラミングⅠに引き続き、C言語によるプログラミングに関する講義と演習を行う。後半では、チーム開発の場面で必要な「リーダブルコード」を導入した実践的プログラミング能力を養う。
授業の進め方・方法:
前半の講義では、テキストの内容を理解するとともに応用問題の演習を個人単位で行い個人のプログラム開発能力を磨く。ここで、問題解決方法を机上で熟慮するとともにプログラム計画と記述の変更が分かるように履歴管理の習慣を付けることを推奨する。
後半の講義では、チームによるプログラム開発の手順(設計から実装)を学ぶとともに、チーム開発を念頭に、「リーダブルコード」で知られる「読みやすいプログラムはどのようなプログラムか」について、提示プログラムと各自の既作成のプログラムを元に理解を深める。最終的には、チーム単位でのプログラム開発を計画し実装する。
注意点:
プログラミングⅠを習得していること。本科目は、授業で保証する学習時間と、予習・復習及び課題レポート作成に必要な標準的な自己学習時間の総計が、90時間に相当する学習内容である。合格の対象としない欠席条件(割合) 1/3以上の欠課

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 構造体 構造体を理解し、プログラムを記述できる。
2週 ポインタ ポインタを理解し、プログラムを記述できる。
3週 ポインタ ポインタと配列の関係を理解し、プログラムを記述できる。
4週 アナログ時計の制作 OpenGLを使ってアナログ時計プログラムを記述できる。
5週 文字を描く OpenGLを使って文字描画プログラムを記述できる。
6週 キャラクターを表示する OpenGLを使ってキャラクター表示プログラムを記述できる。
7週 マウスを入力する マウス入力プログラムを記述できる。
8週 中間試験 1週~7週までの内容を理解し、プログラムが記述できる。
2ndQ
9週 キー入力を使う キー入力プログラムを制作できる。
10週 ミニゲームの制作 OpenGLを使ってミニゲームを制作できる。
11週 ミニゲームの制作 OpenGLを使ってミニゲームを制作できる。
12週 オリジナルゲームの制作 OpenGLを使ってオリジナルゲームを設計、制作できる。
13週 オリジナルゲームの制作 OpenGLを使ってオリジナルゲームを設計、制作できる。
14週 オリジナルゲームの制作 OpenGLを使ってオリジナルゲームを設計、制作できる。
15週 オリジナルゲームの制作 OpenGLを使ってオリジナルゲームを設計、制作できる。
16週 期末試験 60点を取得する。
後期
3rdQ
1週 プログラム品質、移植性とリーダブルコードの必要性 プログラム品質、移植性の意味とリーダブルコードの必要性が理解できる。
2週 C言語規約とプログラム記法 C言語規約の特徴とプログラム記法の例を理解する。
3週 チームによるプログラム設計と実装方法(1) チームによるプログラム設計方法が理解できる。
4週 チームによるプログラム設計と実装方法(2) チームによるプログラム実装方法が理解できる。
5週 リーダブルコード(1) - キーワードと命名規則 C言語のキーワードとユーザ定義変数の記述指針が理解できる。
6週 リーダブルコード(2) - コメント プログラムに記述するコメントの必要性と記述指針が理解できる。
7週 リーダブルコード(3) - 制御フロー 読みやすい制御フローの記述が理解できる。
8週 中間試験 1週~7週までの内容を理解し、プログラムが記述できる。
4thQ
9週 リーダブルコード(4) - インターフェース データ入出力、関数呼び出しでの記述指針が理解できる。
10週 リーダブルコード(5) - 性能 プログラム記述に違いによる性能(計算時間など)の違いが理解できる。
11週 リーダブルコード(6) - テスト テストの方法が理解できる。
12週 リーダブルコード(7) - 再利用 プログラム資源。の再利用の重要性が理解できる。
13週 チームによるプログラム開発 チームによるプログラム開発を計画し、実装できる。
14週 チームによるプログラム開発 チームによるプログラム開発を計画し、実装できる。
15週 チームによるプログラム開発 チームによるプログラム開発を計画し、実装できる。
16週 期末試験 60点以上を取得する。

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

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

評価割合

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