プログラミング言語を習得することはコンピュータの原理を一歩踏み込んで理解することにつながります。本書では、プログラミングを始めるにあたって Ruby を紹介しています。プログラミングは難しそうというイメージを持っている人も本書によってプログラミングの楽しさを感じていただけると思います。また、今後ほかの言語を習得するにあたっても役立つ内容になっております。
Rubyist Magazine を読んでいるみなさんはおそらく既にプログラミングを「楽しんで」いることでしょう。みなさんが最初に覚えたプログラミング言語は何ですか。私の場合は BASIC でした。今思えばちっとも構造化されていず、よくあんなものと戯れていた、と思えるほどのものですが、当時の自分にとっては新鮮で、それまで経験したどんなパズルよりも楽しいと感じました。そんな経験はみなさんにもあるでしょう。
幸せなことにこれからプログラミングを始める人には Ruby があります。プログラミングに関するあらゆる第一歩を覚えるときに、きれいに設計されつつも言語設計上の都合を無理強いしない Ruby に接することは、論理に集中できるとても良い選択です。未だに高校の教科書には BASIC が載っていますが、Ruby にならないものかと常々思っています。
プログラミングは論理的思考力だけでなく予見する力、創造力、(利用する) 人への配慮など総合的な「人間力」をつけるのにとても役に立つと思います。将来プログラマを目指すのではない人にこそプログラミングを経験してもらいたいと考えて今回の本にまとめました。そんなわけで Ruby の真髄とも言えるものをばっさりと削りました。「何を盛り込むか」よりも「何を削るか」を中心に考え、筋道立てて考える訓練をするのに重要なものだけに絞りました。この点が他の Ruby 書籍とは大きく異なっているところでしょう。
既にプログラミングを「楽しんでいる」みなさんの周りに、その楽しさを伝えたい人はいませんか。そんなときに思い出して欲しいのが『Ruby プログラミング基礎講座』です。
○第1講 はじめに
◆1-1 プログラミングとは
◇プログラミングで得られるもの
◇プログラミングの楽しさ
◇プログラミングを学ぼう
◆1-2 プログラミングに必要なもの
◇コマンドラインとシェル
◇ディレクトリとファイル
◇ファイル・ディレクトリ操作コマンド
◇Emacsの操作
◇その他の操作
○第2講 プログラミングの基礎
◆2-1 プログラミング言語と計算機
◇プログラミング言語
◇言語処理系
◇コンパイラとインタプリタの特徴
◆2-2 プログラミングの流れ
◇プログラムの作成
◇Rubyプログラムの実行
◆2-3 問題を解くプログラム
◇手順
◇インデント
◆2-4 間違いの修正
◆2-5 練習問題 2
○第3講 変数・制御構造
◆3-1 積算プログラム
◆3-2 値と変数
◇数値と文字列
◇真偽値
◇変数
◇変数の参照
◆3-3 制御構造
◆3-4 Rubyで利用できる演算
◇算術演算
◇代入を伴う演算
◇論理演算
◆3-5 よく使うメソッド
◇メソッドとは
◇基本的メソッド
◇積算プログラムの復習
◇入出力を行なうプログラム例
◆3-6 練習問題 3
○第4講 値の型変換
◆4-1 getsへのデータの与え方
◇標準入力と標準出力
◆4-2 マッチ棒取りゲーム
◆4-3 マッチ棒取りゲームのプログラム
◆4-4 値の型変換
◇文字列から数値へ
◇数値から文字列へ
◆4-5 練習問題 4
○第5講 正規表現
◆5-1 正規表現とは
◇正規表現の例
◇egrepコマンドによる正規表現の実験
◇Rubyで使う正規表現
◆5-2 正規表現の特殊文字
◇代表的なメタキャラクタ
◇正規表現オプション
◇正規表現の指定方法
◆5-3 正規表現検索の練習
◆5-4 練習問題 5
○第6講 配列
◆6-1 配列
◇配列とは
◇配列の要素
◇配列への値の追加手順
◇配列からの値の取り出し手順
◇配列を操作するメソッド
◆6-2 成績処理の例
◆6-3 練習問題 6
○第7講 ファイル入出力
◆7-1 ファイル入出力
◇openメソッド
◇ファイルからの読み込み処理
◇ファイルへの書き出し
◇外部コマンドとの入出力
◆7-2 ファイル入出力の処理例
◇プログラムの動作イメージ
◇会計プログラムの設計
◇実行
◆7-3 練習問題 7
○第8講 計算機の内部表現
◆8-1 2進数と16進数
◇2進数
◇16進数
◇16進数と10進数の変換
◇Rubyプログラムでの扱い
◆8-2 文字コード
◇ASCIIコード
◇Rubyプログラムでの文字コードの扱い
◇文字列と文字コード
◆8-3 練習問題 8
○第9講 実践プログラミングへの転換
◆9-1 短いRubyコードの実行
◆9-2 乱数
◆9-3 文字列操作
◆9-4 時間
◆9-5 繰り返し
◇要素すべてに対する繰り返し
◇指定した回数の繰り返し
◆9-6 ファイルの入出力処理
◆9-7 デモメッセージの出力
◇文字列の切り出し
◇行頭空白の作成
◇デモ出力プログラムの完成
◆9-8 プログラミングスタイル
◇読みやすいスタイル
◆9-9 デバッグ
◇エラーを起こしにくい書き方
◇デバッグのしかた
◆9-10 練習問題 9
○第10講 メソッド
◆10-1 メソッドを定義する
◇メソッドとは
◇メソッドの定義方法
◇メソッドの参照と返却値
◇return文
◇仕事をするのみのメソッド
◆10-2 メソッドの利用例
◇消費税計算
◇メソッドに配列を渡す例
◆10-3 練習問題 10
○第11講 繰り返し処理
◆11-1 いろいろな繰り返し
◇決められた回数だけ繰り返す
◇整数を数えながらの繰り返し
◇配列要素すべてに対する繰り返し
◇飛び飛びの繰り返し
◇数値で繰り返すときの注意事項
◆11-2 コマンドラインとの情報のやりとり
◇コマンドライン引数
◇STDERR
◇終了ステータス
◆11-3 練習問題 11
○第12講 ハッシュ
◆12-1 ハッシュ
◇ハッシュとは
◇ハッシュの特性
◇ハッシュへの値の追加手順
◇ハッシュからの値の取り出し
◇ハッシュを用いた簡易データベース
◆12-2 ハッシュの利用
◇すこし複雑なハッシュ
◇ハッシュの初期宣言
◆12-3 練習問題 12
○第13講 配列とハッシュの応用
◆13-1 配列処理メソッド
◇配列生成
◇配列処理メソッド
◆13-2 sortメソッドによる並べ換え
◇一般的なソート
◇独自規準のソート
◇ハッシュのソート
◆13-3 本格的なデータ処理
◇成績処理の例
◆13-4 練習問題 13
○第14講 再帰
◆14-1 ハノイの塔
◆14-2 再帰
◇再帰とは
◇再帰を利用したプログラミング
◇再帰的メソッドのポイント
◆14-3 再帰処理
◇再帰処理による並べ換え
◇クイックソートとは
◇クイックソートしてみよう
◇クイックソートを行なうメソッド
◆14-4 ハノイの塔を解くメソッド
◇ハノイの塔の問題分割
◇Rubyプログラムへ
◆14-5 練習問題 14
○第15講 文字列処理とクラス
◆15-1 「クラス」とは
◆15-2 Stringクラス
◇Stringクラスの代表的なメソッド
◆15-3 練習問題 15
○第16講 データ構造と外部表現(1)
◆16-1 データ構造
◆16-2 データの格納と表現例
◇カードの性質
◇トランプのカードの表現方法
◇単純通し番号管理
◇配列による種類と数字の管理
◇ハッシュによる種類と数字の管理
◇格納方法の選択
◆16-3 値の交換
◇配列のシャッフル
◆16-4 カードゲーム基盤を作る
◆16-5 練習問題 16
○第17講 データ構造と外部表現(2)
◆17-1 データへのルール適用
◇簡略化ブラックジャックのルール
◇ゲームの流れ
◆17-2 設計のプログラム化
◇必要な変数とメソッド
◇カードの配布と表示
◇持ちカードの合計点を計算するメソッド
◇人間にもう1枚引くか確認する部分
◇コンピュータがもう1枚引くか決定する部分
◇結果を表示する部分
○第18講 オブジェクト指向とクラス定義
◆18-1 オブジェクト指向
◇データの内部形式への高依存問題
◇Cardクラスを利用したプログラム
◆18-2 クラス定義
◇クラス定義のしかた
◇クラス定義の考え方
◇Rubyにおけるクラス定義
◇結局クラス定義って…?
○練習問題解答
○付録
◆本書に関する情報
◆各種ツールの設定情報
◇Rubyのインストール
◇Emacsの設定
◇ターミナルソフトの設定
技術評論社様からのご厚意で本書を 5 冊、読者プレゼントさせていただけることになりました。詳細は 0013 号 読者プレゼント をご覧ください。