プログラミング 2020


2020年度後期・水曜Ⅳ、金曜Ⅳ(–Ⅴ)コマ
担当: 香川
TA: 朝野・清水・竹原・山下

情報システム・セキュリティ (CSSS) コース/情報通信 (ICT) コース向の「プログラミング」の情報を掲載します。 (シラバス

現在の課題

お知らせ

(新しいものほど上です。)

(← これ以前のお知らせの開閉)

評価

演習科目であるため、全回の出席を前提とする。毎週の課題(30%)、小テスト(クイズ)と中間試験 (30%)、期末試験(40%)で採点し、授業の目標達成が確認できた者に単位を認定する。

なお、合格/不合格の判定については、単純な加算で 60 点以上を合格とするが、 秀・優・良・可の判定については、割合を考慮して調整をすることがある。

毎週の課題の採点基準

その他

コンパイル・実行の方法

(← 開閉)

皆さんのノート PC や大学の PC には「Microsoft Visual Studio Express」 というコンパイラーがインストールされているはずです。 インストールされていない場合は、 香川大学創造工学部学生向け Webサイトから、「ノートPC設定方法」というページを 見つけてインストールして下さい。 (C コンパイラの情報はここにあります。 Visual Studio のダウンロードのページに直接飛んでも構いません。) インストールするときに、 「C++によるデスクトップ開発」にチェックをするのを、 忘れないようにしてください。 (Visual Studio のバージョンは 2012 以降にしてください。 2010以前はデフォルトの文字コードが異なるため、UTF-8 で保存されたソースコードをコンパイルできない可能性があります。) インストール後「ヘルプ」—「Microsoft Visual Studio のバージョン情報」で、 「インストールされている製品」に 「Visual C++ 20??」が入っていることを確認しておいてください。

エディターは notepad++, サクラエディタ, Atom などを推奨します。 サクラエディタの場合、「設定」−「共通設定」−「ファイル」−「ファイルの排他制御」 −「排他制御」を「しない」に変更しておくことをおすすめします。

以下では hello.c という名前のソースファイルをエディターで作成したとします。

  1. 「開発者コマンド プロンプト」を「アプリ」画面の ─「Visual Studio 201?」 ─ 「開発者コマンド プロンプト (Developer Command Prompt) for VS201?」から起動します。

  2. 「開発者コマンド プロンプト (Developer Command Prompt)」で hello.c を作成したディレクトリーに移動し、 以下のコマンドでコンパイラーを実行します。

      cl hello.c
    

    これで、hello.exe というファイルができているはずです。

  3. 以下のコマンドで、このプログラムを実行します。

      hello
    

なお、コマンドプロンプトではカーソルキー( ↑ ,  ↓ )を使うと、 以前に入力したコマンドを呼び出すことができます。

もう少し詳しい、コマンドプロンプトでのコマンドなどの使用法の説明を C のプログラムの作成とコンパイルの手順というページにまとめました。

配布プリント

課題

現在の課題

(管理者用) データの更新 Quiz集計 管理用インデックスインデックス10月 11月 中間 12月 01月 02月 期末)、

過去の課題

(← ここ以前の課題の開閉)

第 01 回 10/02(ガイダンス)

3101 で実施

hello.c

着席位置 クイズ(10/02 は試験運用です。)

(スタッフ専用) 位置確認、 クイズ確認 () 、

クイズに対するコメント

第 02 回 10/07(講義)(1 章 「まずは慣れよう」)

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ確認 ()、

クイズに対するコメント

List 1-1 List 1-2 List 1-3 List 1-4 List 1-5 List 1-6 List 1-7 List 1-8 List 1-9 List 1-10 List 1-11 List 1-12 List 1-13 List 1-14

第 03 回 10/09(演習)

3101 で実施

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(10月分)

課題に対するコメント

第 04 回 10/14(講義)(2 章「演算と型」)

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (

クイズに対するコメント

List 2-1 List 2-2 List 2-3 List 2-4 List 2-5 List 2-6 List 2-7 List 2-8 List 2-9 List 2-10

第 05 回 10/16(演習)

3101 で実施

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(10月分)

課題に対するコメント

第 06 回 10/21(講義)(2 章「演算と型」つづき、3 章「プログラムの流れの分岐」)

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

List 2-11 List 2-12     List 3-1 List 3-2 List 3-3 List 3-4 List 3-5 List 3-6 List 3-7 List 3-8 List 3-9 List 3-10 List 3-11 List 3-12 List 3-13 List 3-16

第 07 回 10/23(演習)

3101 で実施

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(10月分)

課題に対するコメント

第 08 回 10/28(講義)(3 章「プログラムの流れの分岐」つづき)

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

List 3-14 List 3-15 List 3-17     addtime.c maxswap.c     List 3-18 List 3-19 List 3-20

第 09 回 10/30(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック表(10 月分)

インデンテーションについての約束事

課題に対するコメント

11/04 は急遽、休講します

第 10 回 11/11(講義)(4 章「プログラムの流れの繰返し」)

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

List 4-1 List 4-2 List 4-2a List 4-3 List 4-4 List 4-5 List 4-6     increment.c     List 4-7 List 4-8 List 4-9    

第 11 回 11/13(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック表(11月分)、

課題に対するコメント

(11/13 New!) 中間テストの過去問(と解答例)を公開しました。

第 12 回 11/18(講義)(4 章「プログラムの流れの繰返し」つづき)

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

List 4-10 List 4-11 List 4-12 List 4-13 List 4-14 List 4-15 List 4-16 List 4-17 List 4-18 List 4-19 List 4-20    

第 13 回 11/20(演習)

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック表(11月分)、 triangle1.c 用

課題に対するコメント

第 14 回 11/25(講義)(4 章「プログラムの流れの繰返し」つづき、5 章「配列」)

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

「reverse.c の no の値の変化」の解答「fact.c の i, fact の値の変化」の解答

クイズに対するコメント

triangle.c comma.c     List 4-16a List 4-16b List 4-21     reverse.c fact.c polygon.c diamond.c
List 5-1 List 5-2 List 5-3 List 5-4

第 15 回 11/27(演習)

当初、中間テストを予定していましたが、12/04 に延期しました。

着席位置 課題アップロード (提出前に WebCLint でチェックすること)、

(スタッフ専用) 位置確認提出状況チェック表(11月分)

課題に対するコメント

第 16 回 12/02(講義)(5 章「配列」つづき)

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

List 5-5 List 5-6 List 5-7 List 5-8    comma2.c    List 5-9 List 5-10 List 5-11 List 5-12     arrInit.c     List 5-13     breakTest.c

第 17 回 12/04(中間テスト)

中間テストの範囲は 4 章までです。

昨年度と同じ形式で実施します。つまり、

着席位置 オンラインテスト問題アップロード

(スタッフ専用) 位置確認提出状況チェック

中間テストに対するコメント

第 18 回 12/09(講義)(6 章「関数」)

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置)、

クイズに対するコメント

List 6-1 List 6-2 List 6-3 List 6-4 List 6-5 List 6-6 List 6-7 List 6-8 List 6-9

第 19 回 12/11(演習)

着席位置 課題アップロード (提出前に WebCLint でチェックすること)、

本日は、StuMee を使用して質問を受け付けます。

(スタッフ専用) 位置確認提出状況チェック表(12月分)

課題に対するコメント

第 20 回 12/16(講義)(6 章「関数」つづき)

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

お知らせ: dec04_1.c へのメッセージにペーパーテスト・オンラインテストの得点を通知しました。

List 6-10 List 6-11 List 6-12     cbv.c    

第 21 回 12/18(演習)

Zoom で実施

本日は StuMee を使用して質問を受け付けます。

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック表(12月分)

課題に対するコメント

※ 終了後(5 コマ)に中間テストの再挑戦試験(追試験)を 実施予定です。
ペーパー・オンラインの両方か、どちらか一方だけかは TBA。
(諸事情により延期します)

第 22 回 12/23(講義)(6 章「関数」つづき、8-4 節「再帰的な関数」

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置),

クイズに対するコメント

List 6-13 List 6-14     sentinel.c     List 6-15 List 6-16 List 6C-1 List 6-17 List 6-18 List 6-19
List 8-7     hanoi.cハノイの塔を試すtree.c (グラフィックス作成ページ) 再帰の例 1問: このプログラムの出力結果はどうなるか?)

第 23 回 01/08(演習)遠隔で実施します

Zoom で実施

着席位置 課題アップロード

(01/13 New!) 01/08 の課題の第 2 の締切を 01/19 23:59 に延長します。

(スタッフ専用) 位置確認提出状況チェック表(01月分)

課題に対するコメント

第 24 回 (講義)(オンデマンド方式)(7 章「基本型」)

オンデマンド方式で補講を実施します。 スライドを閲読して、指示された作業を行ってください。 その後、下のクイズに答えてください。(2021/01/11 までにやっておいてください。)

クイズ

(スタッフ専用) クイズ成績 (),

クイズに対するコメント

List 7-1 List 7-2 List 7-3 List 7-4 List 7-5     sizeof.c     List 7-9 List 7-10 List 7-11 List 7-11a List 7-12

第 25 回 01/13(演習)

Zoom で実施

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック表(01月分)

課題に対するコメント

第 26 回 01/20(講義)(8 章「いろいろなプログラムを作ってみよう」8-5 節「入出力と文字」
8-1 節「関数形式マクロ」、8-2 節「ソート」、8-3 節「列挙体」は除く。 ただし、8-1 節の中のコンマ演算子 (p.216) は扱う。

Zoom で実施

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

List 8-8 List 8-9 List 8-10 List 8-11

第 27 回 01/22(演習)

対面 (3101) で実施

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック表(01月分)

課題に対するコメント

5限は中間テスト・再挑戦テスト

中間テスト(ペーパー・オンライン)・再挑戦

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェックjan22_1.c 用jan22_2.c 用

第 28 回 01/27(講義)(「プログラミング言語 Python」

最後まで説明できなかったので、「高階関数とラムダ式」以降は自習しておいてください。 空欄の部分の情報を掲載します。開閉→

Zoom で実施予定

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

Python 処理系のインストール(02/05 の演習までにインストールしておいてください。)、
TIOBE index, GitHut, Programming Languages Influence Network,

第 29 回 02/03(講義)

Zoom で実施予定

着席位置 クイズ

(スタッフ専用) 位置確認、 クイズ成績 (位置

クイズに対するコメント

グラフィックス関数解説(抜粋) (svg.h svg.c polygon.c diamond.c graph.c FirstSample.c SimpleSample.c HSBGrad.c TurtleSample.c)

グラフィックス関数を使ったプログラムのコンパイルと実行の仕方(まとめ): 開閉→

期末テスト過去問

これまでの正解率が低い課題・クイズの解説と、過去問の解説を行う予定です。

第 30 回 02/05(演習)

対面 (3101) で実施予定

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック表(02月分)

学部 1 年生アンケートを実施します。

中間テストの再々挑戦テストは実施しません。

02/05 の課題の採点結果は 02/09(火)23:59 までに提出されたものについては 02/12 のオンライン試験までに公開する予定です。

それ以前の課題の(再)提出についても、02/09(火)23:59 までに提出されたものの採点結果は、 02/12 のオンライン試験までに公開する予定です。

その以降は、02/16(火)の 23:59 までに(再)提出された課題を 02/19 までに採点する予定です。

採点は 02/17 〜 02/19 までの間に実施するものが最終となります。02/05 の課題については、 再提出の機会が一度しかないので注意してください。

第 31 回 02/10(期末テスト)ペーパー

ペーパーテストは、持込み不可、 (オンラインテストは、教科書・プリント・ノートなど持込み可)です。

第 32 回 02/12(期末テスト)オンライン

オンラインテストは、教科書・プリント・ノートなど持込み可、 (ペーパーテストは、持込み不可) です。

着席位置 オンラインテスト問題アップロード

(スタッフ専用) 位置確認提出状況チェックfeb12_1.c 用feb12_2.c 用feb12_3.c 用feb12_4.c 用

期末テスト解答例

期末試験で合格者が極端に少ない場合に、救済試験を実施する可能性があります。 実施する場合、日程は 2/19 〜 2/24 の間になります。

救済試験を実施する場合、対象者には 2/17 までに連絡する予定です。

(2/17 New) 2/17(水)の 13:43 頃に救済試験対象者にドリームキャンパスからメッセージを送信しました。 (クイズ・演習・中間・期末を総合して、40点以上60点未満の人が対象です。) そのメッセージを受け取っていない人は、合格(または不合格)が確定です。

現在の課題

02/24(期末テスト・救済試験)ペーパー @4301 教室

ペーパーテストは、持込み不可、 (オンラインテストは、教科書・プリント・ノートなど持込み可)です。

02/24(期末テスト・救済試験)オンライン

オンラインテストは、教科書・プリント・ノートなど持込み可、 (ペーパーテストは、持込み不可) です。

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック提出状況チェック(表)feb24_1.c 用feb24_2.c 用feb24_3.c 用feb24_4.c 用

今後の課題

※予定は変更の可能性があります。

(← ここ以降の予定の開閉)

教科書

以下の教科書の、おおむね第 1 〜 8 章に相当する部分を扱います。

新・明解C言語入門編 柴田 望洋 著 SBクリエイティブ ISBN978-4-7973-7702-6

ただし、7-2 節 の中の「ビット単位の論理演算」、「シフト演算」、「オーバーフローと例外」、 8-1 節「関数形式マクロ」、8-2 節「ソート」、8-3 節「列挙体」を除きます。ただし、 8-1 節の中のコンマ演算子は扱います。

索引全ソースプログラムは、 是非、ダウンロードページから入手して、 索引は印刷しておいてください。

この授業でやらないこと

上記の教科書や C 言語の標準的な解説書:

プログラミング言語 C 第 2 版 B.W. カーニハン, D.M. リッチー 著 石田 晴久 訳 共立出版 ISBN 978-4320026926 ※原著 The C Programming Language, 2nd Edition Brian W. Kernighan, Dennis M. Ritchie Prentice Hall ISBN 978-0131103627

に書かれている事柄で、この授業で取り扱わない(主な)項目は以下のとおりです。

文字列、 ポインタ、構造体、ファイル入出力、(ここまでは2年生の「中級プログラミング」で扱います。)

ビット演算子、goto 文とラベル、 関数形式マクロ、列挙体 (enum)、 共用体 (union)、ビットフィールド、分割コンパイル、 動的メモリ割当て (malloc と free)、(これらは2年生以降の各授業で必要に応じて紹介します。)

Koji Kagawa