11/23 アルゴリズムと計算量(3)
補足
- 演習室内は飲食禁止です.ペットボトル等を持ち込む場合も,バッグの中にしまってください.
- 試験は2017年1月25日(水) 3限 になりそうです.
第1-4章まとめ課題投票
- 11/21までにITC-LMSの第1-4章まとめ課題に画像,プログラムを提出したのは
42名(第1-4章まとめ課題(東大内からのみアクセス可能)).11/22以降の投稿も4件あったが,投票の対象外とする.
- 投票システムを使って投票(1-42)をおこなう.
- 自分の作品以外で良いものを3つまで順位をつけて投票する.
- システム上は自分の作品に投票したり,1-3位まで同じ作品に投票したりも
できるが,そのような投票は後でチェックして除く.
今日の練習,投票
講義資料
- 教科書は情報科学入門 2700円(税込み) になります.正誤表が公開されているので,そちらも参照してください.また,電子版も発売されています(書籍版よりも若干安くなっているようです).
- 講義スライドはITC-LMSで「アルゴリズム入門(水4)」を選んで「教材」を選択するとダウンロードできるようにする予定です.
講義フォルダの作成
- 講義に関連したファイルはホームフォルダ直下に置くのではなく,講義専用のフォルダをalgo16 という名前で作成してください.ターミナルでフォルダを作るには,
mkdir algo16
のようにします.そして,ターミナルを開くたびに
cd algo16
と入力してからirbを動かしてください.詳しくは,はいぱーワークブック「14.4 コマンドを使ったファイル操作」を参照してください.
配付プログラムのダウンロード
投票システム
vote.rbをダウンロードして(「リンク先のファイルを別名で保存」で,ホームフォルダの下のalgo16を選択(なければ作る).".txt"を「追加しない」を選ぶ),ホームディレクトリに保存します.ドックからターミナルを起動して,
cd algo16
を済ませてから,
ruby vote.rb 選択肢番号
のように使います.
irbを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」の15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.
テキストの補足
- 第4章のチェックは配布プログラム中のcheck.rb では prime のチェックがうまくいかないようです.とりあえずは修正版のcheck.rbを ~/algo16 にダウンロードすると直るはずです.
- ターミナルでは,メニューバーから,「シェル」->「新規ウィンドウ」あるいは,「コマンドキー(⌘)」+「N」で新た
なターミナルウィンドウを開くことができます.
ウィンドウが多くなるのが面倒な人は,「シェル」->「新規タ
ブ」あるいは「コマンドキー(⌘)」+「T」で同じウィンドウ内に新しいタブでターミナルを開くことができます.
ターミナルを開くたびに
cd ~/algo16
と入力してください.これらの機能を使うと,irbを抜けずにvoteできます.
ターミナルの基本的な使い方は,はいぱーワークブックの15.2 ターミナルの基本的な使い方を,より高度な使い方は,15.4 ターミナルの便利な使い方を参照してください.
cdというコマンドと「~」の意味は,はいぱーワークブックの14.4 コマンドを使ったファイル操作の14.4.1 ディレクトリを読むと分かります.
- miを使う場合に改行コードがCR(Mac)になっている場合は,LF(UNIX)にしてから保存してください.
- Webブラウザ上で,ターミナルの実行,Ruby関数の実行,ファイルの編集ができる iruby が利用可能になっています.ターミナル上で,
iruby notebook
を実行すると,Webブラウザ上で対応するタブが開きます.
- 第1章で,irbを起動直後に,
include(Math)
を入力するように書いています.
毎回入力するのが面倒な場合は,ホームディレクトリの下に「.irbrc」というテキストファイルを作り,その中に
include(Math)
と書いておくと,irb起動時にこのファイルの中身を実行してくれるので,毎回指定しなくても大丈夫です.ただし,このファイルの実行中にエラーが出ないように正しく記述剃る必要があります.また,
Math.sqrt(2)
のような形で指定すれば,
include(Math)
は不要です.
- ある程度大きなプログラムを作る場合は,テキストエディタを使って入力してファイルに保存しておくと,後から修正したり再利用が容易におこなえます.テキストエディタの説明は,はいぱーワークブック「8. テキストエディタ」を参照してください.
- この講義で作成したプログラムのファイルは自分のホームディレクトリ(ホームフォルダ)の下に「algo16」という名前のディレクトリ(フォルダ)を作って,その下に置くようにしています.スライドや教科書でファイル名が指定されている場合もあるので,その場合は指定されたファイル名を使うようにしてください.
- miのRubyモードが現在標準では利用できないようです.mi 用モード(今野滋さんのページ)から自分でインストールしても良いのですが,講義受講者は,一度miを起動して終了後に,ターミナルで
cp -rp /home/5320954122/Ruby ~/Library/Application\ Support/mi/mode/
を実行してからmiを立ち上げるとRubyモードが利用可能なモードとして加わります.
- miの改行コードの変更は,miを立ち上げてメニューバーから「mi」->「モード設定」を選んでください.
の画面が出るので,モードを「Ruby」にして,改行コードを「LF(UNIX)」にして,ウィンドウを閉じてください.以降は,ファイル作成のさいに,「ファイル」->「新規」->「Ruby」で作成すると正しい改行コードが設定されているはずです.
- Finderの中でダブルクリックするだけでmiを起動できるようにしたい人は,Rubyソースファイルをmiと関連付けするを読んで設定してください.
- 情報科学入門: Rubyを使って学ぶ / 配付プログラムの中には練習問題のチェックプログラムが含まれています.たとえば,第1章の練習問題をテストする時には,同じディレクトリに,練習問題で作成したプログラムを教科書で指定されたファイル名で置いて,
ruby check.rb ex01.rb
と実行すると,関数を与えた時の入力と出力があっていることが確認できます.
詳しくは,補足説明 (練習問題確認プログラムの使い方)を御覧ください.
今日の課題
- 講義中に投票を求められるので,投票システムを使って投票をしてください.
- ITC-LMSの掲示板11/23の課題,質問に以下の内容を書き込んでください.プログラムを除いて100文字以上は書き込みをお願いします.
- 講義で用いた練習問題に対して自分が書いたプログラムと説明.プログラムが正しく動かなかった場合も,動かないプログラムとエラーメッセージを書きこんでください.講義で用いなかった教科書の練習問題に対して書きたい人は書きこんでも構いません.
自宅で自習をする人のために
アルゴリズム入門共通資料の中に講義で使うRuby言語の処理系のインストール法があります.