シラバス情報

授業科目名
プログラミング論Ⅱ
(英語名)
Programming II
科目区分
専門基礎科目(専門関連科目)
-
対象学生
工学部
学年
カリキュラムにより異なります。
ナンバリングコード
HETBK2MCA1
単位数
2単位
ナンバリングコードは授業科目を管理する部局、学科、教養専門の別を表します。詳細は右上の?から別途マニュアルをダウンロードしてご確認ください。
授業の形態
講義 (Lecture)
開講時期
2026年度前期
(Spring semester)
担当教員
小橋 昌司、和田 孝之
所属
工学研究科
授業での使用言語
日本語
関連するSDGs目標
目標9
オフィスアワー・場所

木曜日 12:10〜13:00 6号館3階6313室 

※対面での相談を含め、事前にUNIPAのQ&A機能を通じて連絡してください。オンラインでの相談にも対応します。

連絡先

本授業に関する問い合わせは、担当教員全員に対して、UNIPAのQ&A機能を通じて行ってください。


対応するディプロマ・ポリシー(DP)・教職課程の学修目標
二重丸は最も関連するDP番号を、丸は関連するDPを示します。
学部DP
3◎/4〇
研究科DP
全学DP
教職課程の学修目標

講義目的・到達目標
【講義目的】

本授業は、C言語を用いたプログラミングについて、基礎から応用までを体系的に学ぶことにより、工学分野における基礎的なソフトウェア開発能力を修得することを目的とします。
変数や制御構造、配列、関数といった基本事項に加え、ポインタ、構造体、ファイル操作、動的メモリ管理、再帰処理など、理解が難しい内容についても段階的に学習します。
これらを通じて、プログラムの動作やメモリ構造を意識しながら設計意図を整理し、データ構造とアルゴリズムの基礎に基づいて、正確に実装できる能力および論理的な問題解決能力の向上を図ります。

【到達目標】
本授業を修了した学生は、以下のことができるようになります。
  1. C言語における配列、ポインタ、構造体、ファイル入出力、動的メモリ管理の仕組みを説明できる。
  2. ポインタや構造体を適切に用いたプログラムを記述できる。
  3. 再帰処理を含む基本的なプログラムを作成できる。
  4. 与えられた課題に対して処理手順を整理し、適切なデータ構造およびアルゴリズムを設計・実装できる。
  5. プログラムの実行結果やエラーの原因を分析し、改善方法を説明できる。
授業のサブタイトル・キーワード
サブタイトル: 
C言語で学ぶ実践的プログラミング — 基礎から応用へ —

キーワード
  1. C言語
  2. 制御構造
  3. 配列
  4. ポインタ
  5. 関数
  6. 再帰処理
  7. 構造体
  8. ファイル操作
  9. 動的メモリ管理
  10. データ構造
  11. アルゴリズム
講義内容・授業計画
【講義内容】
本講義では、C言語を用いたプログラミングについて、基礎から応用までを体系的に学びます。
基本的な構文や制御構造、配列や関数の活用に加え、ポインタ、構造体、ファイル操作、動的メモリ管理、再帰処理など、理解が難しい内容についても段階的に取り扱います。
講義では、実際のコード例とその実行結果を示しながら解説を行い、理解度確認問題や短い演習を適宜取り入れることで、学生が自身の理解度を確認しながら学習を進められるよう配慮します。
また、後半で内容の難易度が高くなる場合には、前半よりも細かくステップを区切り、補助的な説明や確認問題を挟むことで、理解を支援します。
最終的には、データ構造とアルゴリズムの基礎に基づき、プログラムの設計意図を意識しながら、正確に実装できる能力の修得を目指します。


【授業計画】
  1. C言語の基本
     (変数、演算子、標準入出力関数、ビット演算)
  2. 条件分岐と繰り返し、配列の基本と応用
     (if文、switch文、while文、for文、1次元配列、2次元配列)
  3. ポインタの基礎とアドレス演算
     (ポインタ変数、間接参照、配列とポインタの関係)
  4. 関数の基礎と再帰関数
     (関数定義、仮引数と戻り値、再帰処理の考え方)
  5. ポインタによる文字列の基本操作とライブラリ関数
     (文字列、strlen、strcpy、strcmp)
  6. ポインタを用いた文字列処理と応用
     (文字列変換、文字列配列、ポインタ演算)
  7. ファイル操作とエラーハンドリング
     (テキストファイル入出力、EOF判定、コマンドライン引数)
  8. 構造体の基礎とメンバ変数の操作
     (構造体定義、初期化、typedef)
  9. 構造体とポインタの応用
     (構造体配列、値渡しと参照渡し)
  10. 理解度確認問題演習
     (第1回から第9回までの内容の総復習と理解度確認)
  11. 動的メモリ管理と構造体
     (malloc、free、構造体配列の動的確保)
  12. 複雑な構造体と応用
     (ビットフィールド、共用体、構造体データの扱い)
  13. プリプロセッサ
     (マクロ、条件付きコンパイル)
  14. データ構造とアルゴリズムの基礎
     (配列および構造体を用いた基本的なアルゴリズム設計)
  15. 総合問題演習および到達度確認

対面・遠隔の別
対面
実施方法及び遠隔上限適用対象の別
本授業は対面授業として実施します.
遠隔授業は実施しないため,遠隔授業単位数の上限適用対象外です.
生成AIの利用
利用する場面を限定し許可
生成AI注意点
生成AIは、授業内容の理解を深めることや学習の補助を目的として、積極的に利用してよいものとします。具体的には、プログラムの動作確認、概念の理解、復習などへの活用を認めます。
ただし、理解度確認問題演習および定期試験においては、生成AIの使用を禁止します。また、生成AIの出力結果をそのまま解答や提出物として用いることは認められません。
本授業においては、生成AIはあくまで理解を深めるための補助的手段として位置付けます。教員が認める範囲を超えて生成AIを使用したことが判明した場合は、単位を認定しない、又は認定を取り消すことがあります。
教科書
例題で学ぶ はじめてのC言語(第2版)
大石 弥幸、朝倉 宏一[共著]
ムイスリ出版
定価:2,310円+税
ISBN:978-4-89641-309-0
参考文献

独習C(新版)
翔泳社
ISBN:978-4-7981-5024-6

事前・事後学習(予習・復習)の内容・時間の目安
事前学習
  • 各講義に関連するテキスト教材の該当部分を事前に読み、主要な概念や用語にあらかじめ慣れておくこと。
  • あわせて、前回の講義内容を簡単に振り返り、理解が不十分であった点や疑問点を整理したうえで授業に臨むことが望ましい。
  • 事前学習の目安として、各講義前に約1時間を確保し、合計15時間程度の学習時間を想定する。

事後学習
  • 講義で学んだ内容を定着させるため、授業後にテキストや配布資料を再確認し、重要なポイントやコードの処理内容を整理すること。特に、プログラムの実行結果とコードの対応関係を意識しながら復習することが重要である。
  • 理解が不十分な部分については、追加で調査を行い、必要に応じて生成AI等も活用しながら概念理解を深めること。
  • テキストに掲載されている例題や章末問題のプログラムを実際に記述し、動作を確認することで、理解をより確実なものとすることが望ましい。
  • 事後学習の目安として、各講義後に約2〜3時間を確保し、合計45時間程度の学習時間を想定する。
アクティブ・ラーニングの内容

インタラクティブな小テストとクイズ

  • 授業中にSlido等を用いた小テストや理解度確認クイズを実施し、学生の理解度をリアルタイムで把握します。回答時間を十分に確保したうえで結果を共有し、講義内容の振り返りや補足説明を行うことで、理解の定着を図ります。
  • また、テスト前には復習を目的とした確認問題を取り入れ、学生が自身の理解度を確認しながら学習を進められるよう支援します。


ディスカッションを活用した学習

  • クイズや演習問題を通して、学生が学んだ概念や技術を実際のコードや具体例に適用できるようにします。
  • 演習中には学生同士の意見交換やペアでの話し合いを促し、異なる考え方や解決手法に触れる機会を設けます。
  • これにより、一方的な説明にとどまらず、学生同士の対話を通じて理解を深め、主体的に学習へ取り組む姿勢の育成を目指します。

成績評価の基準・方法

【成績評価の基準】

本授業では、C言語の基本文法を理解し、条件分岐、繰り返し、配列、関数、ポインタ、構造体、ファイル操作、動的メモリ管理など、本講義で扱う内容を適切に用いてプログラムを設計・記述し、その動作や処理内容について説明できるかどうかを評価します。
成績評価は、講義の目的および到達目標に示した能力(知識・技能、思考力・判断力・表現力等)に対する達成度を、理解度確認問題演習および定期試験の結果に基づいて総合的に判断し、次の基準を目安として単位を認定します。

  • S(90点以上):到達目標を十分に達成していると判断され、内容を正確かつ論理的に説明できる水準にある。

  • A(80点以上):到達目標を概ね達成していると判断され、標準的なプログラムを適切に記述できる水準にある。

  • B(70点以上):到達目標を一定程度達成していると判断され、基礎的な内容を概ね理解している。

  • C(60点以上):最低限の到達目標を達成していると判断される。


【成績評価の方法】

成績は、以下の評価項目に基づいて総合的に評価します。

  • 理解度確認問題演習:40%
    各授業で取り扱う内容に基づいた理解度確認問題演習を通して、学生の理解度や思考過程を評価します。

  • 定期試験:60%
    講義全体で学習した内容を総合的に問う筆記試験を実施し、プログラムの読解力、記述力、および応用力を評価します。

なお、理解度確認問題演習および定期試験においては、生成AIを含むいかなるAIツールの使用も禁止します。
課題・試験結果の開示方法
  • 理解度確認問題演習および定期試験の結果については、採点後に、学生が内容を確認できる形で開示します。理解度確認問題演習については、授業内で解説を行い、正答例や考え方を共有することで、理解を深める機会を提供します。

  • 学生の理解状況や要望に応じて、補足説明や追加の解説を行うことがあります。

  • 定期試験については、試験全体の講評および模範解答を、UNIPAのクラスプロフィール機能等を通じて公開します。
    さらに、学生から要望があった場合には、オンライン会議システム等を利用して、設問の意図や解答の考え方について個別に説明を行います。

履修上の注意・履修要件
  • 本講義は、「プログラミング論」の単位修得者を主な対象としていますが、履修条件ではありません。ただし、本講義は「プログラミング論」で扱う内容を前提として進めるため、未修得者は事前に該当内容を復習しておくことが望ましいです。
  • 本講義は、「コンピュータ実習Ⅰ」と連携して実施されており、講義で学んだ内容を実際にプログラムとして記述・実行することで理解を深める構成となっています。必須ではありませんが、より実践的な理解を深めるために、「コンピュータ実習Ⅰ」を同時に履修することを推奨します。
  • 病気ややむを得ない理由により授業を欠席する場合は、氏名および日付が確認できる診断書(コピー可)または医療機関の領収書等の書類を提出してください。提出された書類は確認後に返却します。
実践的教育
該当しない
備考

特記事項はありません.

英語版と日本語版との間に内容の相違が生じた場合は、日本語版を優先するものとします。