• Stars
    star
    297
  • Rank 140,075 (Top 3 %)
  • Language
    HTML
  • License
    Creative Commons ...
  • Created almost 6 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ゼロから学ぶPython

ゼロから学ぶPython

View on GitHub

この講義ノートについて

これは、大学の学部二年生向けのプログラミングの講義ノートとして書かれたものである。講義の最初に30分程度説明をして、その後の60分実習をする形式とし、全部で14回の予定である。これまでプログラムをほとんどしたことがない学生を対象としている。Google Colabを使うことで環境構築をせず、ブラウザだけで実習形式で学ぶ。言語としてはPythonを用いるが、Pythonを学ぶことそのものを目的とせず、プログラミングの考え方や、計算機の仕組み、基本的なアルゴリズムの考え方などを学ぶことを目的とする。

なお、この講義ノートを元にした書籍が出版されている。

はじめに

  • 講義スライド (「Pythonの概要とGoogle Colabの使い方」と共通)
  • なぜPythonを学ぶのか。「プログラマ的」発想について。

Pythonの概要とGoogle Colabの使い方

  • 講義スライド (「はじめに」と共通)
  • Google Colabの使い方に慣れる
  • Pythonに触れてみる
  • 余談:タッチタイピングについて

条件分岐と繰り返し処理

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

関数とスコープ

  • 講義スライド
  • while文
  • ループのスキップと脱出
  • 関数
  • スコープ
  • ロジスティック写像
  • Collatz問題
  • 余談:数論について

リストやタプルの使い方

  • 講義スライド
  • リスト
  • タプル
  • 値のコピーとリストのコピーの違い
  • 参照の値渡し
  • リスト内包表記
  • コッホ曲線
  • 余談:OSを作ってミュージシャンになった人

文字列処理

  • 講義スライド
  • 文字列処理
  • 辞書
  • 正規表現
  • 形態素解析
  • ワードクラウド
  • 余談:国際化は難しい

ファイル操作

  • 講義スライド
  • ファイルシステムについて
  • ファイルの読み込み
  • CSVファイルの扱い
  • データ解析
  • 余談:消えていくアイコンのオリジナルたち

再帰呼び出し

  • 講義スライド
  • 再帰呼び出しとは
  • 階段の登り方問題
  • 再帰による迷路の解法
  • 余談:進化するオセロAIを作った話

クラスとオブジェクト指向

  • 講義スライド
  • オブジェクト指向とは?
  • クラスとインスタンス
  • オブジェクト指向プログラミングの実例
  • 割り箸ゲーム
  • 余談:心理的安全性について

NumPyとSciPyの使い方

  • 講義スライド
  • NumPyの使い方
  • SciPyの使い方
  • シュレーディンガー方程式と固有値問題
  • 特異値分解と画像近似
  • 余談:人外について

Pythonが動く仕組み

  • 講義スライド
  • コンピュータはなぜ動くのか?
  • Pythonが動く仕組み
  • 抽象構文木
  • バイトコード
  • 余談:機械がやるべきこと、やるべきでないこと

動的計画法

  • 講義スライド
  • 組み合わせ最適化問題
  • 貪欲法
  • 全探索
  • メモ化再帰による動的計画法
  • 余談:エレファントな解法

乱数を使ったプログラム

  • 講義スライド
  • モンテカルロ法
  • 疑似乱数
  • モンティ・ホール問題
  • パーコレーション
  • 余談:疑似乱数とゲーム

数値シミュレーション

  • 講義スライド
  • 弾道計算
  • 反応拡散方程式
  • 余談:パーソナルスーパーコンピュータ

簡単な機械学習

  • 講義スライド
  • 機械学習の概要
  • 重回帰分析
  • DCGAN
  • 余談:AIに悪意はあるか

略解と解説

  • 各章の問題の略解と解説

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

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

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

参考文献

  • Pythonを学ぶために
  • プログラムを学ぶために
  • 数学や科学について
  • プロジェクトについて

正誤表

書籍版「ゼロから学ぶPythonプログラミング」の正誤表です。ウェブ版では全て修正されています。

ライセンス

Copyright (C) 2018-present 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を利用しています。

More Repositories

1

sevendayshpc

一週間でなれる!スパコンプログラマ
HTML
693
star
2

github

GitHub演習
HTML
587
star
3

yaml_cv

YAMLによる履歴書作成スクリプト
Ruby
369
star
4

python2cpp

Pythonを知っている人向けのC++入門
C++
139
star
5

lab_startup

研究室のPCのセットアップ資料
HTML
95
star
6

simulation_engineering

数値シミュレーションの基礎
C++
47
star
7

xbyak_aarch64_handson

Tutorials for ARM SVE on Docker
Dockerfile
41
star
8

md2019

分子動力学法の理論と実装(集中講義ノート)
HTML
29
star
9

classical_mechanics

解析力学の講義ノート
HTML
25
star
10

param

Single-header C++ library for parameter file
C++
16
star
11

pptxgrep

Find keywords in pptx files.
D
11
star
12

mdstep

分子動力学法ステップ・バイ・ステップ
C++
10
star
13

hooi_sample

Comparison between HOSVD and HOOI
Python
9
star
14

grep_pptx

Grep in Microsoft Powerpoint (pptx) files
Ruby
8
star
15

zenn-content

Zenn.devの記事置き場
Jupyter Notebook
8
star
16

cps

Command Processor Scheduler
C++
6
star
17

rbs

Random Bit String Generator
C++
6
star
18

nc_breakout

Breakout implemented with using ncurses
C++
6
star
19

notes

ノート置き場
TeX
5
star
20

highschool2019

塾内高校生のための夏休み研究体験(2019年)
Jupyter Notebook
5
star
21

lammps_collision

Sample file for LAMMPS
Python
5
star
22

thermostats

Ergodicity of a thermostated harmonic oscillator
C++
5
star
23

master_thesis

修士論文テンプレート
TeX
5
star
24

physmath

物理数学
HTML
4
star
25

painful_maze

Maze a maze with painfully long path.
Ruby
4
star
26

fdps_sample

FDPSのサンプル
C++
4
star
27

graduate_thesis

卒業論文のテンプレート
TeX
4
star
28

minlex

Show the minlex canonical order form of the given Sudoku grid.
C++
4
star
29

radical_cjk_convert

康煕部首→CJK漢字コンバータ
JavaScript
3
star
30

randomsampling

Random Sampling Methods
C++
3
star
31

paraview-sample

Sample files using ParaView
Python
3
star
32

mnist_dump

Get MNIST data and export them as png files
Python
3
star
33

wavsample

Sample file to make PCM file (WAV file)
C++
3
star
34

md2docx

Sample code to convert Markdown to Docx
Ruby
3
star
35

ov_model

Optimal Velocity Model Online Simulator
JavaScript
3
star
36

diffusion_sample

LAMMPSを使った拡散現象の計算サンプル
Python
3
star
37

stringtext

分子動力学法で一瞬文字が浮かび上がるアニメーションを作る
Ruby
2
star
38

rprof

SPARC64(TM) VIIIfx/IXfx Profile Analyzer
Ruby
2
star
39

json_sample

PythonからJSONを読み込むサンプル
Python
2
star
40

indirect_reciprocity

協調行動のシミュレーション
Python
2
star
41

simple_tfgan

simple_tfgan
Python
2
star
42

fftw_sample

A sample code for calculating autocorrelation function of Brownian motion using FFTW.
C++
2
star
43

osmokumoku

OS自作もくもく会
C
2
star
44

log

Log
HTML
2
star
45

mnist_check

MNIST Check by JavaScript
C++
2
star
46

lj_simd

SIMDization for Calculating Force of Lennard-Jones Potential
C++
2
star
47

sudoku

Sudoku Puzzle Maker and Solver
C++
2
star
48

yamagata2022

集中講義の講義ノート
C++
2
star
49

makelatexdiff

latexdiffをMakefileから使うサンプル
TeX
2
star
50

povray-sample

Sample files using POV-Ray
POV-Ray SDL
2
star
51

mpistream

MPI Wrapper of std::cout
C++
2
star
52

tp_scheduler

Trivial Parallelization Scheduler
C++
1
star
53

daimyo_svd

大名行列を特異値分解してみる
HTML
1
star
54

yahoo_news_rss

Yahoo NEWSのRSSを読み込むスクリプト
Python
1
star
55

issp_handson

物性研スパコンハンズオン
Python
1
star
56

aarch64env

Aarch64の開発環境
Dockerfile
1
star
57

haar2d

Example of Multiresolution Analysis using Haar Wavelet(2D)
Ruby
1
star
58

memo_map

unordered_map for memoization
C++
1
star
59

image_svd

Low-rank approximation of Image with Singular-Value-Decomposition
Python
1
star
60

tictactoe

Full search of TicTacToe and its value function
Ruby
1
star
61

stopwatch

Single-header C++ Stopwatch
C++
1
star
62

pandoc_highlight

Pandoc Syntax Highlighting Color Schemes Examples
Makefile
1
star
63

sudoku_report

ドキュメンタリー風、数独プロジェクトの記録
1
star
64

waribashi

Visualizing Waribasih Game
Python
1
star
65

clustering_maze

Making Maze with Union-find algorithm
Python
1
star
66

cpp2numpy

C++からNumPy用のデータを保存してPythonから読み込むサンプル
C++
1
star
67

mc

Sample files of Monte Carlo Simulation
C++
1
star
68

xy_sw_bench

古典モンテカルロ法の実行時間テスト
C++
1
star
69

lammps_position

A Sample File for LAMMPS
Python
1
star
70

force_simd

SIMDized codes for 3D-Lennard-Jones potential
C++
1
star
71

my_first_ml

はじめての機械学習(自分でデータセットを作る編)のサンプルコード
Python
1
star
72

blank_pdf

A blank pdf file licensed under CC0
Ruby
1
star
73

lammps_milkcrown

ミルククラウン作成用スクリプト
Python
1
star
74

intel_real_distribution

Weird optimization behavior of the Intel Comipler
C++
1
star
75

winbitmap

A single file C++ library to generate Microsoft Windows Bitmap files with minimal dependencies.
C++
1
star
76

yamlslim

YAMLとSlimで論文リストを作る
HTML
1
star
77

make_tutorial

GNU Makeのハンズオン用のリポジトリ
Python
1
star
78

qiita_sync

Qiitaの記事をGitHubローカル用にSyncする
Ruby
1
star
79

dotfiles

dotfiles
Vim Script
1
star
80

hito

人と人が支え合った時のストレス
C++
1
star
81

sve_intrinsic_samples

ARM SVE examples
Dockerfile
1
star
82

mdacp

MDACP - Molecular Dynamics code for Avogadro Challenge Project
C++
1
star
83

sdouble

Single-header C++ library for double with error propagation
C++
1
star
84

lie-trotter-sample

Sample Code of Lie–Trotter product formula
Jupyter Notebook
1
star
85

fashion_mnist_dump

Get Fashion-MNIST data and export them as png files.
Python
1
star