Java Programming Principles of Software Design
Solve real world problems with Java using multiple classes. Learn how to create programming solutions that scale using Java interfaces. Recognize that software engineering is more than writing code - it also involves logical thinking and design. By the end of this course you will have written a program that analyzes and sorts earthquake data, and developed a predictive text generator.After completing this course, you will be able to:
- Use sorting appropriately in solving problems;
- Develop classes that implement the Comparable interface;
- Use timing data to analyze empirical performance;
- Break problems into multiple classes, each with their own methods;
- Determine if a class from the Java API can be used in solving a particular problem;
- Implement programming solutions using multiple approaches and recognize tradeoffs;
- Use object-oriented concepts including interfaces and abstract classes when developing programs;
- Appropriately hide implementation decisions so they are not visible in public methods; and
- Recognize the limitations of algorithms and Java programs in solving problems.
- Recognize standard Java classes and idioms including exception-handling, static methods, java.net, and java.io packages.
None
Syllabus
Syllabus - What you will learn from this course
Week 1
Welcome to the Course
Earthquakes: Programming and Interfaces
Week 2
Earthquakes: Sorting Algorithms
Week 3
N-Grams: Predictive Text
Week 4
Java: Tools and Libraries for Everyone
FAQ
When will I have access to the lectures and assignments?
Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
Will I receive a transcript from Duke University for completing this course?
No. Completion of a Coursera course does not earn you academic credit from Duke; therefore, Duke is not able to provide you with a university transcript. However, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Reviews
amazing material - solid learning for Java
one struggle - discussion boards don't seem to be monitored by staff most of the time - expect to do most on your own without teacher input
I was more diffucult than the previous three courses in the specialization, but all in all, I enjoyed it very much and learned a lot! Thanks for such a great course, keep up the good work! :)
A very challenging course with a lot of assignments, great professors and discussion forum. But I feel like the instructors could have given the instructions more clearly on the assignment
Well designed and well structured with the packages, resources, programming exercises and practice quiz. I appreciate the team's hard work in delivering good knowledge on the subject efficiently.