プログラミング

科目基礎情報

学校 松江工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 プログラミング
科目番号 0034 科目区分 専門 / 必履修
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 電気情報工学科 対象学年 4
開設期 前期 週時間数 2
教科書/教材 適宜,資料を配布する.
担当教員 林田 守広

到達目標

(1) プログラム文法の基礎(クラス,オブジェクト指向)を理解する.
(2) プログラムを読み,その動作を説明できる.
(3) 基本的なプログラムを作成できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1プログラム文法の基礎(クラス,オブジェクト指向)を的確に理解している.プログラム文法の基礎(クラス,オブジェクト指向)を理解している.プログラム文法の基礎(クラス,オブジェクト指向)を理解していない.
評価項目2プログラムを読み,その動作を的確に説明できる.プログラムを読み,その動作を説明できる.プログラムを読み,その動作を説明できない.
評価項目3基本的なプログラムを的確に作成できる.基本的なプログラムを作成できる.基本的なプログラムを作成できない.

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

学習・教育到達度目標 E3 説明 閉じる

教育方法等

概要:
情報化社会のなかでスマートフォンを始めとする様々な機器にソフトウェアが組み込まれており,現代を生きる人間にとって情報処理システムは無くてはならないものとなっている.本授業の大きな目標はそのような機器のなかでソフトウェアがどのように動作しているか理解できるようになること,および,自分自身で設定した仕様に基づいてソフトウェア開発ができるようになることである.そのために本授業ではC++言語を通してオブジェクト指向プログラミングの基本概念,および応用としてデータ構造とアルゴリズムの基礎を学ぶ.
授業の進め方・方法:
・ (1)~(3)の目標それぞれについて定期試験および課題演習にて評価する.
・ 60点以上(100点満点)を合格とする.不合格となった場合,それぞれの定期試験で30点以上得点し,課題が全て提出されている者に限り再評価試験を受験できるものとする.追認試験は実施しない.
・ 課題演習等(40%):レポートまたはプログラムの提出
・ 定期試験(60%):中間試験(30%),期末試験(30%)
注意点:
演習を数多くこなすことによってプログラムの動作を理解し慣れていくため,自分自身で考えながらプログラムを記述していくこと.他の人と話し合ってもよいが,最後は自分で判断して記述すること.本科目は学修単位科目であり,1回の授業(90分)に対して,180分以上の自学自習が必要である。

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 基礎プログラミング2,3の復習 基礎プログラミング2,3で学習した内容の確認を行う.
2週 関数の多重定義と関数テンプレート 関数の多重定義(オーバーロード)と関数テンプレートを理解する.
3週 カプセル化とコンストラクタ オブジェクト指向の基本概念とアクセス制限によるカプセル化,およびコンストラクタを理解する.
4週 クラステンプレートと動的配列 クラステンプレートおよび動的配列を理解し,std::vector の使い方を学ぶ.
5週 ソート 様々なソートのアルゴリズムを理解する.
6週 二分探索木 二分探索木による探索を理解する.
7週 中間演習 第6回までの内容について演習を行う.
8週 中間試験 第6回までの内容について理解を確認する.
2ndQ
9週 グラフと計算複雑性 グラフを扱った様々な問題の解を見つける困難さを理解する.
10週 数値計算 ニュートン法,最急降下法,ルンゲクッタ法を理解する.
11週 数理最適化 線形計画問題,凸計画問題,および単体法を理解する.
12週 機械学習(1) k近傍法,サポートベクトルマシン(SVM)を理解する.
13週 機械学習(2) 人工ニューラルネットワークを理解する.
14週 期末演習 第13回までの内容について演習を行う.
15週 期末試験 第13回までの内容について理解を確認する.
16週 総括 本授業で学習したことをまとめ,定着させる.

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3
主要な言語処理プロセッサの種類と特徴を説明できる。3
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。3
プログラミング言語は計算モデルによって分類されることを説明できる。3
主要な計算モデルを説明できる。3
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3

評価割合

定期試験レポート課題等合計
総合評価割合6040100
基礎的能力000
専門的能力6040100
分野横断的能力000