シラバス
科目名 応用プログラミング(Java)
英語科目 ナンバリング Dlab204
開講期 秋学期 開講学部等 情報理工学部 配当年次 2年次 単位数 2単位
教員名 青木 淳
 ※履修条件,配当年次等の詳細は履修要項をご確認ください。
授業概要/Course outline  
【実務経験のある教員による授業科目】
 この授業は、実務経験が豊富な教員が担当する。国内および国外でのコンピュータ・ネットワーク・システム開
発の実務経験があり、特にプログラミングやソフトウェアデザインそしてプロジェクトマネジメントの経験が著し
く、スーパープログラマ(伝説のプログラマ)という異名を持つ。日本のオブジェクト指向プログラミングおよび
オブジェクト指向分析設計の創成期を作った。その経験をふんだんに活かしながら行う本格的なプログラミングの
授業である。
 情報系の産業において主流となっているオブジェクト指向プログラミングをJavaを用いて学ぶ。Javaは去る1995
年にデビューして以来、世界中に広がっており、Java無しのプログラミングの世界を、もはや想定できなくなって
しまった。Javaを知らずして使えずして世に出ることは、決まりが悪くて面目が立たないであろう。1980年に提唱
されたオブジェクト指向についても同様である。世の中に必要とされているプログラミングに関する知識と技術を、
実際に動作する例題プログラムをふんだんに用いながら解題してゆく。
 この授業では、スマートフォンのようなICT(情報通信技術)を活用しながら行い、授業に援用するスライドな
どの資料もすべて事前に電子的に配付される。それらの資料へのメモ書きなども電子的に(ペーパーレスで)行う
ことを強く推奨する。また、講義を視聴する(座学)だけでなく、触れる・試すなど、五感を使って参加・体験を
促進する実習(ハンズオン方式のアクティブラーニング)を含む。
 基礎プログラミング演習を通して手続き的なプログラムを作ることに先に慣れてしまうため、発展プログラミン
グ演習で垣間見るオブジェクト指向プログラミングに馴染めなかった学生も多いのではなかろうか。演習の不足や
消化不良そして不完全燃焼を解消し、情報産業界で活躍するための知識と技術を育て養おうではないか。
 この授業ではオブジェクト指向プログラミングのスタイルを徹底的に身につける。しかも手続きプログラミング
のスタイルも場合に応じで使いこなせるように配慮する。プログラミングに対する苦手意識を払拭し、いずれのプ
ログラミングのスタイルも楽しく愉快に駆使できる高みをめざす。
 同時にプログラミングの厳しさや険しさの自覚を働きかける。人命にかかわるような、社会基盤にかかわるよう
な、ミッションクリティカルと呼ばれる極めて重要なプログラムが多く存在する。けっして不具合を出して(バグっ
て)はならないプログラムである。そのようなプログラムの開発に長く(25年間以上も)携わってきた講師自らの
実務経験を基にして、その勘どころ(知識・技術・技能の一端)を伝えて(垣間見せて)ゆく。
  ■前もってどのような科目の履修が望ましいか:
   ・発展プログラミング演習
   ・ソフトウェア工学I
   ・アルゴリズムとデータ構造
   ・ヒューマンインタフェース
  ■今後どのような科目を履修するのに役立つか:
   ・プロジェクト演習
   ・ソフトウェア工学II
   ・コンピュータグラフィックス
   ・プログラミング言語
   ・分散処理システム
   ・言語オートマトン
   ・オペレーティングシステム
授業内容・授業計画/Course description・plan  
 この授業では「まず、やってみる、それから、学ぶ」をライトモチーフにしながら、以下のようなテーマに沿っ
て進めてゆく。ただし授業の進行状況に応じて変更することがある。
[第01回]
テーマ:Javaとは…(What is Java?:発展プログラミング演習を礎にして…)
テーマ:プログラミング環境(Programming Environment)
[第02回]
テーマ:パッケージ(完全限定クラス名:Javaプログラムの在り処:名前空間)
テーマ:JARファイル(複数のクラスファイルを渡す場合の注意点と問題点)
[第03回]
テーマ:アルゴリズムとプログラム設計(解法手順からプログラム設計=プログラミングの前段)
テーマ:オブジェクト指向プログラミングの変数(「int value = 100;」と「Integer value = 100;」の相異)
[第04回]
テーマ:フィールドとメソッド(「変数≒フィールド」と「手段≒メソッド」)
テーマ:配列:複数のものをまとめて記憶(様々なものを配列にすると…:配列の正体を知ろう)
[第05回]
テーマ:プログラム設計とプログラム実装(プログラミング=プログラムを設計し実装すること)
テーマ:文字列操作(String Manipulation:連結・比較・分割)
[第06回]
テーマ:ジェネリクス(総称性:Generics、型を変数にする:型変数、仮型引数)
テーマ:継承と集約(委譲)(Inheritance and Aggregation (Delegation))
[第07回]
テーマ:配列リスト,スタックとキュー(ArrayList, Stack and Queue)
テーマ:列挙型を定義して活用する方法(Enum Type)
[第08回]
テーマ:同一性と同値性(Identity and Equivalence)
テーマ:オブジェクトの並び替え(Collections.sort(…)とComparableインタフェース)
[第09回]
テーマ:オブジェクトの複製(Cloneableインタフェースの実装)
テーマ:辞書:マップとはキーと値のペアの集まり(Dictionary:Table:HashMap)
[第10回]
テーマ:外部プログラムの実行(ProcessBuilderとProcess)
テーマ:システムプロパティの獲得(JVMの環境とOSの環境)
[第11回]
テーマ:ファイルの読み書き(TXTファイルやCSVファイルを対象にして、読んで、並び替えを施し、そして書く)
テーマ:Javaオブジェクト自体の読み書き(シリアライズ=直列化と言語化=リスト表現やXML表現)
[第12回]
テーマ:Webページのダウンロード(Webブラウザで表示)
テーマ:画像ファイルのダウンロード(Webブラウザで表示)
テーマ:デザインパターンの活用(オブザーバパターン=MVC:Model-View-Controller)
テーマ:画像ファイルのダウンロード&表示(MVCを用いて描画表示)
[第13回]
テーマ:自作ライブラリの活用法(cons.jar, pane.jar, utility.jar)
テーマ:2次元グラフィックス:タートルグラフィックス(亀を歩かせて線描を行う)
[第14回]
テーマ:スレッドによる並行処理プログラミング(Thread of Concurrent Execution)
テーマ:サーバ&クライアントのプログラミング(Server and Client)
[第15回]
テーマ:3次元グラフィックス(Java bindings to the native OpenGL 3D graphics)
[予備群]
 授業の進行状況に余裕があるならば、以下のテーマ群から適宜選定し、授業に組み入れることにする。
テーマ:プログラミング過程(Programming Process)
テーマ:リファクタリング行解(Refactoring Process)
テーマ:Unicodeエスケープ形式(ケネディの名言を用いてnative2asciiを作ってみる)
テーマ:誤差が出ない演算(BigDecimalを用いたテーラー展開法やニュートン法)
テーマ:引数が不定個となる可変引数の活用(formatやprintfのメソッドはどうやってできているのか)
テーマ:アサーション(表明:Assertion)
テーマ:テストと品質(JUnit and FindBugs)
テーマ:頒布(はんぷ:広く配るため)のしつらえ(世界へとリリースするための構成法・ライセンス・など)
準備学習等(事前・事後学習)/Preparation and assignments  
 授業内容が実際のソフトウェアの開発・運用・保守の現場(ソフトウェア開発会社)でのプログラミングを想定
している。そのため、学問的なことばかりではなく、作法(さほう・さくほうの両方)や書法(プログラムやドキュ
メントの著し方)なども範疇に入り、たいへん多くのことに気を配らなければならない。事前に関係するところを
調べて授業に臨み、その後、講義で学んだ知識を整理し、さらに理解を深めるために宿題レポートを真剣に行い、
理解(りげ)から行解(ぎょうげ)に変えてほしい。また、数々の宿題には複数の配付資料やプログラムが関連す
る。したがって、それらの整頓も大切である。予習と復習を合わせて4時間ほどの学修をしなければ、授業に追随
することが難しくなる。
[第01回]
テーマ:Javaとは…(What is Java?:発展プログラミング演習を礎にして…)
テーマ:プログラミング環境(Programming Environment)
[事前学習]必ずシラバスを読んで初回の授業に臨むこと。配付資料を教員ページ(リポジトリ)またはmoodleペー
ジからダウンロード(チェックアウト)し、それを良く読み、事前に関係するところを調べて、疑問点を明らかに
して授業に臨むこと。約1時間ほどの学修(予習)を必要とする。
[事後学習]授業で学んだ知識内容と配布資料にメモした事柄を整理し復習すること。特に、Javaプログラム(*.
java)を(*.classに)コンパイルして、JARファイルを作り、アプリケーションに仕上げる方法を、きちんと身に
着けること。さらに理解を深めるため、授業中に指示される宿題レポートに果敢に取り組み、〆切までにmoodleを
介して提出すること。およそ3時間ほどの学修(復習)を必要とする。
[第02回]
テーマ:パッケージ(完全限定クラス名:Javaプログラムの在り処:名前空間)
テーマ:JARファイル(複数のクラスファイルを渡す場合の注意点と問題点)
[事前学習]Java標準ライブラリのソースコードが提供されているので、どこにあるのかを調べて、ファイルシス
テムの階層ディレクトリ構造との関係を想定して授業に臨むこと。前回の内容を問う授業冒頭の短時間の小テスト
に備えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]授業中に開示された「Example」が「ExampleA」「ExampleB」「ExampleC」「ExampleD」「ExampleE」
「ExampleF」と変遷してゆく過程を、コードリーディングを介して追体験し、設計図にまとめ上げること。それら
を宿題レポートに記述して、〆切までにmoodleを介して提出すること。およそ3時間ほどの学修(復習)を必要と
する。
[第03回]
テーマ:アルゴリズムとプログラム設計(解法手順からプログラム設計=プログラミングの前段)
テーマ:オブジェクト指向プログラミングの変数(「int value = 100;」と「Integer value = 100;」の相異)
[事前学習]プログラミングの前段として、解法手順であるアルゴリズムからプログラム設計に関わる事柄を調査
して授業に臨むこと。加えて、「int」よりも「Integer」が好まれること、なぜ二つが存在するのかを、できるか
ぎり考えておくこと。そして、前回の内容を問う授業冒頭の短時間の小テストに備えること。約1時間ほどの学修
(予習)を必要とする。
[事後学習]アルゴリズムからプログラム設計へと至る過程が示され、バブルソート法のフローチャートがスライ
ドに掲げられてので、それを参考にして選択ソート法のフローチャートを描くこと。さらに、「int」と「Integer」
の相異を復習し、倍精度浮動小数点数を表す「double」と「Double」の相異、加えて、文字を表す「char」と「Ch
aracter」の相異を調べて、それらの相異を確固たるものにすること。加えて、ボクシングとアンボクシングそし
てオートボクシングが醸し出している混乱についても考察すること。それら復習や考察を宿題レポートに記載して、
〆切までにmoodleを介して提出すること。およそ3時間ほどの学修(復習)を必要とする。
[第04回]
テーマ:フィールドとメソッド(「変数≒フィールド」と「手段≒メソッド」)
テーマ:配列:複数のものをまとめて記憶(様々なものを配列にすると…:配列の正体を知ろう)
[事前学習]オブジェクト、すなわち、クラスの中には、何が内包されているのか、何が外延されているのか、そ
れらを調べて授業に臨むこと。さらに、前回の内容を問う授業冒頭の短時間の小テストに備えること。約1時間ほ
どの学修(予習)を必要とする。
[事後学習]フィールド群とメソッド群がクラス(オブジェクト)の中に内包されていることを肝に銘じ、オブジェ
クト指向の根幹として得心しておくこと。プリミティブ型(入れ物モデル)の基本データ(たとえばintなど)、
ラッパークラス(貼り紙モデル)のオブジェクト(たとえばIntegerなど)、これら双方のメモリ構造を、配列リ
スト(ArrayList)と連結リスト(LinkedList)の場合で考察すること。得心した事柄や考察した事柄を宿題レポー
トとしてまとめ、〆切までにmoodleを介して提出すること。およそ3時間ほどの学修(復習)を必要とする。
[第05回]
テーマ:プログラム設計とプログラム実装(プログラミング=プログラムを設計し実装すること)
テーマ:文字列操作(String Manipulation:連結・比較・分割)
[事前学習]ソフトウェア工学Iなどで解題されているソフトウェアプロセスを再復習しておくこと。加えて、前
回の内容を問う授業冒頭の短時間の小テストに備えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]クラス図(オブジェクト図を含む)や状態遷移図そしてデータフロー図など、プログラミングの前段
階で執り行う基本設計(外部設計)や詳細設計(内部設計)は、当該のプログラム設計とプログラム実装がどのよ
うにつながるのかについて、ソフトウェアのプロセス(分析や要件定義・設計・実装・テスト・運用や保守)に基
づいて考察すること。授業の中で解題されたように、安直な「+」演算子の使用は高くが、その使用が許される場
合について、プログラム断片を作って確かめること。それらを宿題レポートにまとめて、〆切までにmoodleを介し
て提出すること。およそ3時間ほどの学修(復習)を必要とする。
[第06回]
テーマ:ジェネリクス(総称性:Generics、型を変数にする:型変数、仮型引数)
テーマ:継承と集約(委譲)(Inheritance and Aggregation (Delegation))
[事前学習]チューリング賞を受けているバーバラ・リスコフさんの論文が開示されるので、ざっと目を通してお
くこと。抽象データ型におけるサブタイプの挙動に関して調べて授業に臨むこと。前回の内容を問う授業冒頭の短
時間の小テストに備えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]Java標準ライブラリの中から、ジェネリクスを用いたプログラム(クラス)を探し出し、その構造を
設計図にまとめること。また、群れを表す「Bevy」を継承と集約の双方で実装することが、宿題レポートとして課
される。果敢に取り組み、〆切までにmoodleを介して提出すること。およそ3時間ほどの学修(復習)を必要とす
る。
[第07回]
テーマ:配列リスト,スタックとキュー(ArrayList, Stack and Queue)
テーマ:列挙型を定義して活用する方法(Enum Type)
[事前学習]プログラミング言語Cなどの手続きプログラミングにおいて、集まりを表す配列やスタックそしてキュ
ーなどの実装を想定して授業に臨むこと。また、列挙を表すenumについても、できるかぎり調べておくこと。そし
て、前回の内容を問う授業冒頭の短時間の小テストに備えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]ジェネリクス、抽象クラス、インタフェース、それぞれを復習すること。さらに、列挙型が何である
のか、いつ具備されたのか、なぜ導入されたのか、などなどについて適切なプログラムを例示しながらまとめるこ
と。それらを宿題レポートに記載し、〆切までにmoodleを介して提出すること。およそ3時間ほどの学修(復習)
を必要とする。
[第08回]
テーマ:同一性と同値性(Identity and Equivalence)
テーマ:オブジェクトの並び替え(Collections.sort(…)とComparableインタフェース)
[事前学習]同値であること、同一であること、これらの相異をプログラミングにおいて考えた上で授業に臨むこ
と。また、昇順や降順などに並び替えるためのアルゴリズムとデータ構造を調べておくこと。さらに、前回の内容
を問う授業冒頭の短時間の小テストに備えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]同一性と同値性の正常動作を保証するための「boolean equals(Object anObject)」と「int 
hashCode()」の実装(再定義)を、きちんと復習すること。その上で、スーパークラスを「Object」にして、新た
なクラスを作成し、そのインスタンスをリストやセットなどの要素として用いる場合に、前述の二つのメソッド以
外で、オーバーライド(再定義・再実装)が推奨されているメソッドを、Java標準ライブラリを調べて見つけ出す
こと。さらに、インタフェース「Comparable」とは何か、構造・機能・発生の三面から考察すること。それらを宿
題レポートとして果敢に取り組み、〆切までにmoodleを介して提出すること。およそ3時間ほどの学修(復習)を
必要とする。
[第09回]
テーマ:オブジェクトの複製(Cloneableインタフェースの実装)
テーマ:辞書:マップとはキーと値のペアの集まり(Dictionary:Table:HashMap)
[事前学習]Javaに備わっているインタフェース「Cloneable」、そして、インタフェース「Map<K,V>」、これら
をできるかぎり調査して授業に臨むこと。加えて、前回の内容を問う授業冒頭の短時間の小テストに備えること。
約1時間ほどの学修(予習)を必要とする。
[事後学習]インタフェース「Cloneable」とは何かを、構造・機能・発生の三面から説明する宿題レポートが課
される。さらに、ハッシュマップ「HashMap」を用いる際にインタフェース「Map<K,V>」を例にして、なぜインタ
フェース「Map<K,V>」を使うことが王道なのかを論ずることも課される。それらに果敢に取り組み、〆切までにmo
odleを介して提出すること。およそ3時間ほどの学修(復習)を必要とする。
[第10回]
テーマ:外部プログラムの実行(ProcessBuilderとProcess)
テーマ:システムプロパティの獲得(JVMの環境とOSの環境)
[事前学習]基礎プログラミング演習および発展プログラミング演習で学んできたコマンドの入出力としての標準
入力(stdin)・標準出力(stdout)・標準エラー出力(stderr)を整理しておくこと。さらに、JVMの環境とOSの環境に
関して、できるかぎり調査した上で授業に臨むこと。また、前回の内容を問う授業冒頭の短時間の小テストに備え
ること。約1時間ほどの学修(予習)を必要とする。
[事後学習]コマンドの入出力としての標準入力(stdin)・標準出力(stdout)・標準エラー出力(stderr)、それら
を切り替えるためのリダイレクション「 < 」「 > 」「 2> 」「 >> 」、また、つなぐためのパイプ「 | 」を復
習すること。また、Javaプログラムの中から、外部のプログラム(コマンドやアプリケーション)を実行すること
を試行錯誤し、Java仮想マシンのプロパティやオペレーティングシステムの環境変数を取得する方法を復習するこ
と。そして、それらを問う宿題レポートに果敢に取り組み、〆切までにmoodleを介して提出すること。およそ3時
間ほどの学修(復習)を必要とする。
[第11回]
テーマ:ファイルの読み書き(TXTファイルやCSVファイルを対象にして、読んで、並び替えを施し、そして書く)
テーマ:Javaオブジェクト自体の読み書き(シリアライズ=直列化と言語化=リスト表現やXML表現)
[事前学習]Javaプログラミングをしてアプリケーションを作成することを前提にして、アプリケーションのデー
タ(中間結果)をファイルにセーブすること、そして、セーブしたデータをロードした上でアプリケーションを続
行することに関して、可能なかぎりの調査して授業に臨むこと。前回の内容を問う授業冒頭の短時間の小テストに
備えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]テキストファイルの読み書きをする場合の定石(ストリームの用法)について復習すること。アプリ
ケーションのデータのセーブ&ロード(退避&復元)の機能(メカニズム)についても復習すること。宿題レポー
トとして、授業で学んだJavaオブジェクト自体の読み書きの三方式(定石)の利用場面を考えることが課されるの
で、果敢に取り組み、〆切までにmoodleを介して提出すること。およそ3時間ほどの学修(復習)を必要とする。
[第12回]
テーマ:Webページのダウンロード(Webブラウザで表示)
テーマ:画像ファイルのダウンロード(Webブラウザで表示)
テーマ:デザインパターンの活用(オブザーバパターン=MVC:Model-View-Controller)
テーマ:画像ファイルのダウンロード&表示(MVCを用いて描画表示)
[事前学習]初回から前回までで、Javaプログラミングの基本事項がことごとく解題されたので、ここで振り返り
(総復習)を行うこと。そして、他のアプリケーションとの連携を行うプログラムについて調査して授業に臨むこ
と。加えて、前回の内容を問う授業冒頭の短時間の小テストに備えること。約1時間ほどの学修(予習)を必要と
する。
[事後学習]モデル・ビュー・コントローラの例題プログラムを改良して、マウスホィールでも上下のスクロール
が(できれば左右のスクロールも)できるように改造すること。また、デザインパターンとしてのモデル・ビュー
・コントローラを、アプリケーションのプログラムを分かりやすく構築するという観点から論考すること。それら
に果敢に取り組み、宿題レポートに記載して、〆切までにmoodleを介して提出すること。およそ3時間ほどの学修
(復習)を必要とする。
[第13回]
テーマ:自作ライブラリの活用法(cons.jar, pane.jar, utility.jar)
テーマ:2次元グラフィックス:タートルグラフィックス(亀を歩かせて線描を行う)
[事前学習]他のプログラマたちが作成したJARファイルを用いる(使う)方法を調べて授業に臨むこと。また、
前回の内容を問う授業冒頭の短時間の小テストに備えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]講師が自作したライブラリcons.jar、pane.jar、utility.jarを貰い受けたので、それらのコードリー
ディングを行うこと。さらに、単色の五芒星や色とりどりの五芒星を描くプログラムを参考にして、面白いタート
ルグラフィックスを作ることに果敢に取り組み、宿題レポートを〆切までにmoodleを介して提出すること。およそ
3時間ほどの学修(復習)を必要とする。
[第14回]
テーマ:スレッドによる並行処理プログラミング(Thread of Concurrent Execution)
テーマ:サーバ&クライアントのプログラミング(Server and Client)
[事前学習]Javaプログラミングの真骨頂は、スレッドを用いて並行性や分散性を実現することにある。それらに
関して、できる限りの調査を行って授業に臨むこと。加えて、前回の内容を問う授業冒頭の短時間の小テストに備
えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]宿題レポートとして、スレッドによる並行処理プログラミングとサーバ&クライアントのプログラミ
ングのプログラムをコードリーディングして分析し、シーケンス図(オブジェクト間の交信図)や状態遷移図(ス
テートマシン図)を描くことが課される。果敢に取り組み、〆切までにmoodleを介して提出すること。およそ3時
間ほどの学修(復習)を必要とする。
[第15回]
テーマ:3次元グラフィックス(Java bindings to the native OpenGL 3D graphics)
[事前学習]最終回にあたり、いままで学んだ事柄の総復習をして授業に臨み、全回の内容を問う最終テストに備
えること。約1時間ほどの学修(予習)を必要とする。
[事後学習]宿題レポートとして、ドラゴンのプログラム「Dragon_Problem」、ドラゴンのプログラミング過程と
リファクタリング過程のプログラム「Dragon_Programming_Process」、これら二つが課される。Javaによるオブジェ
クト指向プログラミングと手続きプログラミングを確固たるものにするためであり、Javaプログラムがどのように
出来上がってゆくのか、さらに、Javaプログラムをどのようにライブラリ化するのかも、写経のようなプロセスを
介して身に着ける(追体験する・再確認する)という内容である。それらに果敢に取り組んで、〆切までにmoodle
を介して提出すること。およそ3時間ほどの学修(復習)を必要とする。
授業の到達目標/Expected outcome  
 動くプログラムと正しいプログラムの相異を知ることが到達目標である。少なくとも、オブジェクト指向プログ
ラミングと手続きプログラミングの双方を会得し、UML(Unified Modeling Language)やデザインパターンなどオ
ブジェクト指向デザイン(設計)への橋渡しも到達目標とする。最高学府のプログラミングの授業である。将来の
情報社会に寄与できる精神とプログラミングの知識と技術を保持した人間の育成をめざす。すなわち、学位授与の
方針(ディプロマ・ポリシー)の一環である「当該専門科目を充分に理解し、プログラム作成などの技術力を身に
つけて、情報化社会に寄与できる応用力を養うこと」が到達目標である。
身に付く力/Special abilities to be attained  
 論理的思考力(課題発見力、計画力、論理的分析力、総合的判断力)、実践力(働きかけ力、実行力、主体性)、
そして、実社会の開発現場で役立つ情報理工学「オブジェクト指向プログラミングと手続きプログラミングの双方」
の知識と技術を身につけることができる。
履修上の注意/Special notes, cautions  
 定員を45名とし、受講希望者多数の場合はコンピュータ抽選を行う。平成26年度以前入学生は履修不可。詳細は
履修要項別冊ガイドを参照。
 システムエンジニア(SE)などの情報産業界の職種を希望している者の履修を強く勧める。より良いプログラム
作りをめざしたい、効率的にコストをかけずに高品質のプログラムを開発したい・運用したい・保守したいと望む
者の履修を歓迎する。
 毎回、各自のコンピュータを持参し、必ずネットワークに接続して、授業が始まる前までに稼働状態にしておく
こと。講義中に援用するプログラムはネットワークを介して取得する。リポジトリ(SCM: Software 
Configuration Management、たとえばSubversionやGitなどのソフトウェア構成管理)もアクセスするので、その
作法(マナー)に慣れること。
評価方法/Evaluation  
 毎回の授業の初めに課す小テストを50%、毎回の授業の終わりに課す宿題レポートを50%、合計100%として、
それらの出来具合を総合的に評価する。法令に「1単位45時間(2単位90時間)の学修」が宣われている。授業の終
わりに課される宿題レポートは、当該時間(1回すなわち1限分の授業を受けたら約4時間の学修)を確保するもの
であるから、その時間に見合うレポート内容(質と量:A4版で数ページ以上)を必要とする。また、授業の初めに
課される短時間の小テストは、当該学修時間の成果を見極めるために実施し、授業への取り組みや姿勢を(出欠お
よび遅刻などを含めて)つまびらかにするものでもある。小テストの実施と宿題レポートの提出およびフィードバッ
クは、都度moodleを介して行うので、必ず目を通して振り返りをすること。
教 材/Text and materials  
 教科書:配付資料
 参考書:加藤暢,高田司郎,樋口昌宏『オブジェクト指向Javaプログラミング入門』(近代科学社,2008)
 参考書:高橋友一,柴田祥一,小中英嗣『Javaで学ぶオブジェクト指向プログラミング入門』(サイエンス社,
2008)
 参考書:中山清喬『スッキリわかるJava入門 実践編』(インプレス,2014)
 参考書:中山清喬,国本大悟『スッキリわかるJava入門』(インプレス,2014)
 参考書:青木淳,浅岡浩子,澤本依里『Smalltalkで学ぶオブジェクト指向プログラミングの本質』(日経BP社
,2008)
 参照URL:http://www.cc.kyoto-su.ac.jp/~atsushi/
その他/Others  
【実務経験のある教員による授業科目】
 研究室:第2実験室棟3階65実験室
 オフィスアワー:木曜日3限(13:15-14:45)
 連絡先:配付資料の表紙に記載されているメールアドレス
 授業に関する質問やホウレンソウ(報告・連絡・相談)がある場合には、オフィスアワーの時間に研究室へ訪問
するか、メールで問い合わせること。メールアドレスは配付資料の表紙に記載されている。
Copyright (C) 2019 Kyoto Sangyo University. All rights reserved.