Feb 9, 2008

言語を覚える時のたった3つの練習問題

新しくプログラミング言語を覚えたいときに行うべき10の練習問題 | IDEA*IDEA

なんちゅうつまらん問題!興味も沸かないし、達成感もないし、プログラミング自体の練習になっていない。特定のライブラリの使い方などはオンデマンドで調べればいいこと。

プログラミング言語を覚えたいなら以下のような問題を解くと良い(SPA2006の余興の翻案)。

問題1

キーボードの「e」を使わずに「Hello, world!」と表示するプログラムを作れ。

※作れない言語もある。その場合、「なぜ作れないのか」を説明してみよ。

問題2

echoサーバプログラムを作れ。どんな手抜きをしても構わない。

問題3

47都道府県庁の所在地を示すKMLをファイルを以下に与える。

pref.kml

このとき、北海道庁を起点として、残り46都府県庁を一回ずつ訪問して北海道庁に戻ってくることを考える。どのような順番で訪問すれば移動距離を最短にできるだろうか(巡回セールスマン問題)。

最短の訪問経路を生成するプログラムを作り、その結果をKMLファイルで示せ。

pref-path.kml (出力ファイル例)

※地点間の距離は適当に定義せよ。

念のため、このサイズの問題は分枝限定法を使って真っ当に解くか、GAなどの近似解法を使うかしないと難しい。組み合わせを生成してナイーブに解きたい人のために1道6県のデータも作っておいた。これならたった(n-1)!/2=360通りで済む。
pref-7.kml

それぞれの問題はだいたい以下のことを意図したもの。

  1. 言語がサポートする、文字列型などの基本データ型を知ること。
  2. システムプログラムを書くための言語サポートを知ること。どんなシステムライブラリがあるのか自力で調べること。
  3. 言語がサポートするデータ構造を知ること。アルゴリズムが分からなければ自力で調べること。それを実装すること。他の問題でもいいのだが、TSPはGoogle Earthなどで簡単に結果を閲覧できるので達成感がある。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com