This is the third course in the Software Development MicroMasters program. You will learn how to build larger and more complex software systems using the Java programming language.
The course begins with the topic of data abstraction - from specification to implementation. Particular attention is given to how to write robust tests using JUnit. Then the course expands on these ideas to explore how type hierarchies and polymorphism can be used to decrease redundancy in your code. The course wraps up with a discussion of how to design robust classes.
By the end of the course, you will have a solid foundation in designing software in Java, and be ready to move onto Software Construction: Object-Oriented Design, where you will learn more complex design patterns and principles designing object-oriented programs.
Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructors and staff.
Chris Dziewa completed this course, spending 10 hours a week on it and found the course difficulty to be hard.
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...
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.