計算機実習 I
第一回 (2015 年 4 月 9日)
http://www.sw.it.aoyama.ac.jp/2014/CP1/lecture1.html
Martin J. Dürst
duerst@it.aoyama.ac.jp
O 棟 529 号室
テュールスト
マーティン ヤコブ
© 2005-15 Martin
J. Dürst 青山学院大学
授業前の準備
- 授業開始までにログイン
- ブラウザで http://moo.sw.it.aoyama.ac.jp へ移動、ログイン
- そのままに
理工学部50周年記念行事
Today's Schedule
- Overall explanations
- Moodle: Explanations and setup
- Minitest
- Lecture
- Explanation of exercise environment
- Exercises
Presentation of Teaching Staff
- 松原 俊一 (助教、総括)
- 長谷川 大 (助教、一列目担当)
- 磯山 直也 (助教、二列目担当)
- 吉田 武史 (助教、三列目担当)
- 盛川 浩志 (助教、四列目担当)
- 松井 仁人 (M2, TA)
- 村尾 日向子 (鷲見研 M1, TA)
- 遠山 雄 (山口研 M1, TA)
- 佐々木 柾人 (M1, TA)
- 本多 洋朗 (M1, TA)
授業の位置づけ
- 大学の一年は「ゆっくり慣れる」
- 大学の二年は「本業の基礎を確実に」
- プログラミングが IT の中心技能
- この授業で本格的にプログラミングを勉強
- これからの授業、演習、卒論、就職などに必ず役に立つ
約束事
- 時刻通りログイン済み
- 全員完走 (発展問題を抜く)
- 独力・独走
- 一人一質問毎
- プリントなどへの書き込み
- 私語禁止
- 飲食禁止
- 通路解放
- 脱帽
独力・独走の約束
- 二人以上一緒に問題を解くのは独走ではない
- 知り合い (先輩など第三者も含む)
に一から手伝われる・手伝うのは独走ではない
- 知り合いの質問に答えるのは、Q&A
フォーラムと同じ範囲内で大丈夫
しかし、Q&A フォーラムそのものを使った方がよい
- 締め切り後、プログラムを勉強のために交換するのは大丈夫
- 知り合いに USB メモリを貸すときには注意
不正行為
- 強力な調査ツールを使用
- 残念ながら毎年不正が発覚
- 倫理上、大学の目的と授業の約束事に対し、極めて悪質な行為
- 対応: 一問につき、一週間分の課題をすべて 0 点
- 必要に応じてさらに対応を強化
成績評価方法
授業中の演習課題とミニテスト、期末試験で総合的な評価
成功するには
- 自覚
- 予習 (教科書を前もって読むなど)
- 睡眠
(疲れた時にはプログラミングの効率は極端に低下)
- 環境 (机の整備など)
- 水分・糖分の補給 (部屋の外で!)
- 自動翻訳サイトの敬遠
Moodle
http://moo.sw.it.aoyama.ac.jp
(same as Discrete Mathematics I)
Enrollment key: (secret)
If you forgot your password, use "Forgotten your
username or password?" on the login page.
(caution: only enter either the username or the email address, not
both)
ミニテスト
- 毎週授業開始に実施
- 次回から授業開始までにログイン済み、Moodle
の計算機実習 I の画面に移動
- 次回から授業開始まで教科書、資料、筆箱、財布などを鞄に入れ、鞄を椅子の下に
- テスト終了後そのページで待つ
配布資料
- 授業の予定
- 授業プリント
- 作業の要点 (1枚)
- 演習課題 01A3・01C1 の解答用紙 (1枚)
- 新版 C 言語プログラミングレッスン文法編「第8章
式と演算子」(ホチキス止め)
各講義の構成
- ミニテスト (10 分程度)
- 説明 (40 分程度)
- 実習 (場合によって延長)
- ミニテストの代りに復習テスト (二回)
- 最後の三回は演習のみ
- 最終試験
教科書
新版 C 言語プログラミングレッスン 入門編
結城 浩 著
ISBN 4-7973-3678-1 定価 本体 2,000 円 + 税
C のデータ型の基本
(データ型: data types)
- 整数 (integer,
int
)、0 以上の整数 (unsigned
int
): 1
, 3
, 234578
,
-345
など
- 浮動小数点数 (floating point number,
double
):
1.234
, 7E-13
など
\
と ¥
に注意
- "
\
" (backslash, reverse solidus)
は日本語のシステムでよく"¥
" (yen sign)
と見える
- 7bit/8bit 文字コードの時代からの残物
- Unicode の場合には別文字:
- U+005C REVERSE SOLIDUS
- U+00A5 YEN SIGN
- (U+FFE5 FULLWIDTH YEN SIGN)
- 対策:
- 文法的に使う "
¥
" を頭の中で "\
"
に置換
- 「円」等の意味で使う場合にはできるだけ
U+00A5、全角の「¥」や「円」を使用
演習の環境
- エディタ (Notepad2、Notepad++、Meadow、Komodo
Edit, 秀丸、xyzzy 等)
- 重要: 文字コードは常に UTF-8 (BOM 無し;
メモ帳はダメ)
- ターミナル・エミュレータ (terminal emulator): Cygwin
Terminal
- シェル (shell): Cygwin Bash Shell
- コンパイラ (compiler): gcc
- 問題文: Moodle、課
題提出: Program Checking
System
- 上記のものを常に開いたままの方が効率的
- 環境のデモ: C の簡単なプログラム
cygwin の使い方
便利な命令:
フォルダの作成: mkdir newfolder
(例:
mkdir CP2014
)
フォルダへの移動: cd CP2014
(フォルダ名とフォルダ名の間は \
のではなく
/
)
Windows のフォルダへの移動 (C: ドライブの場合): cd
/cygdrive/c
現在のフォルダの場所の表示: pwd
現在のフォルダの内容の表示: ls
(又は
dir
)
C の簡単なプログラム
#include <stdio.h>
int main (void)
{
printf ("Hello World!\n");
return 0;
}
プログラムのコンパイルと実行
- コンパイル:
gcc 01A1.c
- 実行:
./a
(又は ./a.exe
)
a.exe
が上書きされないように:
- コンパイル:
gcc -o 01A1 01A1.c
- 実行:
./01A1
(又は ./01A1.exe
)
Edit - Compile - Go
プログラミングは三つの作業の繰返し:
- Edit: プログラムを書く、修正する
- Compile:
人間の読めるプログラムから機械が実行できるプログラムへ
- Go: プログラムを実行してみる
コンパイラではなくてインタプリタ言語 (Ruby など)
を使うと 2. と 3. がまとめて実行
cygwin と gcc のインストール
(画像つ
き詳細)
- セットアップツール (setup.exe)
をダウンロード
- 必ず次の Package をインストール
- diffutils
- gcc-core
- gcc-g++
- ruby (2年後期のデータ構造とアルゴリズム用)
- flex, bison, make
(3年前期の言語理論とコンパイラ用)
- 必要に応じていつでも追加インストールや更新が可能
- Cygwin Terminal の設定:
- Text: Font: MSゴシック, 12-point など
- Text: Locale: C
- Text: Character set: UTF-8
質問の仕方
- 演習問題をよく読む (例: This is not a real program.)
- 自分でしばらく (短すぎない、長すぎない) 考える
- Q&A
フォーラムをチェック
- 質問を Q&A
フォーラムに書き込む
題名に注意:
悪い例: 「エラー」、「アップロードについて」
良い例: 「File starts with a BOM
への対応」、 「01A1 の
family name」
- 手をあげて質問
Program Checking System
ユーザ登録・授業登録
- アカウント作成: sign up for a new
account
- ユーザ ID は学生番号 (例: 15814789)
- 姓、名は学生証と同様 (例: 高崎・髙﨑など)
- メールアドレスは大学のウェブメール
(a5814789@aoyama.jp)
- パスワードを忘れないように!!!
- Antispam Secret:
- 授業登録:
Program Checking System 全体のエラー
システム全体にエラーがある場合「Ruby on Rails application
could not be
started」が表示。画面を残して、即時に先生に報告。
Program Checking System の一部のエラー
システムの一部にエラーがある場合「We're sorry, but
something went
wrong.」が表示。画面を残して、即時に先生に報告。
Program Checking System 等がアクセス不可
- まれに www/moo/rpcsr.sw.it.aoyama.ac.jp へアクセスが不可
- その場合の対応:
Program Checking System の結果の表示
成功の例
Congratulations, you successfully
completed this assignment and received 100.0 points.
Attempt registered.
注: Indent 関係の表示は今週無視してください。
Program Checking System の結果の表示
失敗の例
Expected output and actual output
differ at line 3, see below. Submission rejected, please submit again. Actual
output line: 4 is not a prime number. Expected output line: 4 is not a prime
number. Problem occured in execution check number 1.
Attempt registered.
Expected output and actual output differ at line 3, see below.
Submission rejected, please submit again.
Actual output line:
4 is not a prime number.
Expected output line:
4 is not a prime number.
Problem occured in execution check number 1.
使用するシステムの総括
- Moodle
(http://moo.sw.it.aoyama.ac.jp)
- 予定表
- 資料の公開
- 演習問題の提示
- Q&A フォーラム
- PC (N604b、自宅など)
- Notepad2 などで編集
- gcc でコンパイル
- Cygwin Terminal 内で実行
- Program Checking System
(http://rpcsr.sw.it.aoyama.ac.jp)
今週の演習
注: 一題ごと完成して、提出 (提出が遅くなると減点)
最終的な締切は4月12日 (日曜日) 22:00
- 01A1: 普通のプログラムではない (コンパイル不用)
- 01A2: 自分独自の文書を使用
- 01A3: 型の範囲 (出力の予想と観察)
- 01C1: 回答を紙に書いて、担当の先生に今日提出
- 01B1: 数の合計
- 01B2: 一乗から十乗、浮動小数点数の表示
- 01C2: 「発展」問題: 成績の美化
演習問題の読み方
- 青色 (例: Submit your
program...; give the handout to
your teacher):
提出物、提出先 (Program Checking System はリンク付き)
- 灰色の背景 (例:
青山 例子
):
入力、出力、プログラムでそのままではない部分
- Reference (例: pp. 50-57):
教科書など参考文献のページ番号など
- Hint: ヒント (豆知識もある)
次回への準備
- 作ったプログラムを忘れずに保管 (USB, Z:
ドライブなど)
- 帰るときにモニターの電源を必ず切る
(真中のモニターも)
- 残った演習問題を宿題として完成、投稿
- 今日の復習
- 教科書の第三章 (pp. 48-74) を読む
- 文法編の第八章、式と演算子 (pp. 150-170、今日配布)
を読む
- 自分のノートパソコンなどで環境を設定、テスト
- 環境設定に問題がある場合、来週必ずノートパソコンを持参
「計算機実習 I のための準備」の収集
演習に入る前に各列の担当の先生に返却
(名前、学生番号記入済み、完成した宿題のところ入り)