python入門
このページは, 筑波大学生物資源学類「基礎数学」「実用解析I」の教材を元に作ったページです。(2018年度から開始; 随時改訂中)
概要
ここでは, 計算機プログラミングとそれに関する数学を学ぶ。機械学習(人工知能; AI)などの最新の情報処理技術を学ぶための基礎づくりである。
まず, Linuxという基本ソフト(OS)を学ぶ。次に, pythonというプログラミング言語を学ぶ。Linuxとpythonは, AI開発で大変よく使われるからである。最後に, pythonを使った数値計算(関数・行列)を学ぶ。
一般目標 (General Instructive Objectives: GIO): 機械学習(人工知能)を学ぶ準備のために, 計算機(Linux)とプログラミング(python)の初歩的なスキルを得る。
お薦めのテキスト:
- Linuxについて
- 奈佐原顕郎「入門者のLinux」講談社ブルーバックス ... 自著で恐縮だが, Linux初心者にはよいと思う。
- Pythonについて
- 森巧尚「Python1年生」翔泳社 ... 簡単。プログラミング初心者に良い。
- 柴田敦「みんなの Python」SBクリエイティブ ... 中くらいの難易度。私はこれが好き。バランスが良い。
- 柴田望洋 「新・明解Python入門」SBクリエイティブ ... 高い難易度。細かいこともきちんと書いてある。ちゃんと理解したい時に役立つ。
こころがまえ
- プログラミングはスマートなものではありません。泥臭いものです。初心者はもちろん, 上級者でも, ガンガン間違えるしガンガン失敗します。エラーがガンガン出ます。
- しかし, エラーがガンガン出るせいで, 自信が無くなっちゃうのでしょうか, 「自分はプログラミングに向いていない」とか言い出す人がいます。
- そんなにふうに, うまくいかない(エラーが出る)ことにいちいち失望したり凹んではダメです。すんなりとできない自分は駄目だと思っちゃうのは早とちりです。誰がやってもエラーはガンガン出るのです。それが普通なのです。打ってはエラー, 打ってはエラー, の繰り返しです。
- 諦めずに色々試すうちに工夫を覚えます。エラーがどういうときに出るかわかり始めます。みんなそうやって上達するのです。
- 受験慣れした人は「間違えることを恐れる」「正解をすぐに欲しがる」「正解は一つに決まると思っている」という傾向がありますが, これらはプログラミングの修得においてマイナスになります。プログラミングはガンガン間違えるし(むしろ間違えずに一発で動くのは奇跡), 正解は一つではないし, 自分でいろいろ試行錯誤して作っていくものです。裏を返せば, プログラミングを学ぶことで受験慣れを卒業するのです。
- 几帳面さが必要。特に言葉や記号を丁寧に扱おう。言葉や記号を雑に扱っていてはプログラミングはできない。プログラミング言語には記号ひとつひとつに意味があり, ちょっとでも間違えたら動かない。
- たとえばドットとコンマ, コロンとセミコロン, 大文字と小文字, スペースの有無, スペルの打ち間違い。こういう細かいところでミスを頻発すると疲弊する。
- 決まった「正解」があると思わない。プログラミングは「ひとつの目的にも多くのアプローチがある」もの。決まりきった答を探すのでなく, 自分で考え出す。
- 人に聞く。わからなくて煮詰まったときは, 人のアドバイスが劇的に事態を打開することがあります。
- 人に「答」を教わろうとしない。↑これと矛盾するようですが, あなたの組んだプログラムの正解はあなたが見つけるのです。
- 丸暗記しないでよい。プログラミングは暗記するものでなく言語です。使って慣れて理解していくもの。
- 粘り強くやる。粘り強さは決定的に重要です。組んだプログラムが一発で動くことはほとんどありません。動くまで頑張る・粘るのです。
- ものづくり(とプログラミング)では, 「動く」ことが正義です。「飛べない豚はただの豚」
Linuxの初歩
目標: 計算機OS (Linux)のGUIとCUIを適宜利用し, ディレクトリとファイルを作成・閲覧・編集できるようになる。
- Linux入門: 1 Unix, Linuxとは
- Linux入門: 2 LinuxのGUI
- Linux入門: 3 LinuxのCUI
- Linux入門: 4 打ち込みを助けてくれる便利な機能
- Linux入門: 5 ディレクトリ / パス
- Linux入門: 6 Linuxでのファイル操作
- Linux入門: 7 シェルスクリプト入門
メモ: LinuxもPythonもRも, 「オープンソース」です。オープンソースの開発者がどういう人たちで, 何を考えているのか, こちらの記事を読んでみて下さい!!
pythonの初歩
目標: プログラミング言語pythonがどういうものか(オープンソース, オブジェクト指向)基本的な操作(実行環境, スクリプト, 変数, リスト, ループ)を理解し, 自力で扱えるようになる。
- python入門: 1. python初経験!
- python入門: 2. pythonの概要
- python入門: 3. データの型
- python入門: 4. 演算
- python入門: 5. リスト
- python入門: 6. 繰り返し処理
- python入門: 7. インデントが大事!
- python入門: 8. オブジェクト指向とは
おまけ: pythonの魔法のコマンドはhelp()。なんかわからないオブジェクトがあったら, help(なんか)と打つと, それに関する詳細が表示される。
pythonのモジュールと関数
目標: pythonのnumpyモジュールやmatplotlibモジュールを用いて, 数学処理・グラフ描画ができるようになる。
pythonで行列計算・画像
目標: pythonで行列(画像)を扱うスキルを学び, それを用いて, 空間的な数学処理ができるようになる。
pythonで微分・積分・微分方程式
発展課題
- python入門: 血液型の人口動態シミュレーション(2020年度 基礎数学II 期末課題)
- python入門: 遺伝的浮動のシミュレーション
Keyword(s):
References:[SideMenu] [機械学習入門: レポート課題1] [機械学習入門: 概要] [とらりもんHOME]