View on GitHub
これは、大学の学部二年生向けのプログラミングの講義ノートとして書かれたものである。講義の最初に30分程度説明をして、その後の60分実習をする形式とし、全部で14回の予定である。これまでプログラムをほとんどしたことがない学生を対象としている。Google Colabを使うことで環境構築をせず、ブラウザだけで実習形式で学ぶ。言語としてはPythonを用いるが、Pythonを学ぶことそのものを目的とせず、プログラミングの考え方や、計算機の仕組み、基本的なアルゴリズムの考え方などを学ぶことを目的とする。
- 講義スライド (「Pythonの概要とGoogle Colabの使い方」と共通)
- なぜPythonを学ぶのか。「プログラマ的」発想について。
- 講義スライド (「はじめに」と共通)
- Google Colabの使い方に慣れる
- Pythonに触れてみる
- 余談:タッチタイピングについて
- 講義スライド
- 組み込み型
- 関数の宣言と利用方法
- for文による繰り返し処理
- if文による条件分岐
- ニュートン法
- 余談:バグについて
- 講義スライド
- while文
- ループのスキップと脱出
- 関数
- スコープ
- ロジスティック写像
- Collatz問題
- 余談:数論について
- 講義スライド
- リスト
- タプル
- 値のコピーとリストのコピーの違い
- 参照の値渡し
- リスト内包表記
- コッホ曲線
- 余談:OSを作ってミュージシャンになった人
- 講義スライド
- 文字列処理
- 辞書
- 正規表現
- 形態素解析
- ワードクラウド
- 余談:国際化は難しい
- 講義スライド
- ファイルシステムについて
- ファイルの読み込み
- CSVファイルの扱い
- データ解析
- 余談:消えていくアイコンのオリジナルたち
- 講義スライド
- 再帰呼び出しとは
- 階段の登り方問題
- 再帰による迷路の解法
- 余談:進化するオセロAIを作った話
- 講義スライド
- オブジェクト指向とは?
- クラスとインスタンス
- オブジェクト指向プログラミングの実例
- 割り箸ゲーム
- 余談:心理的安全性について
- 講義スライド
- NumPyの使い方
- SciPyの使い方
- シュレーディンガー方程式と固有値問題
- 特異値分解と画像近似
- 余談:人外について
- 講義スライド
- コンピュータはなぜ動くのか?
- Pythonが動く仕組み
- 抽象構文木
- バイトコード
- 余談:機械がやるべきこと、やるべきでないこと
- 講義スライド
- 組み合わせ最適化問題
- 貪欲法
- 全探索
- メモ化再帰による動的計画法
- 余談:エレファントな解法
- 講義スライド
- モンテカルロ法
- 疑似乱数
- モンティ・ホール問題
- パーコレーション
- 余談:疑似乱数とゲーム
- 講義スライド
- 弾道計算
- 反応拡散方程式
- 余談:パーソナルスーパーコンピュータ
- 講義スライド
- 機械学習の概要
- 重回帰分析
- DCGAN
- 余談:AIに悪意はあるか
(Google Colabを使う場合は不要)
- Anacondaのインストール方法
- Pythonの実行方法
- Pythonを学ぶために
- プログラムを学ぶために
- 数学や科学について
- プロジェクトについて
Copyright (C) 2018-present Hiroshi Watanabe
この文章と絵(pptxファイルを含む)はクリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0)で提供する。ただし、answer.pdfについては全ての権利を著者と講談社が保持し、再配布を禁じる。
This article and pictures are licensed under a Creative Commons Attribution 4.0 International License except for answer.pdf. Do not redistribute answer.pdf.
本リポジトリに含まれるプログラムは、MITライセンスで提供する。
The source codes in this repository are licensed under the MIT License.
なお、HTML版の作成に際し、CSSとしてgithub-markdown-cssを利用しています。