2025年度後期プログラミング演習2

曜日・時限 木曜日2時限 期別 後期 週時間数 0
ナンバリング HW230604
開講学科等 総合情報学部-デジタルゲーム学科
教員名 沼田 哲史
沼田 哲史
職務履歴

https://research.osakac.ac.jp/index.php?%e6%b2%bc%e7%94%b0%e3%80%80%e5%93%b2%e5%8f%b2

教員情報データベースに遷移します

目的

この授業の目的は、C言語の基本的なプログラミングスキルをさらに発展させ、クラスなどの概念を加えたC++のプログラミング技術を獲得することにあります。この授業では、より複雑なプログラミングとソフトウェア設計の概念を深く学び、実践的なプロジェクトとケーススタディを通じて、プログラミングの応用能力を高め、実際の問題解決に必要な技術を習得します。これらを通じて、IT業界でのキャリアに必要な基本スキルを身につけ、将来の競争力を高めるための準備を行うことを目指します。

授業計画

授業回 形式 学修内容 学修課題
1 A 授業ガイダンス
・授業の概要と目標、評価方法の説明
・使用するプログラミング言語とソフトウェア環境
・この授業におけるプログラミング学習のプロセス
事前学修 このシラバスを読み、授業の構成について確認する。教科書を読んで、基本的なプログラミングの練習問題を復習しておく。(2時間)
事後学修 授業で紹介されたプログラミング言語やソフトウェアツールを実際に使用し、操作に慣れる。授業で学んだ内容を基に、自身のプログラミングスキルと知識のレベルを再評価する。(2時間)
2 A,C プログラミング演習:C言語プログラミングの基礎の振り返り
・基本構文
・制御構造
・配列、文字列
・関数
・構造体、列挙型
・条件判定、bool値、数値計算
事前学修 教科書を全体的に読んでC言語のプログラミングを復習しておく。(2時間)
事後学修 授業で使用されたプログラム例を分析し、各コンセプトの実装方法を理解する。学んだ概念を使って小さなプログラムを自分で作成し、実践的な理解を深める。(2時間)
3 A,C 数値計算とメモリ内容の詳細
・浮動小数点数の取り扱い、数値演算の精度と誤差
・プログラム実行時のメモリ構造、ヒープとスタック、ポインタの基本と操作、メモリ管理のプラクティス
事前学修 教科書の11章と14章を読んで、該当する箇所について予習しておく。(2時間)
事後学修 授業で扱った数値計算とメモリ管理の概念を復習する。数値計算の演習問題を解く。自分の環境でメモリ管理に関するプログラミングを実践する。(2時間)
4 A,C コンパイルスイッチ
・マクロ定数、マクロ関数、プリプロセッサ・ディレクティブ
・C++のテンプレート機能
事前学修 教科書の13章を読んで、該当する箇所について予習しておく。(2時間)
事後学修 マクロ定数とマクロ関数の作成、プリプロセッサ・ディレクティブについて、自分の環境で使い方を練習する。異なるコンパイラオプションとフラグを使ってプログラムをコンパイルし、結果を比較する。(2時間)
5 A,C ファイルの読み書き
・ファイルのオープン、クローズ、データ入出力
・標準入力、標準出力、標準エラー出力
・ファイル操作のエラー処理、ファイル操作の安全な実装方法
事前学修 教科書の12章を読んで、該当する箇所について予習しておく。(2時間)
事後学修 ファイル操作と標準ストリームの概念を復習し、実際にファイルを開いて読み書きするプログラムを自分の環境で作成する。(2時間)
6 A,C エラーハンドリング、複数ソースファイルへの分割
・assert()による値の検証
・エラー処理の種類
・ブレークポイントの活用
・C++の例外処理
・コード行数のメトリクス、ソースファイル分割のメリット、モジュール性と再利用性の向上
事前学修 教科書の16章を読んで、エラーハンドリングとソースファイルの分割に関連する基本概念を復習し、授業内容への理解を深める。(4時間)
事後学修 既存のコードの行数と複雑さを分析し、モジュール化やリファクタリングを通じて改善を試みる。(4時間)
7 A,C オブジェクト指向の導入
・クラスとオブジェクト
・カプセル化、コンストラクタとデストラクタ
・オブジェクトの初期化とリソースの解放
・プログラミング演習
事前学修 オブジェクト指向プログラミングの概念、とくにクラスとオブジェクトに関する基本理論について調べておく。(2時間)
事後学修 C++を使って簡単なクラスを定義し、オブジェクトを生成して操作するプログラミング演習を行う。演習中に遭遇した問題点を特定し、解決策を探求する。(2時間)
8 A,C オブジェクト指向の高度な概念
・関数テンプレート
・クラステンプレート
・プログラミング演習
事前学修 テンプレートプログラミングの基本的な理論と概念について調べ、実際のコード例での応用に備える。(2時間)
事後学修 関数テンプレートとクラステンプレートの定義と利用に関する理解を確認し、自分で関数テンプレートとクラステンプレートを作成し、具体的な例で試す。(2時間)
9 A,C 標準テンプレートライブラリ(STL)
・コンテナ
・イテレータ
・アルゴリズム
・プログラミング演習
事前学修 STLの基本的な概念と構成要素について調べ、実際のプログラミングに備える。(2時間)
事後学修 STLのコンテナ、イテレータ、アルゴリズムに関する知識を再確認する。実際に様々なSTLコンテナを使用し、イテレータを用いた操作を行う。STLのアルゴリズムを適用して、具体的な問題解決やデータ操作を試みる。(2時間)
10 A,C モダンなC++の特徴の紹介
・ラムダ式、範囲ベースのforループ、autoキーワード
・プログラミング演習
事前学修 モダンなC++の新機能について、基本的な利用方法を調べ、授業での実践的な演習に備える。(2時間)
事後学修 ラムダ式、範囲ベースのforループ、autoキーワードに関する知識を再確認し、実際にこれらの機能を使ったプログラムを作成する。(2時間)
11 A,C 総合的なプログラミング演習 その1
・これまで学んだ内容の復習
・コーディング演習と質疑応答
事前学修 これまでの授業内容の復習:C++によるオブジェクト指向プログラミング、標準テンプレートライブラリ(STL)、例外処理、スマートポインタなど。(2時間)
事後学修 演習中に取り組んだ課題について振り返り、遭遇した問題に対して、追加の研究や解決策を探求する。自身のコードを見直し、最適化やリファクタリングを行う。(2時間)
12 A,C 総合的なプログラミング演習 その2
・コードレビューとフィードバック
・クラス内ディスカッションと経験の共有
事前学修 自身のコードを徹底的に見直し、改善点や最適化の機会を探す。コードの可読性と効率性を高めるためのリファクタリングに取り組む。(2時間)
事後学修 コードレビューとクラスディスカッションで得たフィードバックを分析し、提案された改善点を自身のコードに適用する。(2時間)
13 A まとめ
・ここまでの振り返り
・さらなるプログラミング学習に向けて
・質疑応答
・IT分野における学習マップの確認と目標設定
事前学修 教科書のまとめ問題を解き、問題のあった箇所については、教科書の該当する箇所を読んでよく復習する。(4時間)
事後学修 受講中に作成したノートやメモを整理し、授業で学んだ主要なトピックやスキルを再確認する。これまでの学習成果を振り返り、今後のIT分野における学習マップを確認し、具体的な目標を設定する。その目標に沿って、具体的な学習スケジュールを作成し、目標に向かって進むための計画を立てる。(4時間)

授業形式記号

  • A:一斉授業(通常の講義)
  • B:問題発見・解決学習、プロジェクト学習
  • C:体験、実験、実習、演習など
  • D:調査 分析、解析など
  • E:ものづくり、作品制作
  • F:グループワーク(ディスカッション・ディベートを含む)
  • G:プレゼンテーション
  • H:地域・企業 連携型学習
  • I:その他

到達目標

・C++を含む高度なプログラミング言語の概念と構文を理解し、実際のプログラム開発に応用できるようになること。
・複雑なプログラミング課題を解決し、実践的なアプリケーション開発プロジェクトへの適用を考えることで、応用プログラミングスキルを獲得すること。
・オブジェクト指向プログラミングとその他の高度なプログラミング手法を用いて、効率的かつ実用的なソフトウェアソリューションを設計、開発できるようになること。
・実世界の複雑な問題に対して、効率的かつ創造的なプログラムソリューションを設計し、実装する能力を身につけること。
・プログラミングプロジェクトにおけるデバッグ、テスト、改善のサイクルを通じて、より洗練された問題解決スキルを身につけること。
・IT分野における最新の動向と技術を追求し、常に学び続ける意欲と能力を養うこと。
・自身のキャリア目標に対して、より高度な技術的知識とスキルを身に付け、IT分野での専門性を深化させること。

科目に関連するディプロマポリシー項目
〇2024年度以降入学生
下記、記載のカリキュラムマップを参照。
https://www.osakac.ac.jp/about/policy/faculty/
※各学科/専攻名称のカリキュラムポリシー下段の
 「カリキュラムマップ」よりご確認ください。

○ 2023年度以前の入学生
  習得する資質・能力:知識・理解 【DP-W-1-1】
            汎用的技能 【DP-W-2-2】
            態度・志向性 【DP-W-3-3】

評価方法と評価観点

評価方法 配点合計知識・理解力応用力コミュニケーション力態度・志向性創造力 合計
定期試験またはレポート試験 100% 70% 30% 100%
小テスト、小論文 0%
グループワーク 0%
プレゼンテーション 0%
レポート、宿題 0%
授業での姿勢(ノート、質疑など) 0%
作品、パフォーマンス(実技、実演) 0%
その他1(具体的に: 0%
その他2(具体的に: 0%
100% 70% 30% 0% 0% 0% 100%

教科書・参考書

教科書:
・沼田 哲史「C言語本格トレーニング 基礎から応用までを徹底解説!」(共立出版社)(C言語によるプログラミングの基礎から応用までの細かな解説が載っており、演習問題と回答例・解説が充実している。C言語について書かれた本であるが、練習問題の内容はC++のトレーニングにも十分に活用できる。)

オフィスアワー

・オフィスアワーは火曜日のお昼休み、教員室(10号館206)で実施します。
 ※学内外の用務のため、オフィスアワーでも教員が教員室に不在の可能性があります。
  事前に numata@osakac.ac.jp までメールでご連絡いただくのが確実です。

・授業のMoodleに「授業に関する質問・相談」のトピックを設け、随時、質問・相談を受け付けます。
 ※回答は授業期間中の平日9:30〜17:00に行います。

その他

・出席回数が8回未満の場合は、D評価とします(これは予定なので再設定することがあります)。
・課題、レポート、ワーク等の講評は授業内で行います。

実務経験のある教員による授業科目

この授業は、実務経験のある教員によって実施されます。この授業を担当する沼田は、プログラミングに関する書籍を多数執筆・出版しており、プログラミングの教材開発やソフトウェア開発に関する研究が専門です。