Ruby 画像ダウンロード編 (1) イントロ 【計算数学 I】

更新日時:

何を作るの?

TVアニメ『三者三葉』の公式 Web サイトにはTwitter アイコンプレゼントというページがあります。 ここには Twitter アイコンが 333 個掲載されています。これを手動でダウンロードしようと思うと大変です。 そこで、Ruby のプログラムを書いて全てダウンロードしようというのがこのページの目標です。

ロードマップ

プログラム自体は 30 行足らずで書けます。 しかし、前提知識(教養学部前期課程「情報科学」or「アルゴリズム入門」)から出発すると、解説する分量は結構多くなります。 過年度、似たような教材を書いた際に、数学科の学生は、メソッドの正確な定義や Ruby の正確な文法を知りたがっている傾向があることがわかりました。 ですから、この教材では、1個ずつ積み上げていこうと思います。

後半(というより終盤)では、実際にプログラムを書きます。 どのようにプログラムを書けば 333 個の画像を自動で無駄なくダウンロードできるかを考察します。 また、先方のサーバへの攻撃とならないように、一般的にこの手のプログラムを書く際に気をつけるべき点もお伝えします。

教材を書き始めた頃は、「こんなプログラム解説するには分量いらんだろ」と思っていました。でも間違いでした。 書き始めると、こんな長さになってしまいました。実習 2 回分かかるかもしれません。 十分丁寧に書いたつもりですが、どこを疑問に思うかは人それぞれです。わからない箇所があったら TA に質問してください。

前提知識

東京大学教養学部前期課程「情報科学」(2010 年度 – 2014 年度) or 「アルゴリズム入門」(2015 年度 – ) で 取り扱われている内容を前提とします(ちなみに筆者は 2009 年度の「情報科学」の受講生で、この頃は教科書は出版されていませんでした)。 教科書の第 7 章までが必修ですが、多くの教員は第 8 章まで講義するようです。 第 9 章は伝統的には「プログラム構成論」 or 「計算機プログラミング」の内容です。 第 10 章は専門課程レベルのことが多いと思います。

特に第 8 章「レコードとオブジェクト」で講義される内容が重要です。書き方は忘れていても結構です。 しかし、概念を理解していないと、本教材を取り扱うのは困難かもしれません。その場合は、別の教材をやってください。 具体的には、以下の概念を理解していることを前提とします。

  • 「クラス」「オブジェクト」の概念
  • クラスの「継承」の概念

また、本教材の前に Linux 標準教科書でいろいろ勉強されたかと思いますが、以下も前提とします。

  • パスの書き方。特に、相対パスの書き方、絶対パスと相対パスの区別
  • 「プログラムを実行しているディレクトリ」という理解
  • ファイルのパーミッション。とりあえず、読み込み専用と書き込み可能の区別

ナビゲーション

この教材は、東京大学理学部数学科専門科目「計算数学 I」のために執筆されたものです。 このサイトに掲載する際に、記事を分けてあります。 他の回はRuby 画像ダウンロード編 一覧 #ks1-ruby-downloadから御覧ください。

Ruby 入門 (計算数学実習資料集)には他の TA が書いた教材があります。

コメントする