プログラミング 2021


2021年度後期・水曜Ⅳ、金曜Ⅳ(–Ⅴ)コマ
担当: 香川・絹田
TA: 竹原・山下・平西・藤井
6201教室(予備: 水 3201、金 6202)

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

現在の課題

お知らせ

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

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

評価

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

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

毎週の課題の採点基準

その他

コンパイル・実行の方法

(← 開閉)

皆さんのノート PC や大学の PC には「Microsoft Visual Studio Community」 というコンパイラーがインストールされているはずです。 インストールされていない場合は、 香川大学創造工学部学生向け 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 を作成したディレクトリーに移動 (cd 〜) し、 以下のコマンドでコンパイラーを実行します。

      cl hello.c
    

    これで、hello.exe というファイルができているはずです。(dir コマンドで確認できます。)

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

      hello
    

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

配布プリント

課題

現在の課題

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

注意: 以下のプログラムのソースへのリンクで List 99-99 のような Bold 書体は重要な例題、 List 88-88 のような影付き書体は、真似してはいけない例題を表す。

過去の課題

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

第 24 回 01/12(講義 6201)( 6 章「関数」つづき、8-4 節「再帰的な関数」、 8-5 節「入出力と文字」)

着席位置 クイズ

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

クイズに対するコメント

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

01/14 は共通テスト前日のため、休講です。

第 25 回 01/19(講義 6201) 8-5 節「入出力と文字」つづき、 7 章「基本型」
7-2節 の中の「ビット単位の論理演算」、「シフト演算」、「ビット単位の論理演算の応用」 「オーバーフローと例外」は除く。

(1/17 New) 当初、1/19 は講義・演習半々で実施する予定でしたが、 進度が遅れ気味のため、演習はとりやめ、講義のみとします。

6201 教室で実施します。

着席位置 クイズ (訂正あり)

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

クイズに対するコメント

List 8-9 (第 2 版で 8-10 と 8-11 が入れ替わったため、第 2 版の 8-11 が第 1 版の 8-10 に対応します。)
List 8-10 List 8-11
List 7-1 List 7-2 List 7-3 List 7-4 List 7-5     sizeof.c    
(第 2 版で 7-8 が新しく挿入されたため、第 2 版の 7-9 が第 1 版の 7-8 のように、これ以降 1 つずつ番号がずれます。)
List 7-10 List 7-11

第 26 回 01/21(演習 6201 + 6202)

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

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

課題に対するコメント

第 27 回 01/26(講義 6201)( 7-3 節「浮動小数点型」つづき、「プログラミング言語 Python」

着席位置 クイズ

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

クイズに対するコメント

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

List 7-12 (x <= 1.0 x <= 1000.0 に変えてみよう) List 7-13 printf("%.60f", 0.1)

第 28 回 01/28(演習 6201 + 6202)

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

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

課題に対するコメント

第 29 回 02/02(講義 6201)(「プログラミング言語 Python」つづき、 グラフィックス関数解説

着席位置 クイズ

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

クイズに対するコメント

(02/04 New!) 02/02 のクイズは出題数が多かったため、02/02 に欠席届を出していた人に対しては、 成績を計算する際に分母から除外する予定です。

「プログラミング言語 Python」の「高階関数とラムダ式」以降は自習しておいてください。 (「高階関数とラムダ式」以降は、演習の必須問題に出題せず、テスト範囲にも含めません。) プリントの空欄の部分の情報を掲載します。開閉→

svg.h svg.cSVG 形式を生成する自家製グラフィックスライブラリーです。

svg.h svg.c polygon.c diamond.c graph.c FirstSample.c SimpleSample.c HSBGrad.c TurtleSample.c

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

期末テスト過去問

授業評価アンケート(学務係からメールが来ているはず)・カリキュラムアンケート(紙)・
教育評価アンケート(下の QR コードからもアクセス可能) QR コード開閉→

第 30 回 02/04(演習 6201 + 6202)

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

(スタッフ専用) 位置確認提出状況チェック表(02月分)simpleGradation 用myGraphics 用再帰グラフィクス用

以前の課題の追加提出・やりなおしも 2/08(火)23:59までに提出してください。

課題に対するコメント

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

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

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

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

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

(スタッフ専用) 位置確認提出状況チェックfeb15_1.c 用feb15_2.c 用feb15_3.c 用feb15_4.c 用

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

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

毎週の課題の追加提出・やり直しの締切を 2/18(金)23:59までに延長しました。 各個人へのメッセージをよく読んで、やり直して下さい。

(2/21 New) 2/21(月)の 13:23 頃に救済試験対象者にドリームキャンパスからメッセージを送信しました。 (クイズ・演習・中間・期末を総合して、45点以上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

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

新版が出ています。2021 年度の授業はどちらでも構いません。

新・明解C言語入門編 第 2 版 柴田 望洋 著 SBクリエイティブ ISBN978-4-8156-0979-5

索引と 全ソースプログラム(Shift-JIS) (UTF-8) は、 是非、ダウンロードページから入手して、 索引は印刷しておいてください。
注意: 5 章のプログラムの一部が int main(void) とすべきところを int main(aoid) になっているようです。)

ただし、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

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

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

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

Koji Kagawa