2023
05/17

プログラミング関連書籍(2023年5月情報更新)

コロナ社が発行しているプログラミング関連書籍をまとめてご紹介!

各プログラミング言語の簡単な説明と,そのプログラミングの学習用書籍や応用して使える関連書籍を紹介します。


 C


C言語は1972年に開発された歴史あるプログラミング言語です。現在でも世界中の多くのシステムで使用されています。高速かつコンパクトなプログラムを実装できることから,機械や電子機器を制御するためのシステムで使用されたり,その高い汎用性から様々なコンピュータ上で動かされるソフトウェア等でも活用されたりと,依然将来性の高い言語です。

プログラミング初学者にとってC言語の習得難易度は非常に高いものですが,C言語の影響を受けて開発されたプログラミング言語は多く,C言語を習得すれば他の言語の習得も比較的容易になることは確かです。エンジニアとしてのスキル基盤をしっかりと固め,幅広いジャンルの開発を行いたい方はC言語を選ぶことをおすすめします。


【C言語を学べる書籍】

  • C言語プログラミング基本例題88+88
  • 魔法のCプログラミング演習書- 入門から実践まで -
  • C言語プログラミング入門- C99対応 -

  • 【C言語を扱った書籍】

  • 計算破壊力学のための応用有限要素法プログラム実装
  • プログラムで愉しむ数理パズル- 未解決の難問やAIの課題に挑戦 -
  • FDTD法で視る音の世界 - DVD付 -(音響サイエンスシリーズ 14)
  • アルゴリズム入門(改訂版)
  • C言語によるはじめて学ぶ信号処理
  • C言語によるディジタル無線通信技術



  •  Java


    Javaは世界中で活用される人気の言語で,簡潔さと機能の豊富さからバランスがとれた言語です。WebシステムやAndroidアプリ,一般企業で使用されるような業務システムから機械を制御するシステムまで,非常に幅広いシステム開発に採用されています。

    プログラムのソースコードは,実行の際にコンパイラによって機械が理解できる形に変換させる必要がありますが,C言語などのプログラミング言語は一般的にプラットフォームやOSごとにコンパイラが用意されており,特定の環境で動かすことしかできません。

    しかし,Javaのコンパイラでは,実行するプラットフォームに対応した形式(ネイティブコード)に変換するのではなく,その手前の中間言語(バイトコード)まで変換し,Java仮想マシンといわれるソフトウェア上で実行されるため,特定のプラットフォームに依存しないシステム開発が可能です。

    そのほかの特徴として「オブジェクト指向」「豊富なネットワーク関連機能」「充実した標準クラスライブラリ」「プロセスを並行動作させるマルチスレッド」「使われなくなったメモリ領域を自動的に整理するガーベージコレクション機能」などがあります。

    習得難易度としては高い方ですが,開発できる範囲の広さやその汎用性から,開発者の需要が高い言語の一つです。


    【Javaが学べる書籍】

  • アクティブラーニングで学ぶ Javaプログラミングの基礎1
  • アクティブラーニングで学ぶ Javaプログラミングの基礎2
  • Javaによるアルゴリズムとデータ構造の基礎
  • オブジェクト指向言語Java
  • 例題で学ぶ Java入門
  • 例題で学ぶ Javaアプレット入門

  • 【Javaを扱った書籍】

  • Javaによるはじめての有限要素法- CD-ROM付 -
  • 改訂 Javaによる知能プログラミング入門- CD-ROM付 -
  • Javaによるオブジェクト指向数値計算法- CD-ROM付 -



  •  Python


    Pythonは読みやすい簡潔なソースコードを書くことができ,初心者にも人気のある言語です。C言語やその他言語でプログラミング習得を断念した方にとっても,Pythonであれば十分再挑戦できることと思われます。また,Python利用者の急増に伴って,学習するための書籍やサイトも揃っているので学習しやすい環境が整っています。

    FacebookやGoogleでも採用されており,Webシステムの開発で使用されるケースが多く,さらに人工知能に関する環境が整っているため,機械学習やディープラーニングなど人工知能関連の開発に利用されることが多くなっています。後々,人工知能関連のプログラミングをやってみたいと考える初学者には特におすすめです。

    Pythonでは人工知能関連のライブラリ(ある目的のために機能をまとめたパッケージ)が多く用意されています。機械学習のライブラリの例として,数値計算を行うための定番ライブラリで機械学習だけでなく画像処理や音声処理にも活用できる「NumPy」,数表および時系列データ操作やデータ構造の変更などのテーブルデータを扱えるようにする「Pandas」,データをグラフや画像データとして表示するグラフ描画のための「Matplotlib」などがあります。

    また,ディープラーニングのライブラリの例として,ニューラルネットワークの最新ライブラリで大規模な数値計算のほか画像認識や自然言語処理など様々な数値演算が可能な「TensorFlow」,TensorFlowなどの他のディーブラーニングライブラリ上で動くよう作られ,ディープラーニングのベースとなる数学的理論の部分をゼロから開発せずとも簡単にニューラルネットワークを実装できる「Keras」,国産のライブラリでシンプルなネットワークから複雑なニューラルネットワークまで幅広く対応できる「Chainer」,Facebookの人工知能研究グループが初期に開発したライブラリでChainerやNumPyと似た構文で操作できて使いやすい「Pytorch」などがあります。


    【Pythonが学べる書籍】

  • Pythonによるアルゴリズム設計
  • コンピュータプログラミング - Pythonでアルゴリズムを実装しながら問題解決を行う -(電子情報通信レクチャーシリーズ B-7)
  • Pythonで始めるプログラミング入門

  • 【Pythonへの足がかりとなる書籍】

  • Python版 つくって学ぶProcessingプログラミング入門
  • micro:bitで学ぶプログラミング- ブロック型からJavaScriptそしてPythonへ -

  • 【Pythonを扱った書籍】

  • ディジタル音響信号処理入門 - Pythonによる自主演習 -(音響入門シリーズ B-4)
  • Pythonと実例で学ぶ微分方程式 - はりの方程式から感染症の数理モデルまで -
  • 入門 サイバーセキュリティ 理論と実験 - 暗号技術・ネットワークセキュリティ・ブロックチェーンからPython実験まで -
  • 電気回路の基礎
  • 作って学ぶニューラルネットワーク - 機械学習の基礎から追加学習まで -
  • Pythonで学ぶフーリエ解析と信号処理
  • 実践 Pythonによるデータベース入門- MySQL,MongoDB,CouchDBの基本操作からアプリプログラミングまで -
  • Pythonによるアルゴリズムとデータ構造の基礎
  • Pythonを使った光電磁場解析
  • フルスタックJavaScriptとPython機械学習ライブラリで実践するソーシャルビッグデータ- 基本概念・技術から収集・分析・可視化まで -
  • Pythonで学ぶ実践画像・音声処理入門
  • デザイン・コンピューティング入門 - Pythonによる建築の形態と機能の生成・分析・最適化 -
  • Pythonで体験する 深層学習 - Caffe,Theano,Chainer,TensorFlow -
  • はじめての音響数値シミュレーション プログラミングガイド



  •  Julia


    売れ行き好調!! 好評価レビュー続々!!


    1から始める Juliaプログラミング

    進藤 裕之 奈良先端科学技術大学院大助教・MatBrain(株)代表取締役 著
    佐藤 建太 理化学研究所 著


    Juliaは,アメリカのマサチューセッツ工科大学(MIT)で開発された新しいプログラミング言語で,その最大の特徴は,簡潔な文法と高速な実行速度が両立している点にあります。この点を上記著者は「Pythonのように書けて,Cのように動く」と形容しています。

    Juliaはまだ体系的に解説された日本語の資料が乏しいのが実情です。そのなかで発行されたのが本書籍であり,Julia初学者に向けた最適な解説書となっています。

    Pythonを使っていて,数値計算や機械学習などの科学技術計算の実行速度の面で満足しておらず,より高速に行いたいと考える技術者・研究者にはピッタリの内容です。

    また,はじめてプログラミングとしてPythonやMATLABで科学技術計算に取り組もうと考えている方にとっても持っていて損は無い一冊です。


    【Juliaが学べる書籍】

  • 1から始める Juliaプログラミング
  • 【Juliaを扱った書籍】

  • Juliaによる数理最適化



  •  R


    Rは統計やデータ解析で利用されるプログラミング言語およびその開発環境です。Pythonとならび,機械学習やデータマイニングの現場でも活用されています。統計解析に特化したプログラミング言語であるため,JavaやPythonのような汎用性はありませんが,統計解析に関しては大変簡単なプログラムで行なえます。

    RではPythonでのライブラリにあたる「パッケージ」が存在し,機械学習に関連するパッケージも多く準備されています。


    【Rを扱った書籍】

  • 実データで体験するビッグデータ活用マーケティング・サイエンス- はじめてでもわかる「R」によるデータ分析 -
  • 計測のための統計(計測・制御テクノロジーシリーズ 4)
  • 入門 機械学習による異常検知 - Rによる実践ガイド -

  • 【RのパッケージJASP】

  • 研究に役立つ JASPによるデータ分析 - 頻度論的統計とベイズ統計を用いて -
  • 研究に役立つ JASPによる多変量解析 - 因子分析から構造方程式モデリングまで -



  •  MATLAB


    MATLABはMathWorks社が開発している数値解析ソフトウェアおよびその中で使うプログラミング言語です。企業や大学等へ導入されていることが多い有償ソフトです。もちろん,個人でも導入可能です。高度な数値解析やアルゴリズム開発,数値計算など様々な目的で使用されています。近年はIoTやディープラーニングの開発・研究現場でも多く使用されています。

    MATLABの特徴の一つとして,専門分野の詳しいことがわからなくてもなんとなく使ってみることができるという点があります。例えば行列演算やフーリエ変換の中身を理解せずとも利用できてしまいます。この点は若干の危うさをはらんではいるものの,思いついたことをとにかく実践してみるという点で大きなメリットがあるともいえます。

    MATLABでは「Simulink」というツールがあわせて利用できます。Simulinkはブロック線図で構成するシミュレータで,制御理論やディジタル信号処理の分野で多く使われています。具体的には,モビリティやロボットなどの制御アルゴリズム開発,ICの処理アルゴリズムの開発,通信システムの方式検討,画像補正・物体認識アルゴリズム開発などに利用されています。

    また,有償のMATLABではありますが,同様の無償ソフトとしてOctaveやScilab,FreeMatなどもよく知られています。


    【MATLABが学べる書籍】

  • MATLABではじめるプログラミング教室

  • 【MATLABを扱った書籍】

  • 英語で学ぶ フーリエ解析とその応用
  • 改訂 実習で学ぶ モデルベース開発 - 「モデル」を共通言語とするV字開発プロセス -
  • 電力系統のシステム制御工学 - システム数理とMATLABシミュレーション -(計測・制御セレクションシリーズ 4)
  • 英語で学ぶ 制御システム設計
  • 電磁波による生体内イメージング - 原理からMATLABを用いた数値解析まで -
  • 外乱オブザーバ(計測・制御セレクションシリーズ 2)
  • 線形システム同定の基礎 - 最小二乗推定と正則化の原理 -(次世代信号情報処理シリーズ 3)
  • いますぐ始める数理生命科学 - MATLABプログラミングからシミュレーションまで -
  • ひたすら楽して音響信号解析 - MATLABで学ぶ基礎理論と実装 -
  • 機械システム学のための数値計算法 - MATLAB版 -
  • MATLABで学ぶ実践画像・音声処理入門
  • ゼロからわかる回路シミュレータPSIM入門
  • MATLABで学ぶ生体信号処理
  • スパースモデリング- 基礎から動的システムへの応用 -
  • 実践ロバスト制御(システム制御工学シリーズ 11)
  • 音声音響インタフェース実践(メディア学大系 13)
  • MATLABによるシステムプログラミング - プロセス・ロボット・非線形システム制御からDCS構築まで -
  • FDTD法で視る音の世界 - DVD付 -(音響サイエンスシリーズ 14)
  • 自動車エンジンのモデリングと制御 - MATLABエンジンシミュレータCD-ROM付 -
  • MATLABによるディジタル無線通信技術

  • 【Octaveを扱った書籍】

  • 応力解析のための有限要素法理論とプログラム実装の基礎
  • モデリングとシミュレーション- Octaveによる算法 -
  • Linux数値計算ツール

  • 【Scilabを扱った書籍】

  • 高校数学でマスターする制御工学- 本質の理解からMat@Scilabによる実践まで -
  • 高校数学でマスターする現代制御とディジタル制御- 本質の理解からMat@Scilab による実践まで -
  • Linux数値計算ツール



  •  Processing


    プログラミングによる視覚的な表現(イメージの生成,アニメーション,インタラクション)を目的として開発されたプログラミング言語です。Javaをベースに,グラフィック機能に特化した言語となっています。必要最小限の記述で,グラフィックの描写はもちろん,ある程度の機能を持ったプログラムを作成できます。また,入力したプログラムをすぐに実行でき,結果をビジュアルに確認することができることも特徴です。

    学生やアーティスト,デザイナーなど,プログラミングが不慣れな方でも扱いやすく(学習しやすく),プログラミング言語の入門用としてもおすすめです。


    【Processingが学べる書籍】

  • Python版 つくって学ぶProcessingプログラミング入門
  • つくって学ぶProcessingプログラミング入門



  •  JavaScript


    JavaScriptは1990年代中頃に登場したスクリプト型言語です。Webページに組み込まれることにより,ブラウザ上で動きのある(インタラクティブ)な表現や操作が可能となります。すべてのブラウザと相性がよく,Webページを構成するすべてのオブジェクトを操作することができます。地球上のほぼ全てのWebサイトで使われており,私達がブラウザ上で行っていることは知らずしらずのうちにJavaScriptで処理されています。

    JavaScriptは初心者向けのプログラミング言語といわれています。ブラウザがあればどこでも動作し,プログラムがどのように動作しているのかが見えやすく,モチベーションにもつながります。また,あらゆるWebシステムの開発で必要となるので,JavaScriptを中心に勉強しなくとも,ある程度基本的な知識は身に着けておくことをおすすめします。他のWeb系言語(PHPなど)とあわせて習得してゆくとより世界が広がります。


    【JavaScriptが学べる書籍】

  • Webページ作成入門- HTML/CSS/JavaScriptの基礎 -

  • 【JavaScriptへの足がかりとなる書籍】

  • micro:bitで学ぶプログラミング- ブロック型からJavaScriptそしてPythonへ -

  • 【JavaScript関連書籍】

  • micro:bitで学ぶプログラミング- ブロック型からJavaScriptそしてPythonへ -
  • フルスタックJavaScriptとPython機械学習ライブラリで実践するソーシャルビッグデータ - 基本概念・技術から収集・分析・可視化まで -