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