『オンラインジャッジではじめるC/C++プログラミング入門』
渡部 有隆(著)
2014年
マイナビ
★★★☆☆
プログラミング未経験者を対象とした、AOJ(AIZU ONLINE JUDGE)を活用して学ぶC/C++入門。情報系の大学の先生の書いたシンプルなプログラミング入門で、中高生から年配の読者にまで幅広く対応できそう。
2部15章構成。第1部は準備編で、ソフトウェア開発の概要とAOJの利用方法について、第2部がプログラミング編で、C/C++言語の概要、変数、演算子、標準入出力、条件分岐、繰り返し、キャストとポインタ、構造化プログラミングと変数のスコープ、配列、文字列、数学関数、構造体とクラス、といった、まさに王道、極めてオーソドックスな「C++を用いたC言語入門」。レベル的には初歩の初歩、C/C++の必要最小限、コアの部分を簡潔に記している。ちなみに、第1部の第2章(AOJの利用方法)に関しては、WEB上で公開されている
チュートリアルとほぼ同じ内容。
「オンラインジャッジ」とは、ソフトウェア開発における「テスト」機能をWEBアプリケーション化して一般に公開したもので、主にプログラミングコンテスト(競技プログラミング)やプログラミング教育に活用されているもののようだ。「
AIZU ONLINE JUDGE」は日本の会津大学が提供しているオンラインジャッジシステムで、本書の表紙によれば「日本最大級の“オンラインジャッジ”サイト」なのだとか(誰でも無料で利用することができる)。本書は、そのAOJ内に用意されている「
Introduction to Programming」コースの課題に沿ってC/C++によるプログラミングについて教授していく、という趣旨(著者は会津大学の先生で、AOJの開発者だそうだ)。以前本書を見かけたときにはAOJではC/C++しか使えないのかと勘違いしてしまったのだが、C#、Java、JavaScript、Ruby、Python、PHP、Scala、Haskell、その他諸々、と様々なプログラミング言語に対応している。最近は「オンライン・コンパイラ」なるものも多数存在するようで、インターネットにつながったPCさえあれば(PCである必要すらない?)、WEB上でプログラミングを学べるようになっている。面白い時代になったものだ(ただし、AOJ自体はオンライン・コンパイラ機能を提供していない)。
僕はアマチュアとしてのプログラミング歴は長いのだがプロとしての経験がないため、ソフトウェアによるプログラムのテストをほとんど経験したことがなかった(素人はテストしない!)。「オンラインジャッジ」の楽しさに目覚めたのはつい最近で、ITエンジニアのための転職支援サービスである「
paiza」や「
CodeIQ」で初めて体験した。出された「お題」に対して自分の得意なプログラミング言語(あるいは、学習中の言語)でプログラミングを行い、WEBブラウザ上のテキストボックスにコードを入力して送信すると…、サーバー上でコンパイル&実行され、複数のテストケースに対して定められた(プログラム実行の)制限時間やメモリ容量の範囲内で正しい出力が行われたかどうかをその場で採点してくれるワケだが…、これが面白い! 考えてみると、プロはこういう環境でプログラミングしてるんだろうな〜。
AOJの「
Introduction to Programming」コースの課題はかなり易しめで、プログラミング自体全くの初めて、という初学者向け。ただ、それこそ1990年頃(25年前!?)のプログラミング入門と変わらないようなオーソドックス(と言うか、古典的)な内容なので、JavaScript、Ruby、Pythonといった最近の言語向きではないようにも思う(これらの言語には、文字列や配列、各種のデータ構造を操作するための便利なクラスやメソッドが最初から用意されていて、それらを用いてプログラミングを行うのが普通だが、本コースでそれをやってしまうと勉強にならない)。C/C++を用いて昔ながらのプログラムを書いていくのが王道だろう(ただし、「Cの壁=ポインタ」に関する踏み込んだ解説はほぼないに等しく、本書で壁を乗り越えられる人はいないだろう、とも思う)。
本書は、一般向け公開講座のテキストや大学の演習の課題、等をもとにしたものなのだか。ワリと厚いが、厚い紙を使っているせいで、実質200ページ程度とプログラミング関連書籍としてはかなり薄手。プログラミング言語の入門書の中には「これでもか!」というくらい内容を詰め込み過ぎてしまう本も多いが、本書はワリとスカスカ(笑)。ただし、「言葉を省き過ぎ」ということではなく、多くの入門書ライターの視点とは異なる情報系の先生らしい表現も散見され、それがワリといい感じ(笑)。本書のシンプルな記述を見ていると、「あんまり難しく考え過ぎない方がいいのかも」という気になってくる。テキリージー!
3078円という価格は正直ちょっと高い、という印象(この価格なら星2つ)。電子書籍版が紙の本の半額になっていたので購入した。1539円で値段相応、といったところか。尚、本書中で続編『オンラインジャッジではじめるアルゴリズムとデータ構造入門』とされている本(AOJ内の「
Introduction to Algorithms and Data Structures」コースに対応)は、『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』(渡部(著) Ozy・秋葉(協力) 2015年 マイナビ)として刊行されたようだ。個人的にはこの続編に期待しているので、続編も是非是非半額に…、して欲しい(笑)。
本文210ページ程度(他に、演習問題の模範解答として35ページ程度)。
→
Kota's Book Review

0