Join
Duke University: Java Programming: Principles of Software Design
https://www.coursera.org/learn/java-programming-design-principles