[[プログラミング入門(2017年度夏学期)]]

#norelated

#contents

* 工学部専門科目「プログラミング入門」 [#qb249ac2]

- 曜時限: 木曜日1限(8:45〜10:15)
- 場所: 総合研究8号館 2F 講義室2(演習は総合研究9号館 1F 演習室1・2・N1)
- 担当: 五十嵐 淳(igarashi), 馬谷 誠二(umatani)
- オフィスアワー: 月曜 17:00〜18:30 @ 総合研究7号館224(五十嵐)
- 担当TA: 井上裕昭君、雲天君、鹿谷将司君、中村博文君、福田陽介君(演習のみ)、宮崎勇輔君(演習のみ)、谷口力斗君(演習のみ)
- 担当TA: 大澤賢悟、佐々木拓哉、高瀬亮、津田優也、(演習のみ: 福田陽介、矢杉和義) 
- Twitter ハッシュタグ: [[#KUプログラミング入門:https://twitter.com/search?f=tweets&vertical=default&q=%23KU%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80]]
- [[演習課題提出システム:http://www.fos.kuis.kyoto-u.ac.jp/~shikatani02/ip16/]]

* お知らせ [#b2087773]

- (2016.07.21) 来週はオフィスアワーとして質問を受け付けます。9:00〜10:15 まで総合研究7号館224号室におります。
- (2016.07.14) 昨年の期末試験問題と教科書の章末演習問題(試験範囲の14章まで)を [[Week13]] におきました。
- (2016.07.14) 次回(7/21)は演習です。総合研究9号館演習室に集合してください。
- (2016.07.13) 次回(7/14)も講義室2で座学です。
- (2016.06.30) 次回(7/7)も講義室2で座学です。6/30の残りからなので、資料を忘れないように。
- (2016.06.30) 今日は講義室2で座学でした。
- (2016.06.16) 次回(6/23)は演習です。総合研究9号館演習室に集合してください。
- (2016.06.14) 次回(6/16)も講義室2で座学です。6/9の残りからなので、資料を忘れないように。
- (2016.06.02) 次回(6/9)も講義室2で座学です。6/2の残りからなので、資料を忘れないように。
- (2016.05.26) 次回(6/2) は講義室2で座学です。
- (2016.05.19) 次回(5/26)は演習です。総合研究9号館演習室に集合してください。
- (2016.05.12) 次回(5/19)も講義室2で座学です。
- (2016.04.28) 次回(5/12)も講義室2で座学です。
- (2016.04.28) 5限に総合研究9号館演習室で(今回だけ特別に)質問受付セッションします。提出システムでトラブっている人、課題内容がよくわからない人などはどうぞ。(人が途切れたら引きあげるので早めにどうぞ。
- (2016.04.21) メディアセンター端末の BlueJ のエディタで日本語を打つと BlueJ が落ちるらしいので、BlueJ の起動方法を以下のように変更してみてください:
  [スタートメニュー]→[すべてのプログラム]→[専門ソフト]→[BlueJ]→[Select BlueJ VM]を選ぶと以下のような選択画面が表示されます。
  C:\Program Files\Java\jdk1.8.0_73 の行を選んで Launch ボタンを押して BlueJ を起動してください。
&ref(select_jdk.png);
- (2018.07.11) [[2018/Week13]]に講義資料や定期試験過去問などを置きました。
- (2018.07.03) [[2018/Week12]]に講義資料などを置きました。
- (2018.07.03) [[2018/Week10]], [[2018/Week11]] に講義資料などを置いたことをアナウンスするのを忘れていました。
- (2018.06.13) [[2018/Week09]]に講義資料などを置きました。
- (2018.06.06) [[2018/Week08]]に講義資料などを置きました。
- (2018.05.27) [[2018/Week07]]に講義資料などを置きました。
- (2018.05.24) [[2018/Week06]]に今日説明したBlueJ便利機能についてのスライドを置きました。
- (2018.05.17) [[2018/Week05]]に講義資料などを置いたことをアナウンスするのを忘れていました。
- (2018.05.09) [[2018/Week04]]に講義資料などを置きました。また、課題2に問題を追加しました。そのせいでプログラムの push ができない可能性があります。その場合の対処は講義資料を見てください。
- (2018.05.09) [[2018/Week03]]に講義資料などを置いたことをアナウンスするのを忘れていました。
- (2018.05.09) [[2018/Week02]]に講義資料などを置いたことをアナウンスするのを忘れていました。
- (2018.04.12) 文学のシラバスに総合研究8号館講義室2以外の部屋が書かれていますが、今年度については、それらの部屋は使わない予定です。
- (2018.04.12) 今日のプリントをもらいそこねた人は、まわりの人にパスワードを聞いて[[2018/Week01]]からダウンロードしてください。
- (2018.04.11) [[2018/Week01]]に講義資料などを置きました。
- (2018.03.12) 2018年度ページ立ち上げ。

この方法で完全に解決するかは不明です。この方法を使っても落ちる、という場合には是非報告をお願いします。

- (2016.04.14) 4/21は演習です。総合研究9号館演習室1・2に来てください。自分のノートPCの持ち込み可ですが電源が十分にあるか調査中です。十分に充電してきてくれるとありがたいです。
- (2016.04.14) 力尽きてうまくアナウンスできませんでしたが、簡単な宿題があります。詳しくは[[Week01]] を見てください。
- (2016.03.30) 2016年度ページ立ち上げ。

* シラバス情報 [#c0e9e399]

** 授業の概要・目的 [#o4b9f15d]

この講義では,計算機プログラミングの基本的な概念と技法について学びます.プログラミング言語 Java を使い,マウスの動きやクリックに反応して様々な動作を行うプログラムを実際に作成することで,プログラミングの本質である抽象化や,計算機科学に欠かせない再帰といった概念を習得します.

** 成績評価の方法・観点及び達成度 [#y5de011d]

期末試験とプログラミング演習についての数回のレポート

** 到達目標 [#r1120428]

- 手続きや状態,その組合せであるオブジェクトを使ったシステムの抽象化の概念と技法を習得
- イベント駆動プログラミングの概念と技法を習得
- 再帰の概念と再帰を利用したプログラミング技法の習得

* 講義スケジュールと配布資料 [#hb9c40dc]

通常は総合研究8号館講義室2です。演習の週は総合研究9号館演習室1,2です。以下、括弧がついているのは予定で変更の可能性があります。
以下、括弧がついているのは予定で変更の可能性があります。

|回数| 日付 | 講義内容(予定)   | 資料/宿題など(アクセスには講義資料1のID,パスワードを使ってください) |
|  1 | 4/14 |プログラミングとは?|[[Week01]]|
|  2 | 4/21 |演習1                |[[Week02]]|
|  3 | 4/28 |Ch. 2-3.3|[[Week03]]|
|  4 | 5/12 |Ch. 3.4-4|[[Week04]]|
|  5 | 5/19 |Ch. 5 |[[Week05]]|
|  6 | 5/26 |演習2|[[Week06]] |
|  7 | 6/ 2 |Ch. 6 | [[Week07]] |
|  8 | 6/ 9 |Ch. 7 | [[Week08]] |
|  9 | 6/16 |Ch. 9| [[Week09]] |
| 10 | 6/23 |演習3|[[Week10]] |
| 11 | 6/30 |Ch. 10,12|[[Week11]]  |
| 12 | 7/ 7 |Ch. 12-13|[[Week12]]  |
| 13 | 7/14 |Ch.14| [[Week13]] |
| 14 | 7/21 |演習4| [[Week14]] |
| 15 | 7/28 |フィードバック授業(Q&A)||
| 16 | 8/ 4 |試験||
|  1 | 4/12 |プログラミングとは?|[[2018/Week01]]|
|  2 | 4/19 |演習1                |[[2018/Week02]]|
|  3 | 4/26 |Ch. 2-3.3|[[2018/Week03]]|
|  4 | 5/10 |Ch. 3.4-4|[[2018/Week04]]|
|  5 | 5/17 |Ch. 5    |[[2018/Week05]]|
|  6 | 5/24 |演習2    |[[2018/Week06]]|
|  7 | 5/31 |Ch. 6    | [[2018/Week07]] |
|  8 | 6/ 7 |Ch. 7 | [[2018/Week08]] |
|  9 | 6/14 |Ch. 9 | [[2018/Week09]] |
| 10 | 6/21 |演習3|[[2018/Week10]] |
| 11 | 6/28 |Ch. 10,12|[[2018/Week11]]  |
| 12 | 7/ 5 |Ch. 12-13|[[2018/Week12]]  |
| 13 | 7/12 |Ch. 14| [[2018/Week13]] |
| 14 | 7/19 |演習4| [[2018/Week14]] |
| 15 | 7/26 |フィードバック授業(Q&A)||
| 16 | 8/ 2 |試験||

* 受講上の注意 [#x9d8d38d]

講義資料の pdf は(初回を除き)印刷しての配布はありません.前日の17:00までには資料をアップロードするようにしますので、各自、ダウンロードの上、教室にノートPC、タブレット、スマホなど pdf を閲覧できる機器(書き込みもできるとベターでしょう)を持ち込んで臨んでください.

* 参考書 [#m48491db]

- Kim B. Bruce, Andrea Pohoreckyj Danyluk, Thomas P. Murtagh 『Java: An Eventful Approach』 (Pearson Education, Inc.) ISBN:9780131424159

** おすすめの Java の本 [#lcbc578a]

ここで紹介するのは、いずれも五十嵐が目を通したことがある本ですが、巷には Java の本が沢山あふれていますので、他に定評のある名著があるのかもしれません。

以下の2冊は,どちらも大学の先生が著したもので,大学のプログラミング教育で使いやすいものになっています.偶然にも(?)タートルグラフィクスという題材を取りあげています.
- 立木 秀樹, 有賀 妙子.「すべての人のためのJavaプログラミング」第2版,共立出版,
2007.
- 千葉 滋.「やさしいJavaプログラミング」ASCII出版, 2004.

以下は Java の開発者である Gosling 自らが著した本で,開発者自らの
Java に対する考えが伺えますが,ある程度プログラミングの経験がないと
読むのは難しい気がします.

- Ken Arnold, James Gosling, David Holmes. 柴田芳樹(訳)「プログラミング言語Java」 ピアソン・エデュケーション.

* リンク集(英語に慣れよう!!) [#s9a8d997]

- [[Java:http://www.java.com/]]
-- [[Java言語仕様:https://docs.oracle.com/javase/specs/]] …「うわ〜」って思いたい人だけ見てください :-)
-- [[Java標準ライブラリ:http://docs.oracle.com/javase/7/docs/api/]] …「うひゃ〜」って思いたい人だけ見てください…と言いたいところだけど、これはたまに見る必要ありかも。
- [[Java - An Eventful Approach:http://eventfuljava.cs.williams.edu/]]
-- [[objectdraw のダウンロード:http://eventfuljava.cs.williams.edu/library.html]]
-- [[objectdrawライブラリのドキュメント:http://eventfuljava.cs.williams.edu/library/objectdrawJavadocV1.1.2/index.html]]、[[そのコピー:http://cseweb.ucsd.edu/~ricko/CSE11/objectdrawJavadocV1.1.2/]]
- [[BlueJ:http://bluej.org/]]
- [[Java - An Eventful Approach:http://eventfuljava.cs.williams.edu/]] … 教科書のサイト。objectdraw ライブラリもダウンロードできますが、講義用に改変したバージョンを使うので、本家の版は使わないでください。
-- [[objectdrawライブラリのドキュメント:http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/class/ip/objectdrawV1.1.2-ku/]] (検索で見つかるやつは本家版なので、いくつか食い違いがあります。)
- [[BlueJ:http://bluej.org/]] … 講義で使用する IDE
-- [[BlueJ関連のドキュメント:http://www.bluej.org/doc/documentation.html]]
-- [[ObjectdrawInvoker のダウンロード:http://www.bluej.org/extensions/extensions.html]]
- タッチタイピング習得のために
-- [[オンラインタッチタイピング習得サイト:http://www.typingstudy.com/ja/]] (キーボード配列は US English を選んでください。記号の配列が日本のパソコンと違うのですが、最初の方のレッスンをやるだけなら問題ありません。)
-- [[ICTプロフィシェンシー協会:http://www.pken.com/tool/typing.html]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS