プログラミングII

科目基礎情報

学校 熊本高等専門学校 開講年度 2017
授業科目 プログラミングII
科目番号 TE307 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 情報通信エレクトロニクス工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 教科書なし、 参考書:「新・明解C言語 入門編」柴田 望洋SBクリエイティブ
担当教員 大木 真

到達目標

C言語による基本的なプログラミングから,数学的に高度な数値計算,様々な状況での問題解決,並べ替え,暗号化等の各種アルゴリズムを学ぶ.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
C言語文法総合C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し,参考文献をほぼ必要としないで実行できる.C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し,参考文献を用いて実行できる.C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を実行できない.
・素数探索アルゴリズム ・ソートアルゴリズム ・数値計算アルゴリズム素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.数値計算アルゴリズムを複数学び,数値解析への応用を理解する. それぞれ理解した内容を参考文献を用いずに説明できる.素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.数値計算アルゴリズムを複数学び,数値解析への応用を理解する. それぞれ理解した内容を参考文献を用いて説明できる.素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.数値計算アルゴリズムを複数学び,数値解析への応用を理解する. それぞれ理解した内容を説明できない.
ソフトウェアの作成基礎与えられた簡単な課題を解決するプログラムを,参考文献を必要とせず作成し実行できる.与えられた簡単な課題を解決するプログラムを,参考文献を用いて作成し実行できる.与えられた簡単な課題を解決するプログラムを,作成および実行できない.
暗号化と複合化プログラムによって,任意の文字列を暗号化できる.暗号化された文字列を複合化できる.参考文献を用いてプログラムによって,任意の文字列を暗号化できる.暗号化された文字列を複合化できる.プログラムによって,任意の文字列を暗号化できない.暗号化された文字列を複合化できない.

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

教育方法等

概要:
1年次の「情報基礎工学」、2年次の「プログラミングI」の上級科目であり、C言語の応用科目である.C言語は様々な製品・技術に用いられている基礎言語である.そのためC言語を理解していれば,JavaやC++,C#などの学習導入がスムーズになる.本科目では,それら他言語でも応用が出来るアルゴリズムをC言語によって理解し,記述できるように学習する.
授業の進め方・方法:
プログラミングは日本語や英語と同じ『言語』の一種である. そのため「勉強する」のではなくスポーツのように「練習する」ことが習得に繋がる. 様々な目的のプログラムを繰り返し記述することが習得の鍵である.
注意点:
質問は,講義中だけでなく,休み時間,放課後にも受け付ける.ただし,TwitterやFacebook等,SNSによる質問は受け付けない.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス 一年間の講義の概要,成績評価の方法を理解する.
2週 C言語文法復習1 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
3週 C言語文法復習2 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
4週 C言語文法復習3 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
5週 C言語文法復習4 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
6週 C言語文法復習5 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
7週 C言語文法復習6 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
8週 中間試験
2ndQ
9週 C言語文法復習7 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
10週 C言語文法復習8 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
11週 C言語文法復習9 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
12週 C言語文法復習10 (1) C言語での,文字や数値の入出力,条件分岐,繰り返し,関数定義,配列,ポインタ,構造体などプログラミングⅠで習った内容を,深く理解し実行できる.(2) フローチャートを用いてプログラム内容を記述できる.
13週 アルゴリズム理解1 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
14週 アルゴリズム理解2 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
15週 アルゴリズム理解3 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
16週 答案返却
後期
3rdQ
1週 アルゴリズム理解4 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
2週 アルゴリズム理解5 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
3週 アルゴリズム理解6 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
4週 アルゴリズム理解7 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
5週 アルゴリズム理解8 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
6週 アルゴリズム理解9 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
7週 アルゴリズム理解10 (1) 素数探索アルゴリズムを数種類体験し,アルゴリズムによる効率化を理解する.(2) ソートアルゴリズムを複数学び,アルゴリズムの向き不向きを理解する.(3) 数値計算アルゴリズムを複数学び,数値解析への応用を理解する.
8週 中間試験
4thQ
9週 暗号化と複合化1 (1) 任意の文字列をプログラムによって暗号化できる.(2) 暗号化された文字列を複合化できる.
10週 暗号化と複合化2 (1) 任意の文字列をプログラムによって暗号化できる.(2) 暗号化された文字列を複合化できる.
11週 アルゴリズム設計1 提示される複数の問題に対して、それらを解決するプログラムを自らで考え、実装できる。
12週 アルゴリズム設計2 提示される複数の問題に対して、それらを解決するプログラムを自らで考え、実装できる。
13週 応用プログラミング1 これまで学んだ全ての技術を応用して,様々な問題解決をC言語プログラミングによって行える.
14週 応用プログラミング2 これまで学んだ全ての技術を応用して,様々な問題解決をC言語プログラミングによって行える.
15週 応用プログラミング3 これまで学んだ全ての技術を応用して,様々な問題解決をC言語プログラミングによって行える.
16週 答案返却

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

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

評価割合

試験課題合計
総合評価割合6040100
基礎的能力302050
専門的能力302050