プログラミングII

科目基礎情報

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

到達目標

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

ルーブリック

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

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

教育方法等

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

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

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

授業計画

授業内容 週ごとの到達目標
前期
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週 定期試験
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週 定期試験
16週 答案返却

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎工学実験技術(各種測定方法、データ処理、考察方法)工学実験技術(各種測定方法、データ処理、考察方法)実験データの分析、誤差解析、有効桁数の評価、整理の仕方、考察の論理性に配慮して実践できる。3前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後9,後10,後11,後12,後13,後14,後15
情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後9,後10,後11,後12,後13,後14,後15
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後9,後10,後11,後12,後13,後14,後15
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後9,後10,後11,後12,後13,後14,後15
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。1
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。2
ソフトウェアアルゴリズムの概念を説明できる。2
与えられたアルゴリズムが問題を解決していく過程を説明できる。2
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。2
整列、探索など、基本的なアルゴリズムについて説明できる。3
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。1
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。1
分野横断的能力汎用的技能汎用的技能汎用的技能書籍、インターネット、アンケート等により必要な情報を適切に収集することができる。3前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後9,後10,後11,後12,後13,後14,後15
収集した情報の取捨選択・整理・分類などにより、活用すべき情報を選択できる。3前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後9,後10,後11,後12,後13,後14,後15
収集した情報源や引用元などの信頼性・正確性に配慮する必要があることを知っている。2前2,前3,前4,前5,前6,前7,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後9,後10,後11,後12,後13,後14,後15

評価割合

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