Oct 24th 2016

Java Programming: Principles of Software Design (Coursera)

Created by: Delivered by:

In this course, you will write programs in Java to solve real­ world problems that are large enough to require multiple classes working together. You will see that programming is more than just coding--it involves strategic thinking and design as well. You will learn how to design programs to solve problems that require solutions that scale. You will also learn about the Java Collections classes and how Java interfaces facilitate developing programs that scale. After completing this course, you will be able to:

1. Use sorting appropriately in solving problems;

2. Develop classes that implement the Comparable interface;

3. Use timing data to analyze empirical performance;

4. Break problems into multiple classes, each with their own methods;

5. Determine if a class from the Java API can be used in solving a particular problem;

6. Implement programming solutions using multiple approaches and recognize tradeoffs;

7. Use object-oriented concepts including interfaces and abstract classes when developing programs;

8. Appropriately hide implementation decisions so they are not visible in public methods; and

9. Recognize the limitations of algorithms and Java programs in solving problems.

10. Recognize standard Java classes and idioms including exception-handling, static methods,, and packages;

Java Programming: Principles of Software Design is course 4 of 5 in the Java Programming: An Introduction to Software Specialization.

This Specialization covers the fundamentals of software development, focusing on a beginner-level introduction to rigorous problem-solving approaches while still embracing and extending traditional methods of computer science and software engineering. You’ll explore foundational concepts such as algorithm development, data representation, and debugging, using common tools such as HTML/CSS, Javascript, and Java. In the final Capstone Project, you’ll apply the skills you learned by creating a working recommender system that can help users find and choose items, such as films, books, or restaurants. Google has contributed real-world projects and the involvement of its engineers as guest lecturers to these courses.