Vista熱
Windows Vista の新しい UI や Look&feel に激しい嫌悪感を持つ症例…だそうな。 たぶん を触ってない けど、感染してる。 Look&Feel については新しいもの好きもあり、メイリオフォントだけ Xp に入れてるけど… Office 2007 も使い始めたけど、「*.docx 保存はしない」し、 「Office2007インストール後に速攻で入れたソフトが、 Office 2007 オールドスタイルメニューアドイン 」だったりするし、自分なりに処方箋を実践中だったりする。
熱発症するな…
あなたがプログラムを理解できない10の理由
実際にプログラムを書いてみようという特集記事なんだけど、 プログラムが苦手という人にこのネタの入り口を読んでほしい。
- やってみたことがない、
- あまりに実用的なプログラムを作ろうとしている、
といった話がこの第4回ネタには記載されている。 他の回も見てみるともっと違うネタもあるけど、 この回のネタは最近の学生さんにプログラミングを教えるときに思う問題点と同じ。
私がよく言うのは、最近の学生さんは日々「まともなUIのOS」や「ゲームマシン」という 「極めてよくできたソフト」をいつも使ってばかりいるから、 簡単なプログラムが動いた時の『感動』が味わえない…ということ。
# さてテスト問題、どんなの出題すると「おっ、そんな技あったんか…」
# と思わせることができるのか…をいつも考えてまーす。
コピペ検出ソフト
昔からプログラミングの授業で、 『プログラムのコピペを検出して同一チェックできるプログラム書けたら、 私の授業の単位「優」つけるぞ…』とは、よく言うネタ。 最近は文系のレポートでも、ネット記事のコピペが問題視されている。 んで、このソフトは、この手のコピペをネットから類似記事をみつけて、判定するらしい。
私の場合、レポートでコピペができたとしても、そーゆーことしてる奴は、 どーせ、生テストで相当の結果がでるので、目くじら立ててチェックはしない….
プログラミングコンテスト学内選抜
全国高専プログラミングコンテストの応募に向けて、学内選考を行った。 4EIの創造工学演習からの作品と、3EIの学生の競技部門への応募作品から 応募書類を見ながら選考とした。
プロコンの1高専の参加枠自由2作品、課題2作品、競技1チームであり、 選択基準は、以下のとおり。
DL DT 課題・自由部門 DD 説明の資料が適切に作られ、独創性があり、 本選に望んだ際に完成が期待できるもの。 DT 競技部門 DD 現時点で完成しているプログラムの完成度。 もしプログラムだけで判定ができない場合は、 学年の上位のグループとする。 /DL
選考結果は、
自由部門:"People Album"-人と人をつなぐ写真館-
4EI:藤澤、(指導)斉藤
DL DT 講評 DD 1人で取り組んだ内容でも、技術的な調査がなされている。 当初開発グループが同じだった4年競技部門参加希望者に、 協力してもらう予定。 /DL
自由部門:"Welfit"-Wiiバランスボードを用いたPC用フットマウスの開発-
4EI:上田、大石、曽根、高間、柳瀬、(指導)高久
DL DT 講評 DD Wiiバランスボードを用いる技術的な問題点については、 きちんと検討されているが、それを使ってどういったソフトを 作るのかが記載されていない。実際の応募までにもう少し 内容を書き加えてもらう。 /DL
課題部門:"CALMDAY"-写真を聴こう-
4EI:市波、長谷川、山内、(指導)奥田
DL DT 講評 DD 当初のアイディアに高久先生指導のアイディアを盛り込んで、 独自性がだせて、開発も本人たちの技術でこなせそう。 /DL
競技部門:"バグを出しても一人"
3EI:奥村、(指導)西
DL DT 講評 DD C# を用いて、テンプレートなどのデータ構造などを使いながら 基本的なGUI、経路探索などに取り組んでいた。 本選参加の際には、人力の部分も重要となるので、あと2名の 協力学生を追加してもらう。 /DL
全体の講評
近年のプロコンの作品の状況からすると、書類審査による予選通過は 厳しいかもしれない。しかし、創造工学演習の授業での取り組みとして、 学生の技量を越えたテーマ選択は、最終的な完成度や本人達のやる気から、 大風呂敷を広げないように配慮した。学内選考に漏れた作品については、 県内のソフトコンペや他のコンテストなどへの出品に向け、継続して開発 に取り組んでもらいたい。
継承と仮想関数
先週の基本データ構造の拡張版がいくつもできる場合のCの問題点の説明に続き、 C++ における導出クラスの説明を行う。実際の文法を示しながら、 格下げのある継承や、仮想関数を用いた継承などを示す。
N進数と文字列の変換
C 言語でのデータの取扱いとして文字列とN進数の説明が終わったので、 例年どおりの N 進数データと文字列の相互変換 atoi , itoa を課題とする。
画像処理による自律ロボットの初期実験
歯みがきロボットコンテスト の第2回大会では、昨年度より完成度の高い機体を 出すべく、OpenCV を用いた機体を計画中。 まずはその基礎実験として、 カメラ視野を平面視野に変換する処理 。
緊急連絡システム、越前町でも…
越前町の小学校より、元赴任先で使っていた緊急連絡システムを使いたいとの 連絡を受けて、登録作業を行い使ってもらう。
しかしながら、越前町は地域連携協定外であったため、 利用登録したのは早計との話があり、 承認関連の作業を慌てて行う…
# うーむ、こういう所は詰めの甘さだなぁ…反省…
SA5SX Debian インストール失敗
SA5SX がもう1台手に入れられたので、環境を設定。 同じくすぐさま Debian のインストールを試すが、 前回使った"Say goodbye to Microsoft,Now"を使うが、 インストーラが起動して、 ネットワークドライバ認識は成功するものの、DHCP 初期化に失敗する。
実数データと文字列の扱い
先週の実数データの取扱いの説明のため、N進数の説明を行う。
N進数の扱い
で表現されるN進数は、
なので、
で割った 余り が最下位桁
で、 商 が
となる。
小数点のN進数データ は、
なので、小数部にNを掛けた時の 整数部 は
で、 小数部は、
となる。
実数データは近似値
よって、 というデータを2進数に直すと、
となる。このため、0.1 は近似値でしか記憶できない。
実数がからむ間違ったプログラム例
これに関連して実数がからむよくある間違いを示す。
// プログラムは無限ループで止まらないかもしれない。 // 理由:0.1を10回加えても正確に1.0にならないかもしれない。 double x ; for( x = 0.0 ; x != 1.0 ; x += 0.1 ) { // ★ x <= 1.0 で判定せよ! printf( "%f\n" , x ) ; } // 平均の小数部が正しく表示されない。 // 理由1:s/c は整数どおしの計算で小数点以下が消える。 // 理由2:s/c が整数だと、%f は実数64bitのはずだけど、 // 32bitの整数0しか渡されない。 // 結果 :ゴミが表示される。 int s = ≪合計≫ ; int c = ≪個数≫ ; printf( "%f" , s / c ) ; // ★ (double)s / (double)c と書く // sinの計算結果が全部0になる。 // 理由:th/180 は整数どおしの計算で 0 になる。 int th ; for( th = 0 ; th < 90 ; th += 5 ) { double x = sin( th / 180 * 3.141592 ) ; // ★ sin( (double)th / 180.0 * 3.141592 ) printf( "%f\n" , x ) ; }
文字列の取扱い
C言語における文字の取扱いということで、ASCIIコード表の説明と、 ‘文字’と”文字列”の違いの説明と、文字列の末尾に’\0’がついていることの説明。