計算機実習 I
第十五回 (2014 年 7 月 17 日)
応用課題演習 IV
http://www.sw.it.aoyama.ac.jp/2014/CP1/lecture15.html
Martin J. Dürst
© 2005-14 Martin
J. Dürst 青山学院大学
今日の予定
- これからの予定
- 前回の演習
- Ruby について
- 応用課題演習
- 授業全体のまとめ
これからの予定
- 7月17日: 四回目の応用課題演習
- (7月24日: 補講日)
- 7月31日、14:50-16:15: 期末試験
これからの授業など
- 二年後期: データ構造とアルゴリズム
- 三年前期: 言語理論とコンパイラ
- 三年前期: 輪講 I (プログラミング・Ruby 関係)
- 三年後期: 輪講 II (Web 関係)
- 四年生: 卒業研究
前回の演習 (統計)
課題ごとの完成数
|
完成 |
エラーなど |
未提出 |
1401 (カードのゲーム) |
77 |
2 |
11 |
1402 (暗号化) |
20 |
6 |
64 |
1403 (自販機) |
47 |
12 |
31 |
1404 (単語の統計) |
6 |
3 |
81 |
完成総数:
4問→6人、3問→6人、2問→37人、1問→34人、0問→7人
前回の演習 (麺棒プログラミング)
プログラムの長さと修正しやすさ
自動販売機の問題の解答の長さ:
最大: 8748 バイト
最低: 2163 バイト
前回の演習 (関数のスタイル)
配布物: 1403variant.c
設計方針:
- 関数によるお金のやり取りの抽象化
- 貨幣種類ごとの繰り返しをメーンプログラムから除去
- 貨幣の持ち分の「オブジェクト化」(C++ への準備)
前回の演習 (単語の統計)
正解例: 1404.c (95行)
同じプログラムをプログラミング言語 Ruby で: 1404.rb (15行!)
Ruby について
- 1993年からまつもとゆきひろ (松本行弘、Matz)
が開発開
- 2000年から欧米でも人気を集める
- 2004年から Ruby on Rails (Web
Application Framework) で更に注目
- 特徴:
簡単で強力な概念、短い記述、手軽な実行、入り口が広い、奥が深い
- Dürst 研究室で Ruby 本体の実装に貢献
(文字コード変換など)
後期: ラボワーク
- Ruby や Ruby on Rails の応用
- プログラミングコンテスト参加準備
授業への要望
(前々回の総合復習テストから)
- TA などの数、配置、質問の長さ
- フォーラムの返事を早め
- 解答例のプログラムの配布
授業全体のまとめ
- C はソフトウェアとハードウェアの橋渡し
- C は様々なプログラム言語に影響
- テストしながら小刻みに開発
- プログラムでは読みやすさが大事
- 麺棒プログラムから DRY へ
応用課題演習 IV について
最低一問を授業中に完成、もう一問を宿題として完成
締切は7月21日 (月曜日)
問題は世界学生プログラミング選手権 (又は予選) から
- 1501: 正方形の配置
- 1502: 船の荷作り
- 1503: Fibonacci Words
- 1504: 整数の集合の数 (新問題)
全ての問題には部分点あり
Hints をよく読んで、紙上で計画を検討
説明された入力以外の入力には対応しなくてよい
入力例は複数あるが、プログラム実行ごと一個のみ
これからの作業
- 足りない演習問題を完成し、提出
- 復習、期末試験の準備