第21回高専プロコン応募(校内審査)
今年度のプロコンのテーマが発表され、 創造工学およびIT研究会より応募があり、 学内審査の結果、以下の5チームを書類審査に応募することになりました。
- 課題:「ブレイン・スペース~新感覚電脳補完~」(4EI:小林貴、3EI多田)
- 課題:「Thlowで行こう!」(4EI:川口、片岡、出口、月田、中川、笠嶋)
- 自由:「貼ろうわーるど~地球を創って転がそう~」(4EI:飯田、井上、島田、関、山下)
- 自由:「砂であそぼう!!~砂で描くメッセージ~」(4EI:本山、久世、小林成、森、ツェンデ )
- 競技:「4セルくれ~2セルで十分ですよ~」(4EI:戸嶋、直江、八田、原、山田)
創造工学演習・ガイダンス+アイデア検討
例年通り、何らかのコンテスト参加を目標に、ソフトウェアシステム構築に挑んでもらう。 高専プログラムコンテストや、その他のコンテストなどの事例を紹介しながら、 授業後半は、アイディアを考えてもらい、最終的にアイデア検討資料ということで、 1人1枚のレポート「マインドマップ形式or自由書式」にて記述。
- 高専プログラミングコンテスト
- 課題部門:旅とコンピュータ
- 自由部門
- 競技部門:「水瓶の恵み-緑と水のネットワーク-」
- 募集要項・部門のご案内 一式(PDF)
- ふくいソフトウェアコンペティション
- ETロボコン2010
- 歯みがきロボットコンテスト
- 防災マップコンテスト
六角形フィールドの取り扱い演習
高専プロコンの競技部門は、蜂の巣状の空間の陣取り合戦みたいなルールなので、 来週の演習(実験)では、このフィールドの取り扱いに慣れてもらうネタに、 取り組んでもらう予定。 ということで、案内資料に書かれているヒントを元に、 六角形フィールドを2次元配列に格納し、そのデータを表示するサンプルプログラムを 書いてみた。
演習(実験)時間には、このプログラムをベースに簡単な5目並べや、 適当に配置したコマで、閉じた空間をつくっているか判定するプログラムに 改良してもらう予定。実際に参加する人は、閉じた空間の面積を数える所まで、 直すことができないと難しいかな…
unix講習会7日目(apache2のインストールと設定)
ひとまずの目標となる、Webサーバを試すまでができるようにということで、 最終的に apache2 のインストールを例に説明を行った。
"aptitude install apache2" といったインストール作業をしめしながら、 動的ページのための環境として、CGI→PHP→Tomcatといったリクエストの頻度に 応じて言語を使い分ける話をしたあと、PHPを使いたいのであれば、 "aptitude install libapache2-mod-php5 php5" といったものを入れる必要があることを示す。
Debian での apache2 では、巨大な httpd.conf をメンテナンスしなくていいように、 ディレクトリ構造に工夫がされている。
/etc/apache2/site-available/* 利用可能なサイトの基本的な設定 /etc/apache2/site-enabled/* 実際に起動するサイト(site-availableへのリンク) /etc/apache2/mods-available/* 利用可能なモジュールの設定 /etc/apache2/mods-enabled/* 実際に利用するモジュール(mods-availableへのリンク) /etc/apache2/conf.d/* 各Webアプリ毎の設定ファイル
a2ensite,a2dissite,a2enmod,a2dismod コマンドで、サイトや機能を選ぶことを説明する。
設定ファイルがたくさん出てきたので、こういうファイルを探す方法を説明する。
(( 例 )) # パッケージでインストールしたファイルで、hoge を含むものを検索 dpkg -S hoge # /etc/の中から、ファイル名に hoge を含むものを見つけて表示 find /etc -name *hoge* -print
unix講習会6日目(daemonの起動)
最終的には、サーバの動かし方を理解するのが目標みたいなので、 今日はdaemonの起動スタイルについて説明する。 ネットワーク系のデーモンでは、inetd を使った起動と、 各ソフトがそれぞれ起動する方式の2つがあることを説明。 inetd の説明のために、簡単に TCP/IP では、32bitの固有番号があって、 IPアドレス・サブネットマスク・ゲートウェイの設定が重要であることを紹介しておく。
デーモンの起動では、サーバの使い方によって起動したいソフトが違うため、 ランレベルという考え方があることを説明、S,0,1,2,3,4,5,6があり、Ubuntu の CDブート環境では、2であった。 ランレベル毎に、/etc/rcランレベル.d/ というディレクトリがあり、 この中に起動するソフトの情報が書かれている。 実体は、/etc/init.d/ に保存され、1ファイル1アプリケーションの構成となっている。 /etc/rc*.d/ のファイルは、そのランレベルに変更になるときに、 "/etc/rc*.d/ファイル名 start" と呼び出され、ここで必要なデーモンを起動する。 ランレベルを抜けるときには、"/etc/rc*.d/ファイル名 stop" が呼び出され、不要なデーモンを停止する。
unix講習会5日目(Ubuntu CDブートを使いながら)
UbuntuのCDブート環境を立ち上げて、色々と説明を行う。 GNOME/KDE/X11 などの話や、日本語環境anthyなどの操作説明。 GNOMEでは、gdmログインマネージャ、metacityウィンドウマネージャ、nautilusファイルマネージャ といったものが協力して動いていることなど。
また、Ubuntuの管理者作業として、 aptitude のupdate/install/safe-upgrade, (dpkg,apt)などを説明。 管理者モードになるときには、sudo などを使うことなども説明。
また、インストールを行う際の知識として、/dev/sda といったデバイス名や、 パーティションの分け方、FAT/NTFS/ext3/swapといったファイルシステムの説明も行った。 んで、説明の後、学生さんはUSBブート環境を作っているみたい。
unix講習会4日目(Shell Script)
Linux講習会の希望から始めた、unix講習会。 学生さんは、Linux のデスクトップの使い方を思ってたかもしれないのに、 延々とCUIコンソールのみで説明しているけど、 基本機能の説明はそろそろ終了かな。
CUIコンソールでのUnixの使い方の最後として、今日はShell Script を説明する。
Shell Script
まず、Shell での変数の説明で、A="hoge" ; echo "$A" といった代入、参照と、 環境変数が親プロセス子プロセスでコピーされることなどを紹介。 ダブルクオート、シングルクオート、バッククオートといった説明と、 プログラム起動時のコマンドライン引数の取り扱い(int argc , char** argv)の説明を行う。
Shell起動の説明として、スクリプトファイル先頭の"#!/bin/bash"の説明、 "chmod 755"などの説明をしてから、実際のスクリプトを動かしてみる。
for in do done , if test then else fi , case in esac といった制御構文を解説する。
unix講習会3日目(プロセスとパイプ)
プロセスとパイプの概念を分かってもらうための説明を行う。
最初に、昨日のパーミッションの説明を踏まえ、/etc/passwd , /etc/group などで、 UserID,GroupIDといった概念を説明する。 次にプロセスの説明として、ps , kill コマンドの使い方を示し、ProcessIDや システム管理者(root)などの考え方を理解してもらう。
次に、パイプの概念を分かってもらうために、while-getchar-putchar-toupper の大文字変換の プログラムを示して、出力リダイレクト・入力リダイレクトを説明する。 最後にパイプの概念を説明して、 簡単なプログラムを組み合わせて処理を書くことができることの 説明をする。
パイプの便利さと、マルチタスクとシングルタスクの違いを説明するために、 iPhoneアプリを例にとって説明をする。 iPhoneアプリはシングルタスクOSだから、パイプを使ったプログラムは書けない、 だからこそ1つのプログラムで全機能を実装しなくちゃいけない。 プログラムの切り替え要求がくると、「プログラムは遺言を残して死ね」、 プログラムの再起動の時には、「遺言を読んで生き返れ」といった処理が行われる…といった 処理が行われることを説明する。
まあ、マルチタスクだって、遺言を残す場所が主記憶なだけでタイムスライス毎に、 ちょっぴり死んでいて…という言い方もできるけど..
unix講習会2日目(パーミッションとエディタ)
昨日より始まったunix講習会の2日目。 最初に、昨日説明をしなかった、ワイルドカードの説明のあと、 ファイルパーミッションの説明。(chmod,chownなど) 途中で通常ユーザだと、「"chmod 他人 自分のファイル"ができないのはなぜ?」 といった説明を考えてもらいながら、解説。
unixではコンピュータを複数で使うのが当たり前、だからセキュリティに厳しい。 Windowsはほとんど1人で、管理者の区別が甘いことを話しながら解説。 こういう違いを話さないと、unixって面倒なだけ…と思われるだけになりそう。 話を質問する際ににも、 「性善説で考えたらダメ、性悪説でひねくれて悪さする視点で 考えなきゃセキュリティは理解できない…」と言いながらの解説。
unixでのエディタvi,emacs
エディタの説明をするけど、普通にvi,emacs を説明しても、 「めんどう・へんたい!」という意見しかでないだろうから、 管理者権限でファイル触るには、GUI を他人(管理者)に使わせるのは危険でしょ… だからCUIだけでエディタ使わないといけないから、GUIなエディタは使えないことが多いから… と解説をしてからのエディタ講座。
といっても、カーソル移動と削除・終了程度しか説明してないけど…
(( vi )) : このリンク先、markやcommand+移動の説明もあって、なかなかGood!! ←h, ↓j , ↑k , →l 入力: iテキスト 1文字消し: x 単語消し: dw 終了: :wq (( emacs )) : クイックリファレンスのみ、emacs-lispの話もしたいけど我慢... ←C-B, ↓C-N , ↑C-P , →C-F 1文字消し: C-D 保存: C-x C-S 終了: C-x C-C
unix講習会
IT研究会の人たちから、「Linux講習会を…」との要望で午前中2時間ほどの講習会を、 2週ほど実施する予定。
1日目ということで、OSの歴史・Unix歴史、ディストリビューションの違いなどから始め、 KISSの原則・車輪の再開発などの話から、CUIなどの重要性を説明する。
1日目は説明主体で、実習的なことはあまりできなかったけど、 cat,ls,rm,pwd,絶対PATH,相対PATHなどの入り口と、 パーミッションについて解説。
第21回高専プロコン課題部門テーマ+予定発表
高専プロコンの本部より、第21回プログラミングコンテストのスケジュール および課題部門のテーマが発表となった。
- 募集期間 平成22年5月21日(金)~5月28日(金)
- 予選(書類による審査)平成22年6月26日(土)
- 本選(プレゼン・デモ等による審査、競技は対抗戦)
- 日時 平成22年10月16日(土)~17日(日)
- 場所 高知市文化プラザかるぽーと(高知市九反田2-1)
- 課題部門のテーマは、「旅とコンピュータ」
課題部門などにチャレンジしてみたい人は、早々に準備を始めましょう!