情報システム・セキュリティ (CSSS) コース/情報通信 (ICT) コース向の「プログラミング」の情報を掲載します。 (シラバス)
シラバスの訂正:「成績評価の方法と基準」 「合格要件に達しない場合、追加課題などを課す。」→ 「合格要件に達しない場合、追加課題などを課す場合がある。」
(02/18 New!) 2/18(火)の 13:00 頃に救済試験対象者にメールを送信しました。 メールを受け取っていない人は、合格(または不合格)が確定です。
(01/31) 期末テスト過去問 (ペーパー)、 期末テスト過去問 (オンライン)、 同解答例、
(01/29) 01/24 に実施した中間テストの再々挑戦では、 受験した人は全員 12 点に到達しました。
(01/09) 中間テスト(再挑戦)の点数を 各個人へのメッセージの dec20_1.c のところに追加しました。合計が 12 点未満の人は 01/24(金) の再々挑戦試験にむけて準備してください。
(12/12) 中間テストの点数を 各個人へのメッセージの nov22_1.c のところに追加しました。合計が 12 点未満の人は 12/20(金) の再挑戦試験にむけて準備してください。
(11/15 New!) プログラミング演習・質問支援システム
cl コマンドは大抵の場合、ソースファイルの文字コードが、UTF-8 や Shift_JIS で問題ないですが、たまに文字化けしたり、不具合が起こることがあります。 そういう場合は、BOM 付きの UTF-8 で保存してください。
(BOM付き、BOMなしにかかわらず)UTF-8 で保存したソースファイルをコンパイルして実行するとき、 出力される文字列が文字化けすることがあります。これは、 コマンドプロンプトのデフォルトの文字コードが Shift_JIS になっているためです。 この場合は、次のコマンドを実行してください。(▷ はプロンプトです。)
▷ chcp 65001
逆にコマンドプロンプトの文字コードを Shift_JIS に戻すときは次のコマンドを実行してください。
▷ chcp 932
WebCLint … C言語初学者向けの静的解析(インデンテーションのチェックなど)用ツールです。
「プログラミング」の Web ページは Firefox で確認しているので、Firefox をインストールしておくことが望ましい。
(← これ以前のお知らせの開閉)
演習科目であるため、全回の出席を前提とする。毎週の課題(30%)、小テスト(クイズ)と中間試験 (30%)、期末試験(40%)で採点し、授業の目標達成が確認できた者に単位を認定する。
なお、合格/不合格の判定については、単純な加算で 60点以上を合格とするが、 秀・優・良・可の判定については、割合を考慮して調整をすることがある。
演習時間(通常、金曜日 4限)内は、原則として自分の力で解く。(TA・教員に聞くのは良い。)
(ただし、解いている問題に特有ではない C 言語一般に関する質問などは許容範囲とする。)
なお、一部の事前に公開した課題は、演習時間開始 10分後を締切とすることがある。
演習時間終了後は、人に相談して解いても良い。 (ただし人の解答のコピペは絶対禁止(コピーさせた側も同罪))
たとえ演習終了後でも、問題を掲示板などに投稿して、不特定多数の人に相談することは禁止する。
(2/10 New!) 2019年度期末テスト(オンライン・ペーパー)解答例
(11/15 New!)
中間テスト過去問 (ペーパー)、
中間テスト過去問 (オンライン)、
同解答例、
金曜日は、教室(3101)の最後列は TA のために空けておいてください。
(← 開閉)
皆さんのノート PC や大学の PC には「Microsoft Visual Studio Express」 というコンパイラがインストールされているはずです。 インストールされていない場合は、 香川大学創造工学部学生向け Webサイトから、「ノートPC設定方法」というページを 見つけてインストールして下さい。インストールするときに、 「C++によるデスクトップ開発」にチェックをするのを、 忘れないようにしてください。 (Visual Studio のバージョンは 2012 以降にしてください。 2010以前はデフォルトの文字コードが異なるため、UTF-8 で保存されたソースコードをコンパイルできない可能性があります。) インストール後「ヘルプ」—「Microsoft Visual Studio のバージョン情報」で、 「インストールされている製品」に 「Visual C++ 20??」が入っていることを確認しておいてください。
エディタは notepad++, サクラエディタなどを推奨します。 サクラエディタの場合、「設定」−「共通設定」−「ファイル」−「ファイルの排他制御」 −「排他制御」を「しない」に変更しておくことをおすすめします。
以下では hello.c という名前のソースファイルをエディタで作成したとします。
「開発者コマンド プロンプト」を「アプリ」画面の ─「Visual Studio 201?」 ─ 「開発者コマンド プロンプト (Developer Command Prompt) for VS201?」から起動します。
「開発者コマンド プロンプト (Developer Command Prompt)」で hello.c を作成したディレクトリに移動し、 以下のコマンドでコンパイラを実行します。
cl hello.c
これで、hello.exe というファイルができているはずです。
以下のコマンドで、このプログラムを実行します。
hello
もう少し詳しい、コマンドプロンプトでのコマンドなどの使用法の説明を C のプログラムの作成とコンパイルの手順というページにまとめました。
授業用ページのパスワード発行は このページで 行なって下さい。アカウントは s学籍番号(途中の t は小文字)です。
なお、Gmail アカウント(大学でメールを読むときに使うアカウント)でも認証出来るようになっています。
注意: 設定が変更されたのに、変更が反映されないときは、 いったんログアウトして、 再度アクセスを試みて下さい。
必ず各自で提出したファイルのバックアップを取っておいて下さい。 (自分のノート PC だけではなく、stfile などの大学のサーバのどこかにもバックアップしておいて下さい!!)
この授業で提出してもらうファイルは基本的にバイナリーファイルではないはずです。 バイナリーファイルとは、テキストエディターで読むことができないファイル(画像、音声、ワード、エクセルなど)です。
ログインの確認
クイズ、(10/02 は試験運用です。)
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
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
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-14
List 3-15
List 3-16
List 3-17
addtime.c
maxswap.c
List 3-18
List 3-19
List 3-20
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 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-19 List 4-19 List 4-20 triangle.c comma.c List 4-16a List 4-16b List 4-21
reverse.c fact.c polygon.c triangle.c diamond.c comma.c
課題提出前に、WebCLint でチェックすること。
オンラインテストは、教科書・プリント・ノートなど持込み可
(プリント・ルーズリーフはバインダー・綴ひもなどで一冊に綴じること。
)
ペーパーテストは持込み不可で実施する。
クイズ、
List 5-1 List 5-2 List 5-3 List 5-4 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
グラフィックス関数解説
(svg.h
svg.c
polygon.c
diamond.c
graph.c
FirstSample.c
SimpleSample.c
HSBGrad.c
TurtleSample.c)
課題、 アップロード、 (提出前にWebCLintでチェックすること)
クイズ、
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 List 6-10
お知らせ: nov22_1.c へのメッセージにペーパーテスト・オンラインテストの得点を通知しました。
クイズ、
List 6-11 List 6-12 cbv.c List 6-13 List 6-14 sentinel.c List 6-15
※終了後(5 コマ)に中間テストの再挑戦試験(追試験)を 実施予定
(nov22_1.c へのメッセージにペーパーテスト・オンラインテストの得点を通知しました。)
(← ここ以前の課題の開閉)
List 6-16
List 6C-1
List 6-17
List 6-18
List 6-19
List 8-7
hanoi.c
(ハノイの塔を試す)
tree.c
(グラフィックス作成ページ)
再帰の例 1
(問: このプログラムの出力結果はどうなるか?)
List 7-1
クイズ、
プログラミング言語 Python,
Python 処理系のインストール,
TIOBE index,
GitHut,
Programming Languages
Influence Network,
1/31 の課題の採点結果は 2/4(火)23:59 までに提出されたものについては 2/7 のオンライン試験までに公開する予定です。
それ以前の課題の(再)提出についても、2/4(火)23:59 までに提出されたものの採点結果は、 2/7 のオンライン試験までに公開する予定です。
その以降は、2/11(火)の 23:59 までに(再)提出された課題を 2/14 までに採点する予定です。
採点は 2/12 〜 2/14 までの間に実施するものが最終となります。1/31 の課題については、 再提出の機会が一度しかないので注意してください。
これまでの正解率が低い課題・クイズの解説と、過去問の解説を行う予定です。
また、カリキュラムアンケート、学部1年生アンケートも実施します。
※ オンラインテストは、教科書・プリント・ノートなど持込み可、 (ペーパーテストは、持込み不可) です。
着席位置、 オンラインテスト問題、 アップロード、
※ ペーパーテストは、持込み不可、 (オンラインテストは、教科書・プリント・ノートなど持込み可)です。
2019年度期末テスト(オンライン・ペーパー)解答例期末試験で合格者が極端に少ない場合に、救済試験を実施する可能性があります。 実施する場合、日程は 2/26 〜 2/28 の間になります。
救済試験を実施する場合、対象者には 2/19 までに連絡する予定です。
日程調整はしません。こちらで日程を決定します。
(メールと掲示に注意してください。)
対象者が出席できない場合は、いかなる理由でも不可となります。
(それに対する救済措置はありません。)
救済試験を実施する場合でも、 期末試験を含む成績が著しく低い人は対象としません。
2/18(火)の 13:00 頃に救済試験対象者にメールを送信しました。 (クイズ・演習・中間・期末を総合して、50点以上60点未満の人が対象です。) メールを受け取っていない人は、合格(または不合格)が確定です。
※ ペーパーテストは、持込み不可、 (オンラインテストは、教科書・プリント・ノートなど持込み可)です。
※ オンラインテストは、教科書・プリント・ノートなど持込み可、 (ペーパーテストは、持込み不可) です。
※予定は変更の可能性があります。
(← ここ以降の予定の開閉)
以下の教科書の、おおむね第 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 HallISBN 978-0131103627
に書かれている事柄で、この授業で取り扱わない(主な)項目は以下のとおりです。
文字列、 ポインタ、構造体、ファイル入出力、(ここまでは2年生の「中級プログラミング」で扱います。)
ビット演算子、goto 文とラベル、 関数形式マクロ、列挙体 (enum)、 共用体 (union)、ビットフィールド、分割コンパイル、 動的メモリ割当て (malloc と free)、(これらは2年生以降の各授業で必要に応じて紹介します。)