初めてのコンピュータサイエンス

[cover photo]
TOPICS
Programming
発行年月日
PRINT LENGTH
356
ISBN
978-4-87311-463-7
原書
Practical Programming
FORMAT
PDF
Ebook
2,640円
Ebookを購入する

本書は、現実世界の問題を解決するプログラムを開発、利用する方法を説明しながら、コンピュータとプログラミングの基礎を解説します。例題のほとんどは科学技術分野のものですが、考え方はあらゆる分野に応用できます。また、プログラミングについての系統的、方法論的な考え方について、特に複雑な問題を単純な問題に分割し、それら単純な問題の解決方法を組み合わせて複雑なアプリケーションを作る手順を学びます。
本書を読み終えるころには、プロフェッショナルなプログラマが物事をどのようにとらえて発想するのか、つまりプロフェッショナルなプログラマのように考える方法を手に入れられるでしょう。

目次

1章 イントロダクション
    1.1 プログラムとプログラミング
    1.2 若干の定義
    1.3 インストールすべきもの
    1.4 担当講師の方々へ
    1.5 まとめ
2章 Python入門
    2.1 全体の構図
    2.2 式
        2.2.1 int型
        2.2.2 float型
    2.3 型とは何か
        2.3.1 有限精度
        2.3.2 演算子の優先順位
    2.4 変数と代入文
        2.4.1 複合演算子
    2.5 ものごとがうまくいかないとき
    2.6 関数の基礎
        2.6.1 ローカル変数
    2.7 組み込み関数
    2.8 コーディングスタイルについて
    2.9 まとめ
    2.10 練習問題
3章 文字列
    3.1 文字列
    3.2 エスケープ文字
    3.3 マルチライン文字列
    3.4 print
    3.5 整形されたprint
    3.6 ユーザー入力
    3.7 まとめ
    3.8 練習問題
4章 モジュール
    4.1 モジュールのインポート
    4.2 独自モジュールの定義
        4.2.1 インポートのときに行われていること
        4.2.2 __main__の使い方
        4.2.3 ヘルプの準備
    4.3 オブジェクトとメソッド
        4.3.1 イメージ
    4.4 ピクセルと色
    4.5 テスト
    4.6 コーディングスタイルについて
    4.7 まとめ
    4.8 練習問題
5章 リスト
    5.1 リストと添字
        5.1.1 空リスト
        5.1.2 異種要素を格納できるリスト
    5.2 リストの書き換え
    5.3 リストの組み込み関数
    5.4 リストの要素の操作
        5.4.1 ループのネスト
    5.5 スライシング
    5.6 エイリアシング
        5.6.1 関数呼び出しにおけるエイリアシング
    5.7 リストメソッド
    5.8 リストのネスト
    5.9 その他のシーケンス
    5.10 リストとしてのファイル
        5.10.1 コマンドライン引数
    5.11 コメント
    5.12 まとめ
    5.13 練習問題
6章 条件分岐
    6.1 ブール論理
        6.1.1 ブール論理の演算子
        6.1.2 関係演算子
        6.1.3 比較の結合
        6.1.4 ブール演算子による整数、浮動小数点数、文字列の操作
    6.2 if文
        6.2.1 if文のネスト
    6.3 条件の保存
    6.4 まとめ
    6.5 練習問題
7章 反復
    7.1 カウンタ付きループ
        7.1.1 数値の範囲
        7.1.2 enumerate関数
        7.1.3 ループのネスト、再び
        7.1.4 複数のオブジェクトを対象とするループ処理
        7.1.5 不規則リスト
    7.2 whileループ
        7.2.1 無限ループ
        7.2.2 コールスタック
    7.3 ユーザー入力ループ
    7.4 ループの制御
        7.4.1 break文
        7.4.2 continue文
    7.5 コーディングスタイルについて
    7.6 まとめ
    7.7 練習問題
8章 ファイル処理
    8.1 1行に1レコード
        8.1.1 ファイルの読み出し
        8.1.2 インターネット上のファイル
        8.1.3 ヘッダの読み飛ばし
        8.1.4 値の欠落があるデータ
        8.1.5 空白で区切られたデータ
    8.2 複数のフィールドを持つレコード
    8.3 位置データ
    8.4 複数行レコード
    8.5 先読み
    8.6 ファイルへの書き込み
    8.7 まとめ
    8.8 練習問題
9章 集合と辞書
    9.1 集合
        9.1.1 集合の演算
        9.1.2 北極圏の鳥類
        9.1.3 集合の記憶構造
    9.2 辞書
        9.2.1 更新とメンバテスト
        9.2.2 ループ
        9.2.3 辞書のメソッド
        9.2.4 辞書のサンプル
    9.3 辞書の反転
    9.4 まとめ
    9.5 練習問題
10章 アルゴリズム
    10.1 探索
        10.1.1 探索、削除、探索
        10.1.2 ソート、最小値判定、添字取得
        10.1.3 リスト要素の反復処理
    10.2 処理時間の計測
    10.3 まとめ
    10.4 練習問題
11章 探索とソート
    11.1 線形探索
        11.1.1 基本線形探索
        11.1.2 forループによる線形探索
        11.1.3 番兵を使った探索
        11.1.4 探索の速度の測定方法
        11.1.5 線形探索の実行時間
    11.2 二分探索
        11.2.1 二分探索の実行時間
        11.2.2 組み込みの二分探索
    11.3 ソート
        11.3.1 選択ソート
        11.3.2 挿入ソート
        11.3.3 パフォーマンス
    11.4 もっと効率のよいソートアルゴリズム
        11.4.1 最初の試み
    11.5 マージソート:Nlog2Nアルゴリズム
        11.5.1 2つのソート済みリストのマージ
        11.5.2 mergesort
        11.5.3 マージソートの分析
    11.6 まとめ
    11.7 練習問題
12章 各種ツール
    12.1 関数について
        12.1.1 デフォルト引数
        12.1.2 可変長引数リスト
        12.1.3 名前付き引数
    12.2 例外
        12.2.1 tryとexcept
        12.2.2 例外オブジェクト
        12.2.3 関数と例外
        12.2.4 例外の生成
        12.2.5 例外のコーディングスタイル
    12.3 テスト
        12.3.1 用語法
        12.3.2 単体テスト
        12.3.3 独立性
        12.3.4 限界
        12.3.5 テスト駆動開発
    12.4 デバッグ
    12.5 パターン
        12.5.1 固定値
        12.5.2 ステッパとカウンタ
        12.5.3 最良ホルダ
        12.5.4 最新ホルダ
        12.5.5 コンテナ
        12.5.6 ギャザラ
        12.5.7 一時変数
        12.5.8 片道フラグ
    12.6 まとめ
    12.7 練習問題
13章 オブジェクト指向プログラミング
    13.1 Colorクラス
        13.1.1 メソッド
        13.1.2 コンストラクタ
    13.2 特殊メソッド
    13.3 dirとhelpについてさらに
    13.4 OO理論入門
        13.4.1 カプセル化
        13.4.2 ポリモーフィズム
        13.4.3 継承
    13.5 もっと長いサンプル
        13.5.1 Atomクラス
        13.5.2 Moleculeクラス
    13.6 まとめ
    13.7 練習問題
14章 GUI
    14.1 Tkinterモジュール
    14.2 GUIの基本ツール
        14.2.1 ミュータブルな変数
        14.2.2 Frame
        14.2.3 Entry
    14.3 モデル/ビュー/コントローラ
        14.3.1 ラムダ関数
    14.4 ウィジェットのスタイル
        14.4.1 フォント
        14.4.2 色
        14.4.3 レイアウト
    14.5 その他のウィジェット
        14.5.1 Text
        14.5.2 Checkbutton
        14.5.3 Menu
    14.6 オブジェクト指向GUI
    14.7 まとめ
    14.8 練習問題
15章 データベース
    15.1 全体の構図
    15.2 第1歩
        15.2.1 変更の保存
    15.3 データの検索
        15.3.1 クエリーの条件
    15.4 更新と削除
    15.5 トランザクション
    15.6 欠けたデータを表すNULL
    15.7 JOINを使った表の結合
    15.8 キーと制約
    15.9 高度な機能
        15.9.1 集計関数
        15.9.2 グループ化
        15.9.3 自己結合
        15.9.4 クエリーのネスト
    15.10 まとめ
    15.11 練習問題
付録A 参考文献
索引