Logical Thinking and Programming by Tatsuo Minohara
2008 Spring


主題と目標/授業の手法など

Java言語の習得を通じて、論理思考を養うことと、コンピュータ上で行ないたいことをプログラミング言語として記述できるようになることを授業の目標としています。標準のJava言語をそのまま用いるのではなく、講師が記述したタートルグラフィックスのライブラリを用意して、Java言語特有の記述しにくい部分を回避して、なるべく論理思考をプログラムとして記述できるように集中できる形で授業を展開して行きます。

授業では、講義よりもなるべく実習時間を多くして、「コンピュータ上でソフトウェアを制作する過程」を経験してもらいます。また、2回に1回ぐらいの割合で授業課題を提出してもらいますので、課題作成用に自分のコンピュータを持っていた方が良いでしょう。授業の中では、プログラムの開発環境も含めて、自分のコンピュータにインストールするための方法なども含めて説明します。自分のコンピュータで課題作成をして提出できるようにするためです。もちろん、利用するソフトウェアはWindows版も用意しますが、できれば実習室と同じMacintoshの方が好ましいかと思います。

授業では、これらの授業課題と共に中間の制作課題、および最終のプロジェクト作成課題を行なってもらいます。すべての課題は一人一人の個人が行なう形になります。グループワークはありません。また、課題の制作などに付随して、グラフィックスのソフトウェアの使い方や音声関係のソフトウェアの使い方も授業の中で扱っていきます。

課題提出時などに授業でわかりにくかった部分をWebの教科書の内容で反映して、次回の授業で復習するような形になります。Java言語は英語に近い形で記述しますので、英語の単語に抵抗がないようにしておいてください。使う単語はある程度限られていますので、英語力は自信がなくても大丈夫です。

学生が利用する予定の機材/ソフト等

JDK, BlueJ, SeaShore, OpenOffice(すべてフリーソフトウェア)など

教材・参考文献

共通教材の教科書は初回配布する場合は、配布致します。
教科書は、Webページで記述して行きます。
参考書は、講師執筆の以下の本があります:MacでJava! -Macに付属のXcodeで始めるJavaプログラミング入門,東京,ラトルズ,2005年,363p.

履修上の注意

このクラスは、Java言語だけを学ぶクラスです。他のクラスとは、前半部分でまったく内容が異なりますので、そのことに注意してください。テキストベースのプログラミングしか行ないません。シラバスを読んで授業計画の違いを理解し、単に時間割の都合だけでこのクラスを履修しないでください。また、初回の授業に出席する必要があるので注意して下さい。授業回によっては、授業が少し後に延びる可能性もあります。

提出課題・試験・成績評価の方法など

出席,課題の提出,中間制作課題の提出,最終プロジェクト課題の提出から総合的に評価します。

履修登録

授業のクラス登録についてはこちらからお願いします。

授業内容

1. 環境の導入とプログラミングについて

・授業全体の説明
・Mac OS Xの使い方、ファイル操作、環境の設定仕方など
・スクリプトによる英語での記述に慣れる
・Javaのプログラミングの環境のインストール(ライブラリなど)

2. 順次と式の評価、変数

・プログラミング環境の使い方の復習
・Javaの記号の特徴について考える
・タートルグラフィックスを使ってタートルを動かす
・ユーザの入力に応じて計算をする
・変数という概念について考える
  ・変数の値の変更(値指定)
  ・変数の値の変更(自己参照による)
  ・変数を使った場合分け変数を使って計算の途中結果を保持する
・式の記述の仕方
・ブロックという構造で順次実行をまとめていく
・フローチャートを使って命令の実行順序を整理する

3. 条件分岐

・条件によって処理の流れを変えることについて扱う
・条件分岐のいくつかの記述の仕方について学ぶ
・分岐構造と順次構造の組み合わせについて考える
・条件分岐の入れ子(ネスト)構造について考える

4. 繰返しと論理式

・タートルグラフィックスと変数を用いて繰返しを記述することを学ぶ
・繰返しを使うとどのようにプログラムができることが増えるか考える
・論理式を使って、複雑な繰返しや条件分岐を記述していく
・整数の式特有の特徴を学ぶ

5. プログラムの部品化

・メソッド定義を通して機能に意味付けする
・ブロックに名前を与えて特定の機能を意味付けできることを学ぶ
・タートルグラフィックスを使い、特定の機能を分割して記述できることを考える
・メソッドに引数を与えて、機能のバリエーションを与えることを学ぶ

6. 中間課題制作

・作品制作を通して
  ・自分の作品をどのように実現するのかを考える
  ・作品作成にに必要なアルゴリズムを自分で考え、記述する

7. 実数と主要構文

・実数に特徴的なコンピュータの挙動(誤差など)について学ぶ
・誤差を考慮したプログラムの記述の仕方について考える
・繰返しや条件分岐の別の記述の仕方について学ぶ

8. 文字列

・文字列の扱いについて学ぶ
・文字列を使って、文を解析することを試してみる

9. 配列とアルゴリズム

・配列を使って複数のデータを管理できることを学ぶ
・配列と繰返しを使ってプログラムを記述する方法を学ぶ
・配列を使って、アルゴリズムを考える

10. アニメーション

・繰返しを使ってアニメーションを作ってみる
・画像やいろいろな形のタートルを作る
・テキストや画像や自分で作ったプログラムなど、様々なものをオブジェクトとして扱う
・画像の作り方についてソフトウェアを使って学ぶ

11. マウスやキーボードの入力

・アニメーションにおいて繰返しの中でマウスの座標を読み取ったり、キーボードの入力を考慮する
・座標や入力値に応じて、処理を変えることを学ぶ
・イベントに応じて、プログラムの構造を分けて行くことを学ぶ

12. オブジェクトの配列

・複数のタートル(オブジェクト)を使ってプログラムを記述することを学ぶ
・文字列の配列と繰返しを使って、画像ファイルなどを複数管理できることを学ぶ

13. 作品制作

・作品制作を通して…
  ・自分の作品の企画を考える
  ・作品に必要なアルゴリズムを自分で考え、記述する

A1. 作品発表会

・他の人がどんな作品を作ったのかを鑑賞する
・他の人の作品を評価する