|
教員名 : 生駒 哲一
|
授業コード
520193
オムニバス
科目名
プログラミング言語応用
科目名(英語)
Application of Programming Advanced Programming Language
配当学年
2年
単位数
2単位
年度学期
2025年度秋学期
曜日時限
金曜3限
対象学科
基_電電,基_電情
コース
科目区分
専門科目
必選の別
選択科目
担当者
生駒 哲一
教室
電子デザインラボ(EDラボ)
実務家教員担当授業
授業の目的と進め方
C言語をはじめとする各種のコンピュータ言語によるプログラミングの知識を、卒業研究や将来の業務で活用するには、より実践的な知識と技能が必要である。本科目では、いくつかの個別的なテーマを採り上げ、それらを通して必要な知識と技能を身に付ける。
講義では、原理的な説明の後、プログラムの記述例を参照し、プログラムの動作とその仕組みを確認する。演習では、与えられた課題に対し、それを実行するプログラムを作成して動作させ、ソースコード等のエビデンスや報告レポートを提出する。 達成目標1
テキスト形式のデータファイルに対し、C言語による入出力を行うことができるようになる。【20%】
達成目標2
C言語プログラム中で、データを管理する方法を学び、実装できるようになる。【20%】
達成目標3
モジュール分割されたC言語プログラムが記述でき、扱えるようになる。【20%】
達成目標4
オブジェクト指向の概念を知り、C++言語のクラスを扱えるようになる。【15%】
達成目標5
オブジェクト指向言語C++で、グラフィカル・ユーザ・インタフェースを作成することができるようになる。【15%】
達成目標6
Pythonなどの多様なプログラミング言語を扱い、多言語環境でのシステム開発ついて知る。【10%】
達成目標7
アクティブラーニング
ディスカッション
ディベート
グループワーク
プレゼンテーション
実習
フィールドワーク
その他課題解決型学習
授業計画
授業時間外課題(予習および復習を含む)
第1回
ファイル入出力(1)〜 ファイル入出力の基礎
行フォーマットのテキストファイルとして、1行の最大長さが想定でき、1行の項目数や属性が既知かつ固定の場合について、ファイルの読込みと書込みの方法を修得すること。(2時間)
第2回
ファイル入出力(2)〜 不定長データの扱い
行フォーマットのテキストファイルにおいて、各行の要素数が不定(属性は既知)の場合について、ファイルの読込みと書込みの方法を修得すること。(2時間)
第3回
ファイル入出力(3)〜 構文解析、字句解析
テキストファイルが行フォーマットではなく任意の場合に、記述されたテキストの文法に従ってファイルの読込みや書込みを行う方法について、その概略を整理しておくこと。(2時間)
第4回
データ構造(1)〜 スタックとキュー
順次与えられるデータを管理する基礎的な方法として、積み重ねて格納し最後に積んだ要素から取り出す「スタック」と、順に送り出して先頭から取り出す「キュー」について、それらの考え方とプログラミング実装の方法を理解すること。(2時間)
第5回
データ構造(2)〜 線形リスト、動的メモリ領域確保
順次与えられる不定個数のデータを動的に格納する方式のうち、最も基本的な「線形リスト」と呼ばれるデータ構造について、その考え方とプログラミング実装の方法を理解すること。(2時間)
第6回
データ構造(3)〜 二分木、関数の再帰呼び出し
順次与えられる不定個数の数値データなどを、整列しながら動的に格納することのできるデータ構造「二分木」について、その考え方とプログラミング実装の方法、および、関数の再帰呼び出しの効果的な使われ方を理解すること。(2時間)
第7回
演習1
第1回〜第6回の内容に基づき、応用的なプログラムを作成することができるように、必要な知識を整理して、すぐに活用できるよう準備しておくこと。(3時間)
第8回
モジュール分割(1)〜 関数のプロトタイプ宣言
大規模プログラミングに向けての最初のステップとして、C言語の「関数」を効果的に用いて、ソースコードを複数のモジュールに分けて記述するプログラミングのスタイルを理解し、その実装ができるようになること。(2時間)
第9回
モジュール分割(2)〜 分割コンパイルの仕組み
複数のモジュールで構成される大規模プログラミングにおいて、コンパイルやリンクの原理、ヘッダファイルやライブラリファイルの役割、ソースコード更新時の再コンパイルを管理する方法などについて理解すること。(2時間)
第10回
モジュール分割(3)〜 ライブラリの活用
モジュール分割して作成したソースーコードでライブラリを作成し、それを他のプログラムとリンクして活用する方法を学ぶ。実例として、オープンソースの画像処理ライブラリ OpenCV のインストールと利用方法を学ぶ。予習で事前に調査をしておき、復習にて、これらを実践できるようにする。(3時間)
第11回
発展的な話題(1)〜 オブジェクト指向
データ構造と処理手続きを一体化して扱う「オブジェクト指向」の概念を理解し、C++言語の「クラス」としてそれを実装できるようになること。(2時間)
第12回
発展的な話題(2)〜 グラフィカル・ユーザ・インタフェース(GUI)開発
画面にウインドウを表示し、マウスなどの操作を含めたユーザインタフェースである「グラフィカル・ユーザ・インタフェース(GUI)」を、Windows環境のC++言語により作成する方法を学ぶ。(2時間)
第13回
発展的な話題(3)〜 多言語環境でのシステム開発
C言語、C++言語、Pythonなどを混在させた多言語環境にてプログラム開発する場合に、ダイナミック・リンク・ライブラリなどを活用する方法を学ぶ。(2時間)
第14回
演習2
第8回〜第13回の内容に基づき、応用的なプログラムを作成することができるように、必要な知識を整理して、すぐに活用できるよう準備しておくこと。(3時間)
課題等に対するフィードバック
各授業での課題について、必要に応じて、次の授業以降で解説を行う。
授業中の実習の際に、質問等を受け付ける。 演習1および演習2の提出物については、特にフィードバックは行わない。 評価方法と基準
演習1(25%)および演習2(25%)のレポート提出課題と、期末試験(50%)で評価する。
演習1、演習2、および、期末試験の合計点(100点満点)に対し、60点以上の場合に単位を与える。 テキスト
書籍のテキストは特にないが、随時、資料を配布します。
参考図書
特に指定しないが、C言語やその他のプログラム言語と、それらの応用に関する書籍を持参し、適宜参照すること。
科目の位置づけ(学習・教育目標との対応)
C言語プログラミングの基礎知識と情報リテラシーの基礎知識に基づき、より実践的な課題に取り組むためのステップとなる科目である。
履修登録前の準備
・科目「情報工学の基礎」「コンピュータアーキテクチャ」「プログラミング言語基礎」「プログラミング言語基礎演習」など、情報系科目の単位を取得していることが望ましい。
・Windows環境のパソコンで授業中の演習を行うので、ノートパソコンを十分に整備された状態で準備しておくこと。C言語の開発環境として、Visual Studioをインストールしておくこと。 |