今年の1年生との少人数ゼミで、以下の書籍を利用しています。
プログラムはこうして作られるプログラマの頭の中をのぞいてみよう
- 作者: 平山尚(株式会社セガ)
- 出版社/メーカー: 秀和システム
- 発売日: 2013/09/25
- メディア: 単行本
- この商品を含むブログ (5件) を見る
この本を各自のペースで読んでもらい実習もしてもらいます。
先生は何をしているのか?
わからなかったらヘルプするだけです。(わからない、ということがそもそも無いようなのですが)
正直、楽チンです。
ただ、これは楽をしたいからではなく、これがよいのではないかという判断からの試行です。
これまで様々なスタイルを試してきました。講義形式、輪読形式、自由作品作成などです。
僕が下手なせいもあるのでしょうけど、どれもこれも途中で頓挫してしまいます。講義や輪読はとりあえず形式的には終えることはできるのですが、結果的に何も残っていない場合が多いです。自由作品はさらに難しい。。。テーマを決めるだけで数週間を使います。
この本は、見事なくらい丁寧に思考過程が文章になっていますので、ただただ読んでいけばプログラマの考え方を学ぶことができます。
残り4回くらい講義があるのですが、進捗はおおよそ書籍の半分というところです。
さて、終わりますやら。。。
ただ、待機しているのももったいないので、表記のようなツールを作って見せてあげました。
現在、学生さんらが学習中のRubyで作りたかったのですがrmagickがなぜかインストールできず、後期から学習するProcessingで作りました。プログラムでプログラムを作るという発想はプログラミング学習中の学生さんには少しは刺激になるかな。。。と期待しましたが。。。どうでしょうか?
100x100pxの画像ファイルを用意してdataフォルダにいれます。実行するとa.txtというファイルが生成されますので、それをSunabaにドラッグ&ドロップすれば実行できます。
int address = 60000; ArrayList<String> list = new ArrayList<String>(); PImage img = loadImage("a.png"); for (int y = 0; y < img.height; y++) { for (int x = 0; x < img.width; x++) { color c = img.get(x, y); int r = int(map(red(c), 0, 255, 0, 99)); int g = int(map(green(c), 0, 255, 0, 99)); int b = int(map(blue(c), 0, 255, 0, 99)); list.add("メモリ[" + (address++) + "] → " + nf(r, 2) + nf(g, 2) + nf(b, 2)); } } String[] out = list.toArray(new String[0]); saveStrings("a.txt", out); image(img, 0, 0);
あまり関心のある人は少ないネタかもしませんが。。。とりあえず作業ログとして。
あ、ちなみにこの方、以下の書籍も書かれています。ゼミ室においていますが。。。誰か読んだかな?
- 作者: 平山尚
- 出版社/メーカー: 秀和システム
- 発売日: 2008/11/14
- メディア: 単行本
- 購入: 112人 クリック: 3,473回
- この商品を含むブログ (193件) を見る