Pythonによるプログラミング入門 東京大学教養学部テキスト (電子書籍)

電子書籍

アルゴリズムと情報科学の基礎を学ぶ

著者
森畑 明昌
ジャンル
自然科学  > 情報科学
発売日
2019/09/25
ISBN
978-4-13-062458-9
判型・ページ数
A5 ・ 240ページ
定価
2,420円(本体2,200円+税)
在庫
在庫あり
内容紹介
目次
著者紹介
Pythonを用いて、プログラミングの初歩からデータ処理やシミュレーションの基礎までを学べるテキストである。読み進めるうちに、おのずと情報科学の基礎が身につくよう工夫されている。プログラミング初学者から、情報系技術に関わることになった社会人まで広く役立つ。

※著者の森畑明昌先生によるサポートページはこちら → http://www.graco.c.u-tokyo.ac.jp/labs/morihata/textbook/python_textbook.htm
まえがき

第1章 はじめに
 1.1 なぜプログラミングを学ぶのか
 1.2 プログラミングの学び方
 1.3 プログラミングを通して見えてくる世界
 1.4 本書の構成
 1.5 参考文献

第2章 まずは使ってみる
 2.1 プログラミング環境の準備と起動
  2.1.1 Pythonプログラミング環境の入手  
  2.1.2 プログラム開発環境の準備と起動
  2.1.3 プログラミング環境の起動と終了
  2.1.4 本書で用いるライブラリのインストール
 2.2 簡単な計算をしてみる
 2.3 整数と小数
 2.4 変数
 2.5 コメント
 2.6 入力のルールとエラー
 2.7 学んだことのまとめ
 練習問題

第3章 プログラムを作ろう
 3.1 プログラムの読み込み
 3.2 関数
 3.3 print関数
 3.4 インデント
 3.5 ライブラリ
 3.6 【発展】値を返さない関数
 3.7 【発展】変数のスコープ
 3.8 学んだことのまとめ
 練習問題

第4章 データ処理の基本:成績の集計
 4.1 配列:多くのデータをひとまとめに
 4.2 点数の総和と平均
 4.3 テストによる結果の確認と可視化
 4.4 【発展】for文についてもう少し
 4.5 分散の計算と誤差
 4.6 最高点の計算
 4.7 さまざまなif文
 4.8 真偽値
 4.9 さまざまな試験科目がある場合
 4.10 文字列
 4.11 【発展】型
 4.12 学んだことのまとめ
 練習問題

第5章 ライフゲーム
 5.1 ライフゲームとは
 5.2 ライフゲームのプログラム
  5.2.1 2次元配列による盤面の構成 
  5.2.2 周囲の生命を数える
  5.2.3 各セルの次世代の計算 
  5.2.4 次世代の盤面の計算 
  5.2.5 複数世代のシミュレーションを行う 
 5.3 ライフゲームの可視化
 5.4 モジュール化
 5.5 いろいろな絵を描いてみよう
 5.6 【発展】配列のさまざまな機能
 5.7 【発展】配列とコピー
 練習問題

第6章 放物運動のシミュレーション
 6.1 運動方程式と差分化
 6.2 放物運動シミュレーションプログラムの作成
 6.3 放物運動シミュレーションプログラムの改善
  6.3.1 可視化による正しさの認識 
  6.3.2 モジュール化再訪 
 6.4 【発展】オブジェクト指向
 6.5 breakを伴う繰返し
 練習問題

幕間:テストとデバッグの基本

第7章 p値の計算
 7.1 p値とは
 7.2 p値を計算するプログラム
 7.3 組合せ数のさまざまな計算方法
  7.3.1 階乗を使う方法
  7.3.2 パスカルの三角形を使う方法
  7.3.3 漸化式を使う方法 
 7.4 それぞれの方法の実行時間
 7.5 アルゴリズムの計算量とO記法
 7.6 再帰についてもう少し
 7.7 シミュレーションによる確率の計算
 7.8 モンテカルロ法
 7.9 擬似乱数とその要件
 7.10 【発展】擬似乱数を使ったプログラムの正しさ
 練習問題

第8章 大規模データの検索
 8.1 線形探索と二分探索
 8.2 ヒストグラムの計算
 8.3 併合整列法
 8.4 【発展】整列のアルゴリズムと空間計算量
 8.5 さまざまなデータ構造
 8.6 文章の分析を少しだけ
 練習問題

第9章 データからの情報抽出:回帰分析
 9.1 回帰分析とは
 9.2 最小2乗線形回帰分析の原理
 9.3 連立1次方程式の求解アルゴリズム
 9.4 連立1次方程式求解アルゴリズムの正しさ
 9.5 数値誤差とその理由
 9.6 ピボット選択による改善
 練習問題

第10章 拡散のシミュレーション
 10.1 拡散方程式
 10.2 拡散方程式の差分化
 10.3 拡散シミュレーションのプログラム
 10.4 拡散シミュレーションの安定性
 10.5 さまざまな差分化手法とその精度
 10.6 誤差を伴うプログラムのテスト
 練習問題

第11章 高度な検索:ゲノムを解析する
 11.1 特定の塩基を豊富に含む部位の検索
 11.2 検索の高速化
 11.3 動的計画法とメモ化
 11.4 2種類のゲノムの共通部分を探す
 練習問題

第12章 データを分類する
 12.1 クラスタリング
 12.2 クラスタリングの単純なアルゴリズム
 12.3 k-means法
 12.4 k-means法の初期値依存性
 12.5 コンピュータの限界

付録A Python言語の簡易ガイド
 A.1 言語の基本的な構造
 A.2 名前
 A.3 文
 A.4 式
 A.5 基本的な値と型
 A.6 ライブラリ
 A.7 エラーと例外

付録B itaライブラリガイド
 B.1 練習問題の解答確認プログラムexcheck
 B.2 itaライブラリ関数の詳細
 B.3 itaライブラリの実現


Introduction to Programming and Algorithms Using Python
Akimasa MORIHATA
森畑 明昌
東京大学大学院総合文化研究科准教授
Pythonによるプログラミング入門 東京大学教養学部テキスト
ご注文
Amazon Kindle
楽天Kobo