計算機実習 I
第一回 (2014 年 4 月 10日)
http://www.sw.it.aoyama.ac.jp/2014/CP1/lecture1.html
Martin J. Dürst
duerst@it.aoyama.ac.jp
O 棟 529 号室
テュールスト
マーティン ヤコブ
© 2005-14 Martin
J. Dürst 青山学院大学
授業前の準備
- 授業開始までにログイン
- ブラウザで http://moo.sw.it.aoyama.ac.jp へ移動
- そのままに
今日の内容
- 概要の説明
- Moodle の説明・設定
- ミニテスト
- 講義
- 演習環境の説明
- 演習
担当教員の紹介
- 松原 俊一 (助教、総括)
- 斎藤 友彦 (助教、一列目担当)
- 白川 真一 (助教、二列目担当)
- 高橋 淳二 (助教、三列目担当)
- 盛川 浩志 (助教、四列目担当)
- 繪面 友香 (修士二年生、TA)
- 岡本 龍太郎 (修士二年生、TA)
- 鈴木 健一郎 (修士二年生、TA)
- 諸富 裕人 (修士二年生、TA)
授業の位置づけ
- 大学の一年は「ゆっくり慣れる」
- 大学の二年は「本業の基礎を確実に」
- プログラミングが IT の中心技能
- この授業で本格的にプログラミングを勉強
- これからの授業、演習、卒論、就職などに必ず役に立つ
約束事
- 時刻通りログイン済み
- 全員完走 (発展問題を抜く)
- 独力・独走
- 一人一質問毎
- プリントなどへの書き込み
- 私語禁止
- 飲食禁止
- 通路解放
- 脱帽
独力・独走の約束
- 二人以上一緒に問題を解くのは独走ではない
- 知り合い (先輩など第三者も含む)
に一から手伝われる・手伝うのは独走ではない
- 知り合いの質問に答えるのは、Q&A
フォーラムと同じ範囲内で大丈夫
しかし、Q&A フォーラムそのものを使った方がよい
- 締め切り後、プログラムを勉強のために交換するのは大丈夫
- 知り合いに USB メモリを貸すときには注意
不正行為
- 強力な調査ツールを使用
- 残念ながら毎年不正が発覚
- 倫理上、大学の目的に対し、授業の基となる約束事に対して極めて悪質な行為
- 対応: 一問につき、一週間分の課題をすべて 0 点
- 必要に応じてさらに対応を強化
成績評価方法
授業中の演習課題とミニテスト、期末試験で総合的な評価
成功するには
- 自覚
- 予習 (教科書を前もって読むなど)
- 睡眠
(疲れた時にはプログラミングの効率は極端に低下)
- 環境 (机の整備など)
- 水分・糖分の補給 (部屋の外で!)
- 自動翻訳サイトの敬遠
Moodle
http://moo.sw.it.aoyama.ac.jp
(情報数学 I と同様)
登録鍵: (秘密)
パスワードを忘れた場合:
ログイン画面で「はい、ログイン情報を教えてください」を選択
ミニテスト
- 毎週授業開始に実施
- 次回から授業開始までにログイン済み、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、秀丸、xyzzy
等)
- 重要: 文字コードは常に UTF-8 (BOM 無し;
メモ帳はダメ)
- ターミナル・エミュレータ (terminal emulator): Cygwin
Terminal
- シェル (shell): Cygwin Bash Shell
- コンパイラ (compiler): gcc
- 問題文: Moodle、課題提出: Program Checking System
- 上記のものを常に開いたままの方が効率的
- 環境のデモ: C の簡単なプログラム
C の簡単なプログラム
#include <stdio.h>
int main (void)
{
printf ("Hello World!\n");
return 0;
}
Edit - Compile - Go
プログラミングは三つの作業の繰返し:
- Edit: プログラムを書く、修正する
- Compile:
人間の読めるプログラムから機械が実行できるプログラムへ
- Go: プログラムを実行してみる
コンパイラではなくてインタプリタ言語 (Ruby など)
を使うと 2. と 3. がまとめて実行
cygwin の使い方
便利な命令:
フォルダの作成: mkdir newfolder
(例:
mkdir CP2014
)
フォルダへの移動: cd CP2014
(フォルダ名とフォルダ名の間は \
のではなく
/
)
Windows のフォルダへの移動 (C: ドライブの場合): cd
/cygdrive/c
現在のフォルダの場所の表示: pwd
現在のフォルダの内容の表示: ls
(又は
dir
)
プログラムのコンパイルと実行
- コンパイル:
gcc 01A1.c
- 実行:
./a
(又は ./a.exe
)
a.exe
が上書きされないように:
- コンパイル:
gcc -o 01A1 01A1.c
- 実行:
./01A1
(又は ./01A1.exe
)
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 は学生番号 (例: 15812789)
- 姓、名は学生証と同じ (漢字またはかな)
- メールアドレスは大学のウェブメール
(a5812789@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月13日 (日曜日) 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:
ドライブなど)
- 帰るときにモニターの電源を必ず切る
(真中のモニターも)
- 残った演習問題を宿題として完成、投稿
- 今日の復習
- 教科書を第三章 (p. 74) を読む
- 文法編の第八章、式と演算子 (p. 150-170、今日配布)
を読む
- 自分のノートパソコンなどで環境を設定、テスト
- 環境設定に問題がある場合、来週必ずノートパソコンを持参