kaityo256/python_zero


ゼロから学ぶPython

https://kaityo256.github.io/python_zero/

License: CC-BY-4.0

Language: HTML


ゼロから学ぶPython

リポジトリ(kaityo256/python_zero)

HTML版

この記事について

プログラム初学者がPythonを学ぶための資料にする予定。

目的

Pythonをゼロから学び、簡単な機械学習ができるようになることを目指す。Google Colabを使うことで環境構築をせず、ブラウザだけで実習形式で学ぶ。読者としてはプログラムをほとんど触ったことがない学生を想定する。

はじめに

  • なぜPythonを学ぶのか。「プログラマ的」発想について。

Pythonのインストールと実行方法

(Google Colabを使う場合は不要)

  • Anacondaのインストール方法
  • Pythonの実行方法

Pythonの概要とGoogle Colabの使い方 (ほぼ完成)

  • Google Colabの使い方に慣れる
  • Pythonに触れてみる
  • 余談:タッチタイピングについて

条件分岐と繰り返し処理1 (ほぼ完成)

  • 組み込み型
  • 関数の宣言と利用方法
  • for文による繰り返し処理
  • if文による条件分岐
  • ニュートン法
  • 余談:バグについて

条件分岐と繰り返し処理2 (ほぼ完成)

  • while文
  • ループのスキップと脱出
  • 関数
  • スコープ
  • Collatz問題
  • 余談:数論について

リストやタプルの使い方 (ほぼ完成)

  • リスト
  • タプル
  • リストのメモリ上の表現
  • 参照の値渡し
  • コッホ曲線の描画
  • リスト内包表記
  • 余談:名前解決とプログラミング言語の個性

文字列処理

  • 文字列処理
  • 辞書
  • 正規表現
  • 形態素解析
  • ワードクラウド
  • 余談:機械がやるべきこと、やるべきでないこと

再帰処理

  • 再帰呼び出しとは
  • 状態遷移図の可視化
  • 木構造の編集
  • 余談:エレファントな解法

クラスとオブジェクト指向 (ほぼ完成)

  • オブジェクト指向とは?
  • 割り箸ゲーム
  • 余談:オブジェクト指向プログラミングの意義

Numpyの使い方

  • Numpyとは?
  • SVDを用いた画像圧縮
  • 余談:ライブラリについて

Pythonが動く仕組み

  • コンピュータはなぜ動くのか?
  • Pythonが動く仕組み
  • 抽象構文木
  • dis.dis
  • 仮想マシンハック
  • 余談:機械がやるべきこと、やるべきでないこと

計算量とアルゴリズム1

TODO: 構成を変更中。内容を目次に追随させること

  • 計算のオーダー(ランダウ表記)
  • 分割統治法

動的計画法

  • 組み合わせ最適化問題
  • 動的計画法の要点
  • 貪欲法
  • メモ化再帰
  • 漸化式とループ
  • 余談:人外について

乱数を使ったプログラム (ほぼ完成)

  • 疑似乱数とモンテカルロ法
  • 余談:疑似乱数とゲーム
  • モンティ・ホール問題
  • パーコレーション
  • 余談:確率の難しさ

数値シミュレーション (ほぼ完成)

  • 空気抵抗がない場合の弾道計算
  • 空気抵抗がある場合の弾道計算
  • 反応拡散方程式(Gray-Scott Model)
  • 余談:パーソナルスーパーコンピュータ

簡単な機械学習

  • 機械学習の概要について学ぶ
  • GANを体験する

参考文献

昨今、ウェブに大量に情報があるため、本など買わなくてもプログラムは独習できると思うかもしれない。しかし、ある程度わかってから見ると、いかにウェブに転がっている情報がいい加減で、薄いかがわかるようになる。特にプログラム言語に関しては誤り、誤解、意味のない文章が大量にあり、それらガラクタをかき分けて重要な情報にたどり着く努力をするよりは、さっさと数千円〜1万円ほど払って古典的名著を購入したほうが早いし有用だ。もちろん本にも当たり外れはあるが、以下は筆者が良いと思った本なので、一つの参考にしてほしい。

初学者向け

まったくPythonなどを触ったことが無い人が読む本。

中級者向け

Pythonでだいたいプログラムが書けるようになった、もしくは複数のプログラム言語が書けるようになってきた人が読む本。

上級者向け

上級者といっても、別にプログラムがバリバリかけるという意味ではなく、たとえばプログラム書いてご飯を食べるようになっているとか、そういう感じの人が読むと面白いかな、と思う本。

  • 闘うプログラマー G パスカル ザカリー (著), 山岡 洋一 (翻訳) マイクロソフトでWindows NTを開発した伝説のプログラマー「デイヴィッド・カトラー」の伝記のような本。Windows NTは、文字通りマイクロソフトの命運をかけたプロジェクトだった。「デスマーチ」と気軽に呼ぶのもおぞましい強行軍の描写に、僕は最初吐きそうになった。複数人である程度大きなプロジェクトに携わったことがある人は必読。

その他参考にしたサイトや書籍

プログラムについて書いた記事や、本稿の題材(元ネタ)となった数学や科学の本など。

プログラムについて。

数学や科学について。

ライセンス

Copyright (C) 2018-2019 Hiroshi Watanabe

この文章と絵(pptxファイルを含む)はクリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0) で提供する。

This article and pictures are licensed under a Creative Commons Attribution 4.0 International License.

本リポジトリに含まれるプログラムは、MITライセンスで提供する。

The source codes in this repository are licensed under the MIT License.

なお、HTML版の作成に際し、CSSとしてgithub-markdown-cssを利用しています。

Project Statistics

Sourcerank 7
Repository Size 23.7 MB
Stars 34
Forks 4
Watchers 7
Open issues 1
Dependencies 0
Contributors 1
Tags 0
Created
Last updated
Last pushed

Top Contributors See all

Hiroshi Watanabe

Something wrong with this page? Make a suggestion

Last synced: 2019-06-22 00:49:38 UTC

Login to resync this repository