Back to Java Programming: Principles of Software Design
Duke University

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: 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, java.net, and java.io packages.

Status: Data Structures
Status: Object Oriented Programming (OOP)
BeginnerCourse13 hours

Featured reviews

AR

4.0Reviewed Jan 26, 2016

i liked everything except some of the quizzes since some questions were unclear or wrong (but still, I was a beta tester, so all great) - thank you!

KK

5.0Reviewed Aug 15, 2019

amazing material - solid learning for Javaone 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

AS

4.0Reviewed Aug 2, 2020

In week 3, the Markov theorem should be explained more clearly. It was not clear enough to understand by only listening to the explanation.

RR

4.0Reviewed Aug 22, 2020

The Course is Good. But Week 3 is so hard to understand and the assignments are frustrating and it took long time to complete. Week 3 must be made easier......

SS

5.0Reviewed Jul 27, 2020

These set of four made not only learning Java fun and also explored on the applications software engineering it has on the real world, touching a little bit of everything in the same field.

LY

5.0Reviewed Sep 27, 2016

devoted professors, appropriate topics which can lead to the correct understanding of each Java object, so we can realize OO programming ideas, not only how to type codes.

NS

5.0Reviewed Jun 15, 2016

Like all the modules of this Java specialization, the teachers are very good and the course reaches the objective of teaching the fundamentals of software design with an excellent didactic.

SB

5.0Reviewed Aug 12, 2016

This course was another of many well-taught courses of Duke University. The GPS library use to find locations of earthquakes particularly of very interesting. Thank you Duke University

AP

5.0Reviewed Jun 25, 2021

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! :)

IM

5.0Reviewed Aug 16, 2017

This is amazing course for beginners to gain more programming skills and behavior. If you are interested in such kind of specialization this course is for you

DN

4.0Reviewed Aug 31, 2017

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

NA

5.0Reviewed Jan 17, 2021

the course was very cool, it provided me new skills include programming principles, software design, etc. thanks my hon instructors you are the best.

All reviews

Showing: 20 of 254

Amir M. Ostad
1.0
Reviewed May 29, 2016
Katrīna Kraukle
1.0
Reviewed Jun 9, 2022
Abdul Hannan
1.0
Reviewed Sep 15, 2020
Kandis Brighton
5.0
Reviewed Jun 7, 2016
Amaliya Akopyan
5.0
Reviewed Apr 6, 2019
Agustín Peña
5.0
Reviewed Jun 26, 2021
Bill Jones
1.0
Reviewed Dec 27, 2017
Aleksey
1.0
Reviewed Jan 9, 2016
Ogonna Iwunze
5.0
Reviewed Aug 8, 2019
Vignesh Baskaran
4.0
Reviewed Jul 27, 2021
Dimas Torres Llorca
2.0
Reviewed Nov 4, 2019
Gao Sean
5.0
Reviewed Dec 15, 2020
Marcelo Andres Baeza Huenupil
5.0
Reviewed Jan 16, 2021
ANDR�S FELIPE ROCA PINZàN
5.0
Reviewed Apr 23, 2021
Christian AL Haddad
5.0
Reviewed Feb 29, 2016
Suryaa
5.0
Reviewed Jul 28, 2020
Nirlan Neckir Zamprogno de Souza
5.0
Reviewed Jun 15, 2016
Cesar Augusto Figueroa Bayona
5.0
Reviewed Dec 2, 2021
NGWERE CLIFORD MONIE
5.0
Reviewed Oct 7, 2021
Noah Hatcher
5.0
Reviewed Mar 10, 2022