はじめに
現在、少しまとまった時間をとれる状況です。そのあと、ストレスフルなサラリーマン人生が待っているんですけども。この時間をどのように有効に使うか考えました。
一つはブログの更新です。もう一つは、高校数学とプログラミングの勉強です。
自分を追い込むためにも、後者の学習経過をブログに残していこうと思います。
現在の数学とプログラミングのレベル
数学
高校生だったときは数学はさっぱりでした。そのあと、独学でなんとか、高校数学の基礎が分かる程度にはなりました。高校問題集の応用問題は全く解けないレベルです。
プログラミング
一応、大学で一般教養のようなレベルでは授業がありました。が、ほぼ独学です。
C言語は入門書は理解できますが、実用的なプルグラムが書けるレベルには至らず現在に至っています。代わりに、PerlとかRubyとかで簡単なマクロプログラムは書けます。
クラスとかあの辺りはRubyで勉強した口です。
JavaScriptも基本的な部分は理解してます。Emacs Lispなんかも頑張って勉強していた時期もありました。
アルゴリズムの本も読みました。「C言語による最新アルゴリズム事典」なんて本も読みました。あまり理解できませんでしたが。
ここ、数年はプログラミング熱は冷めていたのですが、AI界隈でディープラーニングが盛り上がっているのを横目に見ながら、一応、勉強はしておくか。とPythonのチュートリアルくらいは勉強しました。
昔のC言語を知っている人間からすると、Pythonは本当に勉強しやすいですね。出来ることも幅広いです。科学技術計算のライブラリも昔のフォートランのように充実しています。フォートラン触ったことないですけど。
Python学習環境について
開発環境を検討すると、Visual StudioとかEclipseとか色々あるんでしょうけれど、学習環境と言うことで考えると、僕の場合は、Anaconda 1択です。
Anacondaとは何かというと、Pythonの総合的なパッケージです。注意点としてPythonはPython2とPython3に分かれています。Anacondaも両方の版が準備されています。Python3の方が新しいです。今から勉強するのなら絶対にPython3です。
Anaconda は膨大なライブラリを内包しています。機械学習(AI)をやるにしろ科学技術計算にPythonを使うのにしろ、こいつを入れておけば問題ないです。
ライブラリだけでなく、「Jupyter Notebook」、「Spyder」という開発環境も入っています。僕は「Spyder」を使っています。Spyderには、プログラムを1行づつ打ち込むと即座に結果を画面に表示してくれる、インタープリターコンソールが付いています。エディタもデバッガもついています。現在、実行中のプログラムの変数を表示してくれる変数エクスプローラもついています。初学者が使うには十分すぎる環境が入っているように思います。
「Jupyter Notebook」は・・・・・・使ったことがないのでわかりません。ネットで見た限り使用している人の評価は高そうです。
インストール
Windows、Mac、Linux用のインストーラが準備されています。Windowsの場合(おそらくMacも)インストーラをクリック一発でインストール可能です。
文系プログラマーのためのPythonで学び直す高校数学
サブタイトルまんまの本です。高校数学の内容をPythonに計算させたり、グラフを描画したりしながら学習しましょうという本です。コンピュータで数学を扱うとはどういうことか、というのを実践的に教えてくれる内容になっています。
機械学習(AI)の勉強をするのに最低限必要な知識を網羅しようという内容のようにも思えます。本書だけでは足りないですけどね。
あと、昔、手計算でやっていたこと(僕はおそろしく苦手)をコンピュータで解かせるというのは単純に面白いです。
それと、プログラミムで凝ったことをしようとすると、結局のところ、数学の素養が無いと先に進めないです。
Pythonはプログラミング言語ではありますが、sympyというライブラリを使うことで、ほとんど数式をそのまま入力してコンピュータで解かせることが出来ます。一例をあげると、連立方程式の数式をほぼ、そのまま打ち込んで、Pythonに解かせることができます。
先ほど紹介した、「Spyder」や「Jupyter Notebook」を使えば、対話型の環境で簡単にグラフも描けます。
Pythonの1番簡単な入門書くらいの知識があれば本書の内容は理解できるように思いました。僕の場合、乏しい数学の知識が本書を理解していく上で足を引っ張っています。現在進行形で・・・・・・。
1章 コンピュータと数 2章 コンピュータと演算
1章ではコンピュータがどうやって数を扱っているのかを、2章ではコンピュータで演算させるとはどういうことなのかを基本的な部分から解説してくれます。
どちらかというとコンピュータの動作原理に踏みこんだ内容です。昔、C言語をかじった人ならすっと頭にはいるでしょうけれど、はじめてプログラミングに触れる人にはピンとこないかも知れません。
本のタイトル通りに、Pythonで高校数学を勉強したい数学をPythonで表現して問題を解かせたい人は3章から読んでも差し支えありません。
コメント