とらりもんHOME  Index  Search  Changes  Login

とらりもん - python入門 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

 ここでは, 計算機プログラミングとそれに関する数学を学ぶ。機械学習(人工知能; AI)などの最新の情報処理技術を学ぶための基礎づくりである。このページは, 筑波大学生物資源学類「基礎数学」「実用解析I」の教材を元に作ったページですページである。(2018年度から開始; 随時改訂中)

!概要
 ここでは, 計算機プログラミングとそれに関する数学を学ぶ。機械学習(人工知能; AI)などの最新の情報処理技術を学ぶための基礎づくりである。

一般目標 (General Instructive Objectives: GIO): 機械学習(人工知能)を学ぶ準備のために, 計算機(Linux)とプログラミング(python)の初歩的なスキルを得る。

!お薦めのテキスト:
* ウェブ教材: https://www.python.jp/train/index.html
* Pythonについて
** 森巧尚「Python1年生」翔泳社 ... 簡単。プログラミング初心者に良い。
** 柴田敦「みんなの Python」SBクリエイティブ ... 中くらいの難易度。私はこれが好き。バランスが良い。
** 柴田望洋 「新・明解Python入門」SBクリエイティブ ... 高い難易度。細かいこともきちんと書いてある。ちゃんと理解したい時に役立つ。

!こころがまえ
* プログラミングはスマートなものではなく泥臭いです。初心者はもちろん, 上級者でもガンガン間違えるしガンガン失敗します。エラーがガンガン出ます。
* だからうまくいかなくても「自分はプログラミングに向いていない」とか自信を無くしてはダメです。誰がやっても間違うのが普通です。打ってはエラー, 打ってはエラー, の繰り返しです。
* 諦めずに色々試すうちに工夫を覚えます。エラーがどういうときに出るかわかり始めます。みんなそうやって上達するのです。
* 受験慣れした人は「間違えることを恐れる」「正解をすぐに欲しがる」「正解は一つに決まると思っている」という傾向がありますが, これらはプログラミングではマイナスです。プログラミングはガンガン間違えるし(むしろ間違えずに一発で動くのは奇跡), 正解は一つではないし(同じような機能のプログラムも, 組む人によって千差万別), 自分で試行錯誤して作っていくものです。むしろプログラミングを学ぶことで受験慣れを卒業し, 一歩「大人」になるのです。
* 几帳面さが必要です。言葉や記号を丁寧に扱いましょう。プログラミング言語には記号ひとつひとつに意味があり, ちょっとでも間違えたら動きません。
** ドットとコンマの区別
** コロンとセミコロンの区別
** 大文字と小文字の区別
** スペースの有無
** スペルの打ち間違い
こういう細かいところでミスを頻発すると疲弊します。
* 決まった「正解」があると思わないようにしましょう。プログラミングは「ひとつの目的にも多くのアプローチがある」ものです。決まりきった答を探すのでなく, 自分で考え, 見つけるのです。「ちゃんと動く」ことが正義であり正解です。
* 人に聞こう。わからなくて煮詰まったときは, 人のアドバイスが劇的に事態を打開することがあります。聞き方に注意しよう!→ https://qiita.com/seki_uk/items/4001423b3cd3db0dada7
* 人に「答」を教わろうとしない。↑これと矛盾するようですが, あなたの組んだプログラムの正解はあなたが見つけるのです。
* ChatGPTに聞くのも良いかもしれません。
* 丸暗記しないでよい。プログラミングは暗記するものでなく言語です。使って慣れて理解していくもの。
* 粘り強くやろう。粘り強さは決定的に重要です。組んだプログラムが一発で動くことはほとんどありません。動くまで頑張る・粘るのです。

メモ: PythonもRも, 「オープンソース」です。オープンソースの開発者がどういう人たちで, 何を考えているのか, [[こちらの記事|https://business.nikkeibp.co.jp/atcl/report/16/122700258/010900004/?P=1]]を読んでみて下さい!!

!!pythonの初歩
目標: プログラミング言語pythonがどういうものか(オープンソース, オブジェクト指向)基本的な操作(実行環境, スクリプト, 変数, リスト, ループ)を理解し, 自力で扱えるようになる。
* [[python入門: 1. python初経験!]]
* [[python入門: 2. pythonの概要]]
* [[python入門: 3. データの型]]
* [[python入門: 4. 演算]]
* [[python入門: 5. リスト]]
* [[python入門: 6. 繰り返し処理]]
* [[python入門: 7. インデントが大事!]]
* [[python入門: 8. オブジェクト指向とは]]
[[レポート課題|レポート課題: pythonの初歩]]

おまけ: pythonの魔法のコマンドはhelp()。なんかわからないオブジェクトがあったら, help(なんか)と打つと, それに関する詳細が表示される。

!!pythonのモジュールと関数
目標: pythonのnumpyモジュールやmatplotlibモジュールを用いて, 数学処理・グラフ描画ができるようになる。
* [[python入門: 9. numpyモジュール]]
* [[python入門: 10. 数列の和]]
* [[python入門: 11. 関数]]
* [[python入門: 12. matplotlib.pyplotモジュール]]
[[レポート課題|レポート課題: pythonのモジュールと関数]]

!!pythonで行列計算・画像
目標: pythonで行列(画像)を扱うスキルを学び, それを用いて, 空間的な数学処理ができるようになる。
* [[python入門: 13. 行列をいじってみよう!]]
* [[python入門: 14. 2変数関数と曲面]]
* [[python入門: 15. 複素関数]]
[[レポート課題|レポート課題: pythonで行列計算・画像]]

!!pythonで微分・積分・微分方程式
* [[python入門: 16. 数値微分]]
* [[python入門: 17. 数値積分]]
* [[python入門: 18. Euler法で微分方程式を解こう]]

!!発展課題
* [[python入門: 血液型の人口動態シミュレーション]](2020年度 基礎数学II 期末課題)
* [[python入門: 遺伝的浮動のシミュレーション]]

!お薦めテキスト:
* ウェブ教材: https://www.python.jp/train/index.html
* Pythonについて
** 森巧尚「Python1年生」翔泳社 ... 簡単。プログラミング初心者に良い。
** 柴田敦「みんなの Python」SBクリエイティブ ... 中くらいの難易度。私はこれが好き。バランスが良い。
** 柴田望洋 「新・明解Python入門」SBクリエイティブ ... 高い難易度。細かいこともきちんと書いてある。ちゃんと理解したい時に役立つ。

!こころがまえ
* プログラミングはスマートなものではなく泥臭いです。初心者はもちろん, 上級者でもガンガン間違えるしガンガン失敗します。エラーがガンガン出ます。
* だからうまくいかなくても「自分はプログラミングに向いていない」とか自信を無くしてはダメです。誰がやっても間違うのが普通です。打ってはエラー, 打ってはエラー, の繰り返しです。
* 諦めずに色々試すうちに工夫を覚えます。エラーがどういうときに出るかわかり始めます。みんなそうやって上達するのです。
* 受験慣れした人は「間違えることを恐れる」「正解をすぐに欲しがる」「正解は一つに決まると思っている」という傾向がありますが, これらはプログラミングではマイナスです。プログラミングはガンガン間違えるし(むしろ間違えずに一発で動くのは奇跡), 正解は一つではないし(同じような機能のプログラムも, 組む人によって千差万別), 自分で試行錯誤して作っていくものです。むしろプログラミングを学ぶことで受験慣れを卒業し, 一歩「大人」になるのです。
* 几帳面さが必要です。言葉や記号を丁寧に扱いましょう。プログラミング言語には記号ひとつひとつに意味があり, ちょっとでも間違えたら動きません。
** ドットとコンマの区別
** コロンとセミコロンの区別
** 大文字と小文字の区別
** スペースの有無
** スペルの打ち間違い
こういう細かいところでミスを頻発すると疲弊します。
* 決まった「正解」があると思わないようにしましょう。プログラミングは「ひとつの目的にも多くのアプローチがある」ものです。決まりきった答を探すのでなく, 自分で考え, 見つけるのです。「ちゃんと動く」ことが正義であり正解です。
* 人に聞こう。わからなくて煮詰まったときは, 人のアドバイスが劇的に事態を打開することがあります。聞き方に注意しよう!→ https://qiita.com/seki_uk/items/4001423b3cd3db0dada7
* 人に「答」を教わろうとしない。↑これと矛盾するようですが, あなたの組んだプログラムの正解はあなたが見つけるのです。
* ChatGPTに聞くのも良いかもしれません。
* 丸暗記しないでよい。プログラミングは暗記するものでなく言語です。使って慣れて理解していくもの。
* 粘り強くやろう。粘り強さは決定的に重要です。組んだプログラムが一発で動くことはほとんどありません。動くまで頑張る・粘るのです。

メモ: PythonもRも, 「オープンソース」です。オープンソースの開発者がどういう人たちで, 何を考えているのか, [[こちらの記事|https://business.nikkeibp.co.jp/atcl/report/16/122700258/010900004/?P=1]]を読んでみて下さい!!