プログラミング実習 III (クラス 4)

URL

講義ページ
https://lsnl.jp/l/pro3
https://lsnl.jp/~ohsaki/lecture/pro3/2025/

講義ページ (全クラス共通)
https://ist.ksc.kwansei.ac.jp/prog3/

[授業中に使用] クリッカー (パスワードが必要です)
https://lsnl.jp/app/lecture/clicker/show/pro3

講義ビデオ (パスワードが必要です)
https://lsnl.jp/video/pro3/2025/

連絡用メイリングリスト (スタッフ + TA に届きます)
pro3-staff[atmark]lsnl.jp
本文には、必ず学生番号・氏名・メールアドレス (@kwansei.ac.jp のもの) を明記してください。

担当教員

大崎 博之
関西学院大学 工学部 情報工学課程
E-mail: pro3-staff[atmark]lsnl.jp

TA (ティーチングアシスタント)

情報 M2 (巳波研) 荒木 聡一郎
人シス M2 (長田研) 今川 航介
情報 M1 (大崎研) 磯部 泰成
E-mail: pro3-staff[atmark]lsnl.jp

講義目的: 到達目標

「プログラミング実習 I」で習得した基本的な C 言語プログラミング技法を基に、 応用力を身につけることを目的とする。 配列、 構造体、 ポインタを用いたデータ構造構築法、 記憶の動的割り当てを学んだ後、 リスト処理、 ソーティング、 二分探索とハッシュ法等の基本アルゴリズムの実装技法を学ぶ。 また、 C++ の基本についても学ぶ。

授業方法

演習形式にて授業を行い、 必要に応じて講義を行う。

成績評価

授業中試験、 平常リポート

- 2 回の中間試験 (実技試験) に合格し、全ての必須課題を完成させることを単位取得の必要条件とする。

- 成績評価基準は別途詳細に記述した資料を配布する。

スケジュール

https://ist.ksc.kwansei.ac.jp/prog3/class4-sched.html

プログラミングに関する疑問

Q1.「プログラミング実習 I」で C 言語の基礎を学んだが、 それよりも複雑な内容をなぜ学ぶ必要があるのだろうか? スカラー変数 (char、 int、 double 型の変数)、 配列変数、 制御文 (while ループや for ループ)、 関数くらいを知っていれば十分ではないだろうか?

Q2. C 言語の応用力を身につけて、 それが何かの役に立つだろうか? 高度なプログラムが書けるようになるのだろうか? 高速なプログラムが書けるようになるのだろうか? それとも、 役には立たないが、 単位取得のために我慢して覚える必要があるのだろうか?

Q3.世界中で利用されているアプリケーション○○○はどのように作られているだろうか? どのアプリケーションが C 言語で開発されているだろうか? C 言語で開発されているとすれば、 それはなぜだろうか? どうすれば自分も同じようなアプリケーションを C 言語で作成できるだろうか?

Q4.自分の思い通りのプログラムを書けるようになるためには、 何が必要だろうか? C 言語に詳しければ十分だろうか? 離散数学・アルゴリズムなどが必要だろうか? 必要だとすればそれはなぜだろうか?

授業実施時間について

チャペルに参加する予定のある人はメールで連絡してください。

演習室で Visual Studio Code を使う場合の注意点

- スタート → code とタイプし、「Visual Studio Code-設定初期化」を実行 (各学期ごとに実行する必要がある)

- Visual Studio Code を起動する場合は、Cygwin64 Terminal の中から code コマンドを実行して起動する (メニューから起動するのではなく Cygwin Terminal のプロンプトから起動する)


大崎が担当する科目に共通の連絡事項・アドバイス

注意事項、 教育方針、 学習のポイント、 病欠/公欠の時に何をすればよいか等を説明しています。

  大崎が担当する科目に共通の連絡事項・アドバイス
  https://lsnl.jp/~ohsaki/lecture/



[B1] Cプログラミングの基礎事項

https://ist.ksc.kwansei.ac.jp/prog3/b1.html

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2025/01.pdf

授業実施時間についてのアンケート
TBA

[B2] 分割コンパイル

https://ist.ksc.kwansei.ac.jp/prog3/b2.html

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2025/02.pdf

[B3] ポインタ

https://ist.ksc.kwansei.ac.jp/prog3/b3.html

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2025/03.pdf

[B4] 配列と構造体

https://ist.ksc.kwansei.ac.jp/prog3/b4.html

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2025/04.pdf

4x3 ピクセルの BMP ファイル
https://lsnl.jp/~ohsaki/lecture/pro3/2025/4x3.bmp

[B5] 動的割当て

https://ist.ksc.kwansei.ac.jp/prog3/b5.html

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2025/05.pdf

[B6] リスト処理

https://ist.ksc.kwansei.ac.jp/prog3/b6.html

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2025/06.pdf

[B7] ソーティング

https://ist.ksc.kwansei.ac.jp/prog3/b7.html

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2025/07.pdf

https://en.wikipedia.org/wiki/Selection_sort

https://en.wikipedia.org/wiki/Insertion_sort

https://en.wikipedia.org/wiki/Quicksort

[B8] 二分探索とハッシュ

https://ist.ksc.kwansei.ac.jp/prog3/b8.html

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2025/08.pdf

C 言語リファレンスカード

C Reference Card (ANSI)
https://www.math.brown.edu/~jhs/ReferenceCards/CRefCard.v2.2.pdf

Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)