つくって学ぶProcessingプログラミング入門

つくって学ぶProcessingプログラミング入門

Processingを教材として,論理的思考による問題解決力を養うことを目的とした。

ジャンル
発行年月日
2017/02/10
判型
B5
ページ数
176ページ
ISBN
978-4-339-02872-0
  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介

Processingは簡単な記述である程度の機能を持ったプログラムが作成できるので,初学者に適したプログラム言語である。本書はそのProcessingを教材として,論理的思考による問題解決力を養うことを目的とした。

本書は,プログラミング初学者を対象として,「物事を論理的に考えて課題を解決する練習」をプログラミングの学習を通して実践するためのものです。近年,論理的思考力を伸ばすことを期待して,プログラミング教育を小学校でも始めようとする試みがあります。これまでのプログラミング教育は,コンピュータにさせたいことを記述するための文法知識やプログラミングのテクニックが中心に置かれていました。しかし,論理的思考による問題解決のトレーニングを目的とするプログラミング教育のためには,それに適した教材が必要と感じ本書を著しました。

本書では,Processingというプログラミング言語を使用してプログラムの作成を行っていきます。Processingは,必要最小限の記述である程度の機能を持つプログラムを作成でき,入力したプログラムをすぐに実行できます。グラフィックス機能・マウスやキーボード入力インターフェースに優れ,プログラムを実行した結果をビジュアルに確認することが簡単にできます。「このように記述すれば,このような結果が得られる」という論理的な筋道を簡単に表現し,その動作の確認が行えるので,論理的思考力をトレーニングする教材として最適と考えています。本書は,理系の大学初年度程度の知識を持つ,初めてプログラミングに取り組む学生を対象としていますが,高校生でもある程度理解できる内容になっています。学習者には,プログラムに興味を持ちプログラミングの面白さを知ってもらいたいと考えています。そこで,プログラミングの課題を,学生が興味が持てる内容であり,かつ,これまで中学・高校を通して学んできた知識を活用する機会を与えるようなものにしました。例えば三角関数などこれまでなんの役に立つのだと思いながら勉強してきた数学の知識が,図形を描画するという課題に直面したときに,実際に有用なことをプログラムの作成を通して実感できます。また,英語で表示されるエラーメッセージも,慣れればどうということもないことに気がつきます。思い通り動かないプログラムと悪戦苦闘しながらも,完成したときの達成感は大きいものです。

1章から7章までで,基本的なプログラミングの技術の最低限の要素を学びます。初学者を対象としていますので,はじめはステップバイステップで丁寧にプログラムの書き方を説明していきます。なお,新しい要素や概念は,必要に応じてその都度説明します。2章では,Processingを使用して簡単な図形を描くプログラムを作成します。3章では,変数と繰り返し文の使用方法,4章では条件文の書き方を学びます。5章では,マウス・キーボードからの入力によってプログラムの振る舞いを変える方法を学びます。これによって,ゲームなどの会話的な処理ができるようになります。6章では,関数の作成方法と使い方,7章では,配列の作り方と使い方を学びます。ここまでで,多くのプログラミング言語で共通に現れる,プログラミングの基本的な技術を学びます。例題に沿って,実際にプログラムを入力して動作確認をしていってください。

8章以降は,それぞれがプロジェクトになっています。プロジェクトで作成するプログラムは,行数は短いけれどもそれなりの複雑さを持ったプログラムです。プログラムは穴埋め形式になっており,処理の流れを考えながらプログラムを入力するという作業で進めます。基本的な機能を実装・動作させた後は,各自自分のアイディアを追加機能として組み込んでください。8章では時計を,9章ではストップウォッチを作成します。10章では,音楽ファイルを読み込んでそれを映像として表現するサウンドビジュアライザを作成します。11章では,アクションゲームの作成に挑戦します。最後の12章では,迷路ゲームを作成します。乱数を使用して迷路を生成し,その上でゲームを行うプログラムを作ります。さらに,コンピュータにその迷路を解かせるプログラムを作成します。最後には,それを3次元的な表示が行えるように拡張します。学習者の皆さんには,それぞれのプログラミングの課題の実現を通して,論理的に考える習慣をつけ,タイピングに慣れ,英語や数学の知識を活用できるようになることを期待します。なお,本書の執筆分担は1~3章(石畑),4,5章(菊池),6章(長名,伊藤),7~9章(長名),10章(石畑,伊藤),11章(菊池,長名),12章(石畑,長名)
となっています。また,図面がカラーのものについては,コロナ社のWebページからダウンロードできます。

本書は,Windows10をプラットフォームとして使用し,この上で動作確認を行っています。使用しているProcsessingのバージョンは3.1.1です。ProcessingやWindowsは,今後バージョンアップの可能性があります。内容について万全を期して制作しましたが,万一誤りや不備がありましたら出版元までご連絡ください。なお,本書の内容の運用による結果の影響について,一切の責任を負いかねます。最後に,本書執筆のきっかけを与えていただいた東京工科大学コンピュータサイエンス学部亀田学部長に,また執筆にあたり種々のサポートをいただいたコロナ社に深謝いたします。

2016年12月長名優子,石畑宏明,菊池眞之,伊藤雅仁

1. Processingを始めるための準備
1.1 Processingのインストール
1.2 動作確認
1.3 設定とメニューの使い方

2. 初めてのProcessing
2.1 画像データ
2.2 プログラミング
 2.2.1 最初のプログラム
 2.2.2 図形の塗りつぶし
 2.2.3 線の色の指定
 2.2.4 背景
章末問題

3. 変数と繰り返し文
3.1 変数
 3.1.1 変数の宣言
 3.1.2 変数を使用した演算
3.2 処理を繰り返す
 3.2.1 繰り返し文(for文)
 3.2.2 for文のネスト(入れ子)
3.3 システム変数
章末問題

4. 条件分岐とマウスカーソルの座標に応じた処理
4.1 条件文
 4.1.1 条件式
 4.1.2 if文,if∼else文,if∼elseif∼else文
 4.1.3 switch文
 4.1.4 defaultの省略されたswitch文
 4.1.5 switch文のif文による書き換え
4.2 スタティックモードとアクティブモード
4.3 マウスカーソルの座標に応じた処理
章末問題

5. マウス・キーボードによる操作
5.1 マウスの動きに反応するプログラム
 5.1.1 変数mousePressed
 5.1.2 システム変数mouseButton
 5.1.3 関数mousePressed()
5.2 キーボード入力に反応するプログラム
 5.2.1 システム変数keyPressedとkey
 5.2.2 関数keyPressed()
 5.2.3 押されたキーの判定
章末問題

6. 関数
6.1 関数とは
6.2 引数も戻り値もない関数
6.3 引数のある関数
6.4 戻り値のある関数
章末問題

7. 配列
7.1 配列
7.2 多次元(2次元)配列
7.3 配列を利用したプログラムの例
章末問題

8. つくってみよう:時計
8.1 時刻情報の取得
8.2 アナログ時計
 8.2.1 ウィンドウの作成と時計の外側の円の描画
 8.2.2 目盛の描画
 8.2.3 秒針の描画
 8.2.4 分針の描画
 8.2.5 時針の描画
8.3 ディジタル時計
 8.3.1 六角形を描画する関数drawHex()の作成
 8.3.2 七つの六角形で数字を描画する関数sevenSegment()の作成(1)
 8.3.3 七つの六角形で数字を描画する関数sevenSegment()の作成(2)
 8.3.4 時刻の描画

9. つくってみよう:ストップウォッチ
9.1 実行開始からの経過時間の取得
9.2 一時停止が可能なストップウォッチ
 9.2.1 ストップボタンでの一時停止
 9.2.2 リセットボタンの追加
9.3 ラップタイムの取得が可能なストップウォッチ

10. つくってみよう:サウンドビジュアライザ
10.1 音
 10.1.1 音とは
 10.1.2 PCM
10.2 minimライブラリ
10.3 音声信号の波形の表示(1)
10.4 音声信号の波形の表示(2)
10.5 音声信号の線の長さによる表現
10.6 音声信号の色による表現

11. つくってみよう:アクションゲーム
11.1 ゲームの作成手順
11.2 自キャラの基本動作の処理
11.3 床に関する処理
11.4 敵キャラに関する処理

12. つくってみよう:迷路
12.1 迷路の設定・表示
 12.1.1 盤の作成
 12.1.2 盤の初期化
 12.1.3 盤の表示
12.2 簡単な迷路の生成
12.3 キーボード入力でコマを操作するゲームの実現
 12.3.1 グローバル変数の宣言とゲームの初期化
 12.3.2 キーボード入力に対する処理
 12.3.3 コマやプレイ情報の表示およびゲームの終了
12.4 乱数を用いた迷路の自動生成
12.5 マウスでコマを操作するゲームの実現
12.6 迷路の自動的な探索
12.7 迷路の3D化
 12.7.1 迷路の3D表示
 12.7.2 キーボードによる操作

付録本書で使用している関数・システム変数一覧
索引

長名 優子(オサナ ユウコ)

ニューラルネットワークなどの研究に従事

石畑 宏明(イシハタ ヒロアキ)

菊池 眞之(キクチ マサユキ)

脳の情報処理の研究に従事

伊藤 雅仁(イトウ マサヒト)




★本書でつくって学ぶ動画★

『パラパラ漫画のようなプログラム』



『マウスカーソルの位置に応じて上下左右に向きを変えるようなプログラム』



『ディジタル時計』



『アクションゲーム』




『迷路』




新社会人向け書籍・新入生向け書籍





関連資料(一般)

関連資料(採用者向け)

関連資料一覧

教科書採用者向け 関連資料申込
章末問題解答(pdf)
穴埋め問題解答(pde)