プログラミング

科目基礎情報

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

到達目標

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

ルーブリック

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

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

学習・教育到達度目標 E2 説明 閉じる
電気情報工学科教育目標 E2 説明 閉じる

教育方法等

概要:
情報化社会のなかでスマートフォンを始めとする様々な機器にソフトウェアが組み込まれており,現代を生きる人間にとって情報処理システムは無くてはならないものとなっている.本授業の大きな目標はそのような機器のなかでソフトウェアがどのように動作しているか理解できるようになること,および,自分自身で設定した仕様に基づいてソフトウェア開発ができるようになることである.さらに近年人工知能(AI)の発達により,プログラムを効率的に自動生成することが可能となってきた.その中でどのようなプログラムを作成すればよいのか企画する能力やAIが作成したプログラムを評価する能力が求められる.そのために本授業ではC++言語を通してオブジェクト指向プログラミングの基本概念,および応用としてデータ構造とアルゴリズムの基礎を学ぶ.
授業の進め方・方法:
・ (1)~(3)の目標それぞれについて定期試験および課題演習にて評価する.
・ 3分の2以上の出席があり,かつ 60点以上(100点満点)を合格とする.出席停止の扱いは学生ガイドブックに準ずる.再評価試験は不合格者のうち,それぞれの定期試験を30点以上得点し,授業で課された課題レポートをすべて提出したものに対して実施する.100点満点の試験を実施し,60点以上を合格として,その評価を60点とする.卒業追認試験は実施しない.
・ 課題演習等(20%):レポートまたはプログラムの提出
・ 定期試験(80%):中間試験(40%),期末試験(40%)
注意点:
演習を数多くこなすことによってプログラムの動作を理解し慣れていくため,自分自身で考えながらプログラムを記述していくこと.他の人と話し合ってもよいが,最後は自分で判断して記述すること.本科目は学修単位科目であり,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前1,前16
論理演算と進数変換の仕組みを用いて基本的な演算ができる。3前1,前16
コンピュータのハードウェアに関する基礎的な知識を活用できる。3前1,前16
情報伝達システムやインターネットの基本的な仕組みを把握している。3前1,前16
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
専門的能力分野別の専門工学情報系分野プログラミング変数の概念を説明できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
データ型の概念を説明できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
代入や演算子の概念を理解し、式を記述できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
制御構造の概念を理解し、条件分岐を記述できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
制御構造の概念を理解し、反復処理を記述できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
主要な言語処理プロセッサの種類と特徴を説明できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
プログラミング言語は計算モデルによって分類されることを説明できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
主要な計算モデルを説明できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。3前2,前3,前4,前5,前6,前9,前10,前11,前12,前13,前16
情報数学・情報理論集合に関する基本的な概念を理解し、集合演算を実行できる。3前1,前2,前16
集合の間の関係(関数)に関する基本的な概念を説明できる。3前1,前2,前16
ブール代数に関する基本的な概念を説明できる。3前1,前2,前16
論理代数と述語論理に関する基本的な概念を説明できる。3前1,前2,前16

評価割合

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