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

URL

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

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

[授業開始時に提出] 出席確認フォーム (パスワードが必要です)
https://lsnl.jp/app/lecture/attend/show/pro3

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

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

連絡用メイリングリスト (スタッフ + 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 言語に詳しければ十分だろうか? 離散数学・アルゴリズムなどが必要だろうか? 必要だとすればそれはなぜだろうか?

授業実施時間について

チャペルに参加する予定のある人は 9/27(金) 5:00pm までにメールで連絡してください。

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

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

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

アクティブラーニング型授業

(実技テストがない時の) 授業の流れ

1. 課題に取り組む (100 分)
2. 休憩 (30 分)
3. 課題の解説 (30 分)
4. 課題に取り組む (70 分)

チーム分けの方針

- いろいろな人とチームになる
- チームの人数は自由に決めてよい

態度目標

- しゃべる
- 質問する
- 説明する
- 動く (立ち歩く)
- チームで協力する
- チームに貢献する

不正行為 (コピー禁止) との両立

  教える/教わる/質問する/説明する
  → OK (望ましい行為)
  
  他の受講生に教えてもらう
  → OK (望ましい行為)

  TA さん/教員に教えてもらう
  → OK (望ましい行為)

  自分のプログラムを見せる/他人のプログラムを見せてもらう
  → OK (必要なら)

  自分のプログラムをあげる/他人のプログラムをもらう・写す
  → NG (禁止行為、「コピー」がダメ)



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

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

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



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

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

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

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

[B2] 分割コンパイル

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

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

[B3] ポインタ

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

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

[B4] 配列と構造体

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

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

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

[B5] 動的割当て

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

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

[B6] リスト処理

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

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

[B7] ソーティング

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

講義ノート
https://lsnl.jp/~ohsaki/lecture/pro3/2024/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/2024/08.pdf

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

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

Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)