Inria has created another great Smalltalk Massive Online Open Course (mooc) called Advance Object Oriented Design and Development in Pharo. It is a free, work-on-your-own-pace course. If you work on object oriented languages or components frameworks, you will get so much out of this course, even if you have done programming for a long time. I am getting so much from it.
It is perhaps one of the greatest computer science online courses. It is the best one on object oriented design. This is because of the author's great choice of teaching methods and language.
The authors' method is simple: share the concept, show sample code, discuss the code, and explain how the concept improves design. Let me illustrate using the hooks lecture. They define hooks. Then they show some working code. They explain what the code does; they discuss the strengths and weaknesses of the implementation. Then they show how one can refactor that code using hooks. You finish the module by doing it yourself through exercises. This is the best way of learning, going from concept to practice.
Their choice of Smalltalk is important too. Smalltalk's syntax is so simple that one can focus on what the code does rather than trying to parse its meaning. The language encourages brevity, so even long methods are very small, spanning up to 10 to 15 lines of code. The language and tooling encourages brevity. The brevity makes the different patterns emerge by themselves.
It is hard to imagine the course being as effective if they were using some other language. Most languages are more verbose, have distracting syntax, or lack the proper tooling to support the style of programming that one can do in Smalltalk.
Taking a course on object oriented design in Smalltalk may seem like a strange exercise in academic or retro computing. Yet I have been able to apply the concepts that immediately to my daily Python and Ruby work. The concepts that the course teach are deeply practical and applicable for all modern languages.
This is the OOP course that I wish I had early on my career. I strongly recommend everyone to take this course, if they have enough time in your life to do it.