akimachoのはてなブログ

ICTとデザインのためのブログ

『プログラミングの基礎』読書日誌-1日目-

きっかけ

プログラミング」を学び直したいと思い,浅井健一『プログラミングの基礎』(サイエンス社)を読みました.

なぜこの本を選んだかというと,次のような記事をを読んだからです.全体をパラパラ読んでみて,なるほどいい本そうなので,きちんとメモを取りながら読んでいきたいと思います.


あぶないプログラミング入門


2009-03-21 - きしだのはてな


[OCaml]書評「プログラミングの基礎」 - あどけない話

全体の構成

本書の目論見は,メトロネットワーク最短路問題を解くダイクストラ法とよばれるアルゴリズムを実装しながら,プログラミングに必要な思考法を修得することにあります.

ダイクストラ法 - Wikipedia

最短経路問題 - Wikipedia

大きな流れとして,第1〜17章まででOcamlの文法やデータ構造,アルゴリズムを学びながら正しく動作するプログラムが完成します.第18〜24章では,例外やモジュール,副作用などプログラミングにおいて重要なものを学んでいきます.

各章の随所には区切りの良いところで問題が設けられています(答えはサポートサイトにあります).スモールステップで進めることができるので,自分の理解度を確かめられるでしょう.

丹念にやっていく

最後に,第16章で書かれた以下の文章は,本書を読む上で励みになると思うので引用します.

 (略)今までに知らなかった言語でのプログラミングなので構文を覚えるのに苦労したかも知れません。きちんと型を合わせなくてはいけないので面倒に感じたかも知れませんし,再帰という考え方が導入され理解するのに苦労したかも知れません。

 しかし,振り返ってみるとこれらはいずれも「難しい」というほどのものではなかったことに気がつきます。言語の構文はたしかに未知のものでしたが,一度こういうものがあると把握しさえすれば覚える必要はなく,必要なときに本書を見直せばよいだけの話です。(略)また,再帰によるループは数学的帰納法の応用ととらえれば理解しやすく,より簡単に正しいプログラムを作れるということに気がついたと思います.

 こうしてみると各々のステップ自体はさほど難しくはなかったということを納得してもらえると思います。ひとつひとつの作業は面倒かも知れませんが難しいものではなく,丹念にやっていきさえすれば誰にでもできるものです。これを実感することは重要です。一度,この感覚を身につけると,今後どのようなプログラミング言語でも(構文の書き方などの基本を把握しさえすれば)プログラムを組めるようになります。

p.175(太字は私,Akimasa Kimuraによるものです)

参考になるサイト

著者のサポートページ 「プログラミングの基礎」

プログラミングの基礎 (Computer Science Library)

プログラミングの基礎 (Computer Science Library)