I am taking this course now and am on the last module. I do like that this course teaches Java in a very different way. The material teaches the architecture of a Java program before worrying about teaching simple syntax. It quickly moves on to teach test-driven development. It is a nice way to learn a new language (though I have some Java experience with Android).
What is disappointing to me about this class, however, is the ambiguity in tests and exercises and the very short coverage of some of the more challenging material. The previous courses in the series (How to Code: Simple Data and Complex Data) were, in my opinion, much more thought out and limited the amount of ambiguity. In this course I often feel like the quizzes are made up of trick questions, where I understand the program, yet get things wrong due to strange wording. I also do not enjoy how little coverage designing program architecture gets. Often the exercises ask you for one thing but the solution files reflect different expectations. Hopefully this is remedied in the next course. I unfortunately can't wait until this course is done because it just feels tedious, despite some of the positive things the course has going for it.