Linux 体験講座潜入記

Linux 体験講座潜入記

文 : ぁゃ、編集 : かずひこ

2004 年 8 月 20 日に、島根大学で「電気学会産業応用部門島根大会記念行事 Linux 体験講座」が行われました。 「Linux 体験講座」とありますが、実は副題が「オブジェクト指向スクリプト言語 Ruby で始めるプログラミング入門」でした。 そんなわけで私達 NaCl Ruby 班 (?) も参加してきましたので、その様子をお届けします。

概要

日時
平成 16 年 8 月 20 日 (金) 13:00-16:30
場所
島根大学総合理工学部 3 号館 7 階 720 教室 (電子制御システム工学科計算機実習室)
対象
中学生、高校生、大学生、一般
主催
電気学会産業応用部門島根大会記念行事委員会
共催
島根大学総合理工学部
定員
30 名
講師
島根大学総合理工学部 助教授 縄手雅彦
内容
オブジェクト指向スクリプト言語 Ruby で始めるプログラミング入門

カリキュラム

1. まずはログインとログアウト

20040820-1.jpg 初級ということで、ログインや認証から丁寧に説明されました。ちなみに OS は、Vine Linux を使っていました。

2. 初めてさわる GNOME デスクトップ

続いて、GNOME についての簡単な説明がありました。余談ですが、GNOME の足跡のマークが実は G の文字となっていると初めて知りました。

3. Linux での WWW ブラウザ

Mozilla と Netscape の二つがインストールされていて、今回は Mozilla を使いました。これも立ち上げから丁寧に説明されていました。

4. GNOME におけるウィンドウ基本操作

ウィンドウマネージャの操作からマウスによるコピーペーストまで、丁寧に説明されました。

5. Ruby スクリプト学習環境 S@pphire とは

20040820-2.jpg 今回の講座では、S@pphire という簡易 IDE を使うということで、ツールの使い方が説明されました。 まだ開発途中なので、バグが出るかもしれないということでした (実際、NaCl Ruby 班の面々は講義中にせっせとデバッグしていたようです)。

この S@pphire では、スクリプトと結果とエラーメッセージが、一つのウィンドウに出ていたので、とても見やすかったです。

6. 最初の一歩

ここからやっとプログラミング入門らしくなり、参加者が S@pphire 上で実際にプログラムを動かして、「Hello, world! 」の出力をしました。

7. どのように画面に表示するのか –出力方法–

色々なパターン文字列の出力について説明されました。 ここでは、puts、print、p とバックスラッシュ () の説明でした。 printf についても Web 上の資料に書いてありました、のちほど説明するとのことでした。

8. ものを数字や文字で扱うために –変数と型–

20040820-3.jpg 簡単な計算プログラム (1 〜 100 までの和を求める) が例題として取り上げられました。 Ruby は C 言語と違って型宣言が不必要であることや、「=」は数学と違って代入という意味であることなどが説明されました。

9. 計算してみよう –四則演算と剰余–

まず四則演算記号の説明があり、簡単な演算例題をスクリプトに入力して、出力しました。 演算と型の説明に、「整数 / 整数」と「整数 / 実数」を例に挙げられていました。 次に文字列の演算、自己代入の演算スクリプトの説明があり、それぞれ S@pphire で参加者が実行していました。

10. プログラムの流れを考える –条件分岐–

ここから若干複雑になってきました。 条件分岐の例が、フローチャートを使って説明されました。 条件を判断するために、値が「真」か「偽」のどちらかを判断しますが、Ruby では false や nil (値が無い) でなければ「真」になるという説明がありました。 さらに、複数の if 文の組み合わせや、論理演算子についても説明されました。

11. くり返し同じことをするために –for ループ–

くり返しの方法として、for 文と、for 文の入れ子 (何重ものループ) を説明されました。 入れ子の例題では、結果を見ながら、スクリプトの流れを理解するようになっていました。

12. くり返しの別の方法 –while ループ–

別のくり返しの方法として、while 文が説明されました。 ここでの例題は、0 〜 9 までの乱数を使い、発生した乱数を足していき、 合計が 100 を越えるとループの終るスクリプトでした。 乱数を使っているため、実行するたびに繰り返しの回数が異ることを実際に確認しました。

ここで、間違えてループから脱けられず、S@pphire が固まってしまった人もいたようでした。

13. 次々と作られる値を上手に利用する –配列–

配列について、序数が 0 から始まることや、序数がマイナスの場合は、配列の最後尾 (一番右側) から -1 として数えることなどを説明されました。

14. 自分で考えてみよう

ここでは問題が三つほど出され、自分でスクリプトを書きました。 ノーヒントで問題だけ引用しておきます。

  1. サイコロの目を出すスクリプト

乱数発生のメソッド rand を利用して 10 回サイコロを振って、順に出た目を表示するスクリプトを作成しましょう。

  1. Loto6

Loto6 のような 1 から 48 までの数を 6 個作るスクリプトを考えましょう。

  1. 配列の要素の並び替え

次に示す配列の要素を小さい順に並べ直しましょう。

array = [21, 5, 3, 15, 7, 9, 33, 2]

今までに習ったことの復習ですので、もちろん今日出てこなかったメソッドを使っては駄目 (break すら使えません) なので、結構苦労しました (特に 2 番の Loto6 問題)。 逆にまっさらな状態で考えたほうが簡単なのかもしれませんが、他の参加者も苦労していたようです。

15. 補足事項と役に立ちそうなスクリプト

20040820-4.jpg 最後に、Ruby のオブジェクト指向な面について、少しだけ紹介されました。

今日の講習内容は Web で公開されています。 ご参考までどうぞ。 URL: http://ecs.riko.shimane-u.ac.jp/~nawate/2004_linux/

感想

多くの人が Linux や Ruby に接することのできる機会が増えてよかったと思います。 独学もよいのですが、講座に参加することで他の考え方を学べますし、その場で指摘もいただけるので良い刺激になると思います。 最後の問題はとてもよかったと思います。 講座で習った中でプログラムを組むことで、基礎が固まります。 私達は変に知識があるため、すぐに範囲外のことばっかりで考えてしまって手間取ってしまいましたが、使える知識を限定することにより、基礎を固めるのに良いと思いました。

全体的に Ruby を使ったプログラムに入るまでの説明が長かったのですが、 ある程度の使い方は、テキスト (web でも公開されている) で説明されているので、 軽く流す程度にして、Ruby の方をもっと使っていただいたほうが良かったと思います。 例題を出して、それに沿った簡単な問題を出し、プログラムを組み立てる方が、 プログラムに接する回数が増えてよいと思います。

また Ruby のプログラミング講座に行きたいです。 あと Ruby で作るシンプルスクリプトとか、基本的なネットワーク構築とか、 ネットワーク管理者の心得みたいな講座があれば、行ってみたいです。

今回の参加者は年輩の方が多かったと思います。 もっと若い人にも広まってほしいので、 若い人に限定した講座があってもよいと思います。

著者について

ぁゃ
大学卒業後、地元の山陰に戻り、松江にあるネットワーク応用通信研究所に勤務。 Ruby との出会いは勤めだしてからで、まだ日も知識も浅いです。日々プログラムを書きながら、Ruby との勉強 & 格闘をしております。
かずひこ
大学では建築を専攻し、在学中からグラフィックデザイナーとして働き、今年の 8 月からはネットワーク応用通信研究所でソフトウェア・エンジニアとして働くようになったという変幻自在なお調子者 (?)。信条は「Light Weight 人生」