- 追加された行はこの色です。
- 削除された行はこの色です。
SIZE(20){プログラミング演習Iのページ}
このページは,プログラミング演習Iのページです.&br;
-担当者(問い合わせの場合は、2名両方にメールを出してください)
-- 松村敦 ([[Webページ:http://www.slis.tsukuba.ac.jp/~matsumur/]], Email: matsumura.atsushi.ga あっと u.tsukuba.ac.jp)
--- 研究室: 研究棟 2F 212
-- 時井真紀 (Email: tokii.maki.ga あっと u.tsukuba.ac.jp)
--- 研究室: 研究棟 2F 203
----
#contents
----
* Crowd4U [#d78a3f24]
本ページは[[Crowd4U:http://crowd4u.org]]に協力しています.
µtaskbutton(http://klis.tsukuba.ac.jp/klib/index.php?ProgI%2F%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B1%E9%BD%ACI){マイクロタスクをやる!};(現在IEには非対応)
*お知らせ [#vbfd88b7]
お知らせです.クラス毎のお知らせの場合は,[木][金]で区別します.何もなければ全体向けです.
//- レポート課題10/26修正版を掲載しました(2017-10-26)
//- レポート課題を掲載しました(2017-10-26)
//-第8回は第8回テキスト下に掲載したプリントもチェック時に使用します.印刷しておいてください.(2017-10-12)
//-第7回演習までに第6回テキストの表1をうめておいてください.この表だけをみることができる小テストを実施します.(2017-10-06)
//- 第9回テキスト公開 <[[テキスト>#text]]>(2017-10-04)
//- 夏休みの自由課題公開 <[[夏休みの自由課題>#summer]]>(2017-08-02)
//- 第6,7,8回テキスト公開 <[[テキスト>#text]]>(2017-08-02)
//- 第4回までの宿題,第4回のチェック項目ヒントを掲載 <[[テキスト>#text]]>(2017-07-14)
- 【重要】第1回目までにやること (2017-06-27)
-【重要】第1回目までにやること (2018-06-21)
-- 教科書「[[たのしいRuby第5版:http://www.amazon.co.jp/dp/4797386290/]]」を買う <[[演習支援情報>#support]]>
//-- &ref(2017_prog0.pdf,left,予習テキスト);を受講前に試しておく <[[テキスト>#text]]>
//-- &ref(2017_check0.pdf,left,第1回目までの宿題);をやる.第1回授業時に提出してもらいます <[[テキスト>#text]]>
//-- &ref(2017_en1.pdf,left,第1,2回テキスト);の予習をする <[[テキスト>#text]]>
-- &ref(2018_prog0.pdf,left,予習テキスト);を受講前に試しておく <[[テキスト>#text]]>
-- &ref(2018check0.pdf,left,第1回目までの宿題);をやる.第1回授業時に提出してもらいます <[[テキスト>#text]]>
-- &ref(2018_en1.pdf,left,第1,2回テキスト);の予習をする <[[テキスト>#text]]>
//- SIZE(30){COLOR(RED){レポート提出状況公開}} (2014-11-10)
//-- SIZE(30){各自確認すること!}
//- 未チェック項目がないか確認してください。
//- COLOR(RED){第2回レポート課題1用入力データを掲載しました。} (2014-10-23)
//-- 入力データの掲載に伴って,課題1の条件を1つ追加しました.
//- COLOR(RED){第2回レポート課題を改訂しました。} (2014-10-17)
//-- 問題の一部にミスがありました.かならずCOLOR(RED){改訂版}とある方を使ってください.
//- 第2回レポート課題を公開しました。 (2014-10-16)
//- 第1回レポート課題を掲載しました(2014-07-30)
//- 金曜日クラス(7/11)は、台風による筑波大学キャンパス休講のため、休講です。
//-- 金曜日クラス第2回は、7/18となります。春C間に5回演習をおこなうため、春Cの予備日となっている8/8(金)も演習を行います。
//- 予習テキストを公開しています.<[[テキスト>#text]]>
//-- COLOR(RED){第1回の演習前に一通り試してみること}
//- COLOR(RED){SIZE(30){第2回レポート課題の提出状況を公開しました}} <[[レポート>#report]] (2013-11-08)
//-- アクセスできない状況を修正しました(2013-11-10)
//- 第2回レポート課題の補足 <[[レポート>#report]]> (2013-10-23)
//- 第2回レポート課題を公開しました (2013-10-17)
//- 第1回レポート提出者リストを公開しました(2013-10-02)
//- 第6回~9回テキスト公開 (2013-09-02)
//- 第1回レポートを掲載しました。 (2013-07-31)
//- 第6回の1時間目にテスト(持ち込み不可)を実施します。
//--(木曜日クラス 10/3, 金曜日クラス 10/4)
//- 第5回テキストまで公開しました。予習をするようにしてください。
//-- チェック項目以外の問題も必ず行ってください。
//- 第1回授業スタートまでに、「第1,2回テキスト」「補足資料1:Meadowについて」「補足資料2:Rubyプログラムへの準備」を印刷しておいてください。(2013.07.04)
* お知らせ(演習以外) [#other_announce]
//- COLOR(RED){卒業研究中間発表会}
//-- 10月11(水)
//-- 誰でも参加可能です.是非見学を.
//--- [[知識科学主専攻:http://klis.tsukuba.ac.jp/knowledge/index.php?lprogram20171011]] 9:30-15:30 7A208
//--- [[知識情報システム主専攻:http://klis.tsukuba.ac.jp/system/local-only/Program171011.pdf]] 9:30-17:00 ユニオン講義室
//--- [[情報資源経営主専攻:http://klis.tsukuba.ac.jp/management/index.php?program20171011]] 9:50〜16:48 7A202, 7A210
//- 知識情報システム主専攻オープンラボ
//-- だれでも参加可能ですので,是非見にきてください.
//-- http://www.slis.tsukuba.ac.jp/system/
*日程 [#schedule]
|回|木曜日|金曜日|位置付け|内容(予定)|教科書との関連など|その他|
|1|7/5|7/6| 導入| 全体像,print,代入,算術演算,gets, i=i+1, sum=sum+a[i] 様々なプログラム(CGI)|1章,10章 | |
|2|7/12|7/13|~|~|~|~|
|3|7/19|7/20|基礎|オブジェクト,変数,配列,ハッシュ,型変換|2,4,10章 | |
|4|7/26|7/27|基礎|条件判定,繰り返し |5,6章| |
|5|8/2|8/3|基礎|紙で考える&言葉でプログラム&ファイルの扱い| | |
|6|10/4|10/5|基礎 |(COLOR(RED){(テストも実施)}、文字列+復習 | | |
|7|10/11|10/12|基礎 |メソッド | | |
|8|10/18|10/19|基礎|メソッド | | |
|9|10/25|10/26|基礎 |復習| | |
|10|11/1|10/31|基礎|総合演習 | | |
//|回|木曜日|金曜日|位置付け|内容(予定)|教科書との関連など|その他|
//|1| 7/4 | 7/5 | 導入| 全体像,Meadow, print,代入,算術演算,gets, i=i+1, sum=sum+a[i] 様々なプログラム(CGI)|1章,10章 | |
//|2| 7/11 | 7/12 |~|~|~|~|
//|3| 7/18 | 7/19 |基礎|オブジェクト,変数,配列,ハッシュ,型変換|2,4,10章 | |
//|4| 7/25 | 7/26 |基礎|条件判定,繰り返し |5,6章| |
//|5| 8/1| 8/2 |基礎|復習(配列,ハッシュ,条件判定,繰り返し)| | |
//|6| 10/3| 10/4 |基礎 | (COLOR(RED){(テストも実施)}、紙で考える&言葉でプログラム&ファイルの扱い | | |
//|7| 10/10| 10/11 |基礎 |メソッド | | |
//|8| 10/24| 10/18 |基礎|メソッド | | |
//|9| 10/31| 10/25 |基礎 |文字列+復習 | | |
//|10| 11/7| 11/1 |基礎|総合演習 | | |
**全学計算機システム停止等の情報 [#c7c01013]
-詳細は[[春日サテライトニュース:http://www.slis.tsukuba.ac.jp/ipc/news/]]をご覧ください.
*道具箱 [#toolbox]
//- SIZE(20){Meadowのフォントがかわってしまった}
//-- [Shift]キーとマウスの左ボタンを押すと、メニューが表示されます。そこでデフォルトを選択してください
-[[プログラムに行番号をつけるCGI:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/progI/nl.html]]
-- 提出用のプログラムに行番号をつけるプログラムです.
-[[プログラムに行番号をつけるCGI:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/progI/nl2.html]]
-- 提出用のプログラムに行番号をつけるプログラムです.(学籍No,名前も出力)
-[[コマンドプロンプトで日本語入力を行う:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/toolbox/cmd.html]]
-[[実行結果をファイルに保存する方法:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/toolbox/file.html]]
-[[プログラミング演習版 Ruby コーディング規約:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/toolbox/kiyaku.html]]
* プログラムと実行結果を見比べてみよう [#g659e53f]
-- [[print:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/print0/temp.html]],
[[printと代入:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/print1/temp.html]],
[[printと代入:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/print/temp.html]],
--[[配列:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/array/temp.html]],
[[ハッシュ:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/hash0/temp.html]]
--[[if:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/if/temp.html]],
[[繰り返し:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/while6/temp.html]],
[[繰り返し:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/while0/temp.html]],
--[[配列と繰り返し:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/while-array/temp.html]],
[[ハッシュとeach:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/hash/temp.html]]
-- [[繰り返しとif:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/while7/temp.html]]
*レポート [#report]
//- レポート提出状況(学内のみ)(2017-11-21(紙+メール提出)掲載)
//-- [[木クラス:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/2017progI-1_20171113.list]]
//--[[金クラス:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/2017progI-2_20171113.list]]
- 表紙見本&ref(rep_cover.pdf,,表紙見本);
//- &ref(rep_2017.pdf,,レポート課題); (2017-10-25掲載)
//- &ref(rep_2017ver20171026.pdf,,レポート課題10/26修正版); (2017-10-26掲載)
//-- 課題1の実行結果の出力例が間違っていましたので修正しました
//- &ref(rep1_data.txt,,課題1の実行用ファイル);
//-課題2のデータ
//*夏休みの自由課題 [#summer]
//- &ref(summer_2017.pdf,left,夏休みの自由課題); (2017-08-02掲載)
//-- COLOR(RED){(注)Chromeではブラウザ内で表示されないことがあるようです.その場合はファイルを保存してAdobe Reader等で確認してください.}
*テキスト [#text]
チェック項目に指定した演習問題だけでは、すべて理解できたことにはなりません。
~
チェック項目以外の演習問題もすべて行うこと!
~
COLOR(RED){テキストに実行結果、教科書を使って調べたことなどを記入しておくこと(チェック時に確認します)}
//- &ref(2017_en9.pdf,,第9回テキスト); (2017-10-04掲載)
//- &ref(2017_en8.pdf,,第8回テキスト); (2017-08-02掲載)
//-- &ref(check8_2017.pdf,,演習8-6プリント);(2017-10-12掲載) <== チェック時に使用します。
//- &ref(2017_en7.pdf,,第7回テキスト); (2017-08-02掲載)
//- &ref(2017_en6.pdf,,第6回テキスト); (2017-08-02掲載)
//- &ref(2016_en5.pdf,,第5回テキスト); (2017-07-04掲載)
//-- 訂正 p.10 [誤] program6-13.rb [正] program5-13.rb
//-- 訂正 p.11 [誤] program6-14.rb [正] program5-14.rb
//-- 訂正 p.11 [誤] program6-15.rb [正] program5-14.rb
//- &ref(2016_en4.pdf,,第4回テキスト); (2017-07-03掲載)
- &ref(2016_en4.pdf,,第4回テキスト); (2018-06-21掲載)
//&ref(en4_2017.pdf,,チェック項目等ヒントプリント);(2017-07-14掲載)
//-- &ref(ex4_homework_2017.pdf,,宿題); COLOR(RED){第4回スタート時に提出} (2017-07-14掲載)
//- &ref(2016_en3.pdf,,第3回テキスト); (2017-07-03掲載)
//- &ref(2017_en1.pdf,,第1,2回テキスト); (2017-06-27掲載)
//--訂正 p.6 2つ目の教科書のページの部分
//--- (誤) p.69(p.69)- 変数名のつけ方
//--- (正) p.COLOR(red){66}(p.69)- 変数名のつけ方
//--訂正p.14 演習1-60のプログラム
//--- (誤) "???"="???"
//--- (正) "???"=COLOR(RED){>}"???"
- &ref(2016_en3.pdf,,第3回テキスト); (2018-06-21掲載)
- &ref(2018_en1.pdf,,第1,2回テキスト); (2018-06-21掲載)
//- 予習テキスト:授業前にやっておくこと
//-- &ref(2017_prog0.pdf,left,Rubyプログラミングへの準備);
//- 宿題:COLOR(RED){第1回の授業時に提出}
//-- &ref(2017_check0.pdf,left,第1回目までの宿題);
- 予習テキスト:授業前にやっておくこと
-- &ref(2018_prog0.pdf,left,Rubyプログラミングへの準備);
- 宿題:COLOR(RED){第1回の授業時に提出}
-- &ref(2018check0.pdf,left,第1回目までの宿題);
//- Ruby modeを利用する準備
//-- 簡単コース
//+++ コマンドプロンプトを起動する.プロンプトが Z:\> であることを確認する.
//+++ 以下のコマンドを実行する
// copy C:\meadow\.emacs_rubymode .emacs
//(注)スペースはcopyの次とrubymodeの次の2カ所
//
//-- 意味を知りたいコース
//+++ Meadowを起動して z:\に.emacsという名前のファイルを開く(最初の文字は.(ピリオド)です)
//+++ .emacsファイルに以下を入力(コピー&ペースト)し,保存する
// (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t)
// (setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist))
// (setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-alist))
// (autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process")
// (autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode")
// (add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys)))
-プログラミング演習の作業流れ図 [[プログラムの作成と実行の流れ(コマンドプロンプトとエディタの使い方を見ることができます:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/ruby/]]
[準備]
* 全学計算機システムのWindows にログインする
* コマンドプロンプト(黒色ウィンドウ)とAtomを起動する。
(コマンドプロンプトは、[スタート]-[プログラムとファイルの検索]の欄で cmdと入力し、[Enter]キーを押すと起動することができる。
[(黒ウィンドウ)コマンドプロンプトで]
* Z: と入力し、[Enter]キー でZドライブに移動することができる。
(Z:\> とならない場合は、 cd ../ [Enter]キーを押す。
* mkdir progIと入力し、[Enter]キーで 作業用フォルダを準備する (Zドライブの下に progIフォルダを作成)
↓
[Atomで]
* 作業用フォルダの中に、プログラムを作成する。ファイル名の例:sample.rb (拡張子は、rb)
↓
[(黒ウィンドウ)コマンドプロンプトで]
* Zドライブにいることを確認 (Z:\> となっているか)
* コマンドプロンプトを起動し、作業用フォルダに移動する ( cd progI )
* プログラムを実行する (ruby ファイル名)
*チェック項目 [#check]
-COLOR(RED){チェック項目以外の演習問題もやっておいてください}
-- チェック時には、チェック項目以外の問題に対しても実行結果等を記入したテキストも持参してください。
//- COLOR(RED){未チェック項目はありませんか?チェックをすべて受けてください}
//-- [[行番号付プログラムリストと実行結果の保存:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/print.jpg]]
*演習支援情報 [#support]
** プログラミングRuby支援資料 [#k2c94251]
- [[FAQのページ:http://klis.tsukuba.ac.jp/klib/index.php?ProgI%2FFAQ%A4%CE%A5%DA%A1%BC%A5%B8]]
//- [[TAのページ:http://klis.tsukuba.ac.jp/klib/index.php?ProgI%2FTA%A4%CE%A5%DA%A1%BC%A5%B8]]
- 教科書:
-- [[たのしいRuby 第4版:http://www.amazon.co.jp/dp/4797372273]]
- 参考書:
--[[プログラミングRuby 第2版 言語編:http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Ruby-%E7%AC%AC2%E7%89%88-%E8%A8%80%E8%AA%9E%E7%B7%A8-Dave-Thomas/dp/4274066428]]
--[[プログラミングRuby 第2版 ライブラリ編:http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Ruby-%E7%AC%AC2%E7%89%88-%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E7%B7%A8-Dave-Thomas/dp/4274066436]]
- 参考Webページ
-- [[オブジェクト指向スクリプト言語Ruby:http://www.ruby-lang.org/ja/]]
--- Rubyのおおもとです.
-- [[Rubyリファレンスマニュアル:http://www.ruby-lang.org/ja/man/]]
--- リファレンスマニュアルです.辞書として使えます.
--- たとえば,「組み込みライブラリ」の「組み込みクラス」のあたりを見ると,各クラスに定義されたメソッドの一覧と定義・使い方等を調べることができます.便利なメソッドがたくさんあるので,ぜひ調べてみてください.
-- [[日本Rubyの会 公式Wiki:http://jp.rubyist.net/]]
--- Rubyのユーザグループ
-- [[Ruby - Wikipedia:http://ja.wikipedia.org/wiki/Ruby]]
--- WikipediaによるRubyの解説
**プログラミング演習の予習、復習を自宅で行いたい! [#lc84cc72]
プログラミング演習を自宅でもやりたい!というやる気にあふれた学生のために、
その方法を紹介します。方法は2つあります。全学計算機を使う方法と自分のPCにRubyをインストールする方法です。
***(実習室以外から)全学計算機を利用する方法 [#c60a9d64]
- リモートデスクトップを使う(初心者用)&br;
自分のPC(Windows/Mac OS)から全学計算機システムのWindowsデスクトップを利用できます。全学の端末とほぼ同等の環境でRubyプログラミングができます。
詳しくは,全学計算機システムのリモートアクセスのページを参照してください。
- sshを使う(中級者以上用)&br;
簡単なプログラムだけなら、unixサーバ上のコマンドライン(Windowsでのコマンドプロンプト)だけで十分です。
プログラムの編集もコマンドラインからエディタ(Emacsでもviでも)を起動して行います。&br;
COLOR(RED){(注)}ただし、日本語が含まれるプログラムを実行するには、注意が必要です。WindowsはShift_JIS,unixはUTF-8になっていますので、この違いを吸収する文字コードの知識が必要になります。
++ ssh でicho.u.tsukuba.ac.jp または ubuntu.u.tsukuba.ac.jp に接続しログインする
++ プログラミング演習Iのディレクトリへ移動する。ホームディレクトリにprogIがあるはずです
なお、プログラムファイルを自分のPCで作成して、sftpでファイルをicho/ubuntuに転送して、実行だけ全学計算機で行うという方法も可能です。
*** 自分のPCにRuby をインストールする方法 [#pc676f41]
全学計算機システムのRubyのバージョンは 2.3.3 です。同じバージョンをインストールすることを推奨します。
- たのしいRubyのp.457ページでは下記のサイトを紹介しています。参考にしてください
-- https://www.ruby-lang.org/ja/downloads/
--http://rubyinstaller.org/
- Mac OS Xの場合は、最初からrubyがインストールされています。ただし、バージョンが古いなど、環境を整備する必要がある場合もあります。
-- rubyバージョン管理ツール rbenv(各自調べましょう)
** テキストエディタについて [#qfa0d423]
プログラミング演習IではAtomを使います。
プログラミングのサポートが充実しているもので、
WindowsでもUNIXでもMacでも使えるものを選定しました。
ただし、好みに応じて他のテキストエディタを使うことも可能です。
代表的なテキストエディタには以下のようなものがあります。
- OSX, Windows, Linux:クロスプラットフォーム
-- Atom(全学計算機システムにもインストール済み)
--- 入手先:https://atom.io
-- Sublime Text(全学計算機システムにもインストール済み)
--- 入手先:https://www.sublimetext.com
-- Emacs(全学計算機システムにもインストール済み)
--- 入手先:https://www.gnu.org/software/emacs/
--- 入手先(Windows用にビルドしたものNTEmacs):http://cha.la.coocan.jp/doc/NTEmacs.html
-- Vim(全学計算機システムにもインストール済み)
--- 入手先:http://www.vim.org
- Windows用
-- TeraPad(全学計算機システムにもインストール済み)
--- 入手先:http://www.forest.impress.co.jp/library/software/terapad/
--- インストール方法:http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html
-- サクラエディタ(全学計算機システムにもインストール済み)
--- 入手先:http://sakura-editor.sourceforge.net/
-- メモ帳(OS標準装備)
-- WordPad(OS標準装備)
-Mac OS用
-- mi
--- 入手先:http://www.mimikaki.net
-- CotEditor
--- 入手先:http://osdn.jp/projects/coteditor/
-- テキストエディット(OS標準装備)
** その他もろもろ [#xf783092]
-- [[筑波大学全学計算機システム:http://www.u.tsukuba.ac.jp/]]
µtaskscript(151, 10);