Information Technology Seminar I: Schedule
Practical Object-Oriented Design
Aoyama Gakuin University, Summer 2020, Martin J. Dürst (last updated
2020-07-22)
(links to presentations and minutes are only accessible with a password)
Chapter and page numbers refer to 99 Bottles of OOP - A Practical
Guide to Object-Oriented Design (Ruby Edition, The Milk Version), Sandi Metz
& Katrina Owen, Potato Canyon Software, 2017.
Code for this book is available at https://github.com/sandimetz/99bottles_milk
(Download
ZIP unfortunately doesn't work; download individual files if you don't want
to install (tortoise)svn or git). To execute, move to the directory
where the code is and start irb with irb
. Once in irb, use
load 'bottles.rb'
and then
Bottles.new.song.display
. Happy singing!
- May 6
- Introduction: Martin J. Dürst
- Homework for May 13: Install Ruby (install the latest versions of Ruby
2.7 (or Ruby 2.6) from RubyInstaller (with
Devkit), or make sure that your cygwin
installation includes a recent Ruby version)
- For a gentle introduction to Ruby, please also see Programming Basics II
(2011)
- May 13 (Martin J. Dürst)
- Introduction to Ruby
- May 20 (minutes: 中平)
- a) Front matter, Introduction,
Rediscovering Simplicity (~1.1.1, pp. 1-15): 吉武
- b) 1.1.2 Speculatively General,
1.1.3 Concretely Abstract (pp. 15-21): 中島
- May 27 (minutes: 吉武)
- c) 1.1.4 Shameless Green, 1.2 Judging
Code (pp. 21-28): 神野
- d) Test Driven Development
(pp. 29-35): 川原
- June 3 (minutes: 中島)
- e) 2.4 Understanding Transformations
(pp. 35-42): Yu
- f) 2.7 Exposing
Responsibilities (pp. 42-50): 石川
- June 10 (minutes: 川原)
- g) 2.11 Avoiding the Echo Chamber
(pp. 50-58): 矢野
- h) 3.2 Starting with the
Open/Closed Principle (pp. 58-63): 中平
- June 17 (minutes: 矢野)
- i) 3.7 Converging on
Abstractions (pp. 63-74): 平山
- j) 4. Practicing Horizontal
Refactoring (pp. 75-82): 関野
- June 24 (minutes: 関野)
- A) 4.4 Choosing Meaningful
Defaults (pp. 82-92): 吉武
- B) 4.7 Taking Bigger Steps (pp.
92-102): 神野
- July 1 (minutes: 神野)
- C) 5. Separating
Responsibilities (pp. 103-111): 中島
- D) 5.2 Extracting Classes (pp.
111-124): Yu
- July 8 (minutes: Yu)
- E) 5.3 Appreciating Immutability
(pp. 124-133): 矢野
- F) 6. Achieving Openness (pp.
134-147): 平山
- July 15 (minutes: 平山)
- G) 6.3.3 Prevailing with
Polymorphism (pp. 148-169): 石川
- H) Metaprogramming: 川原
- July 22 (minutes: 石川)
- I) SVuGy
- Exploring the Space between Procedural and Declarative Graphics: presentation: 中平
- J) Ruby on Rails: The Rails
Doctrine: presentation:
関野
- July 29: Research at the Software Lab
- August 5: Research at the Software Lab
- August 12: Research at the Software Lab