Information Technology Seminar I: Schedule
Practical Object-Oriented Design
Aoyama Gakuin University, Summer 2019, Martin J. Dürst (last updated
2019-08-23)
(links to presentations and minutes are only accessible with a password)
Chapter and page numbers refer to Practical Object-Oriented Design -
An Agile Primer Using Ruby, Second Edition, Sandi Metz, Pearson Addison-Wesley,
2019.
Code for this book is available at https://github.com/skmetz/poodr2
(use Download
ZIP if you don't want to install git). To execute, move to the directory
where the code is and start irb with irb --simple-prompt
. Once in
irb, use require 'absolute_program_name'
or
require_relative 'relative_program_name'
.
- April 10
- Introduction: Martin J. Dürst
- Homework for April 17: Install Ruby (install the latest versions of
Ruby 2.5 (or Ruby 2.4) from RubyInstaller (including
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)
- April 17 (Martin J. Dürst)
- Introduction to Ruby
- April 24 (minutes: 瀧平)
- a) 1. Object-Oriented Design (pp.
1-13): Ju
- b) 2. Designing Classes with a
Single Responsibility (pp. 15-23): 木下
- May 1: 即位の日、休講
- May 8 (minutes: 木下)
- c) Writing Code That Embraces
Change (pp. 24-35): 野口
- d) 3. Managing Dependencies
(pp. 37-48): 川西
- May 15 (minutes: 野口)
- e) Remove Argument-Order
Dependencies (pp. 48-59): 佐藤
- f) 4. Creating Flexible
Interfaces (pp. 61-72): 三倉
- May 22 (minutes: 川西)
- g) Seeking Context
Independence (pp. 72-84): 松下
- h) 5. Reducing Costs with Duck
Typing (pp. 85-95): 瀧平
- May 29 (minutes: Ju)
- i) Writing Code That Relies on
Ducks (pp. 95-103): 山下
- j) 6. Acquiring Behavior through
Inheritance (pp. 105-116): 吉村
- June 5 (minutes: 三倉)
- A) Finding the Abstraction (pp.
116-129): 野口
- B) Managing Coupling between
Superclasses and Subclasses (pp. 129-140): 佐藤
- June 12 (minutes: 佐藤)
- C) 7. Sharing Role Behavior with
Modules (pp. 141-158): 松下
- D) Writing Inheritable Code, 8.
Combining Objects with Composition (pp. 158-176): 瀧平
- June 19 (minutes: 松下)
- E) Manufacturing Parts (pp.
176-191): 山下
- F) 9. Designing Cost-Effective
Tests (pp. 193-208): 木下
- June 26 (minutes: 山下)
- G) Injecting Dependencies Using
Classes (pp. 208-227): 吉村
- H) Using Role Tests to Validate
Doubles (pp. 227-244): 三倉
- July 3 (minutes: 吉村)
- I) 99 Bottles of OOP,
Chapter 1: Ju
- J) 99 Bottles of OOP,
Chapter 6: 川西
- July 10: Research at the Software Lab (reports by teachers and B4/M1
students)
- Yoshiyuki Shoji
- Tsukasa Sawaura
- July 17: Research at the Software Lab (reports by teachers and B4
students)
- Martin Dürst
- Keita Sugitani
- July 24: Research at the Software Lab (reports by B4/M1/M2 students and
interns)
- David Gomez: Implementing Sparse Matrices with Ruby
- Kanami Inaba: SVG and SVuGy
- (July 27 to August 3: Term final exams)