Chevron Left
Back to Java Programming: Principles of Software Design

Learner Reviews & Feedback for Java Programming: Principles of Software Design by Duke University

1,476 ratings

About the Course

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,, and packages....

Top reviews


Aug 7, 2019

My confidence level in Java programming has grown significantly since completing this specialisation. It gave me the necessary knowledge and practice I need to take up a role as a software engineer.


May 3, 2020

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.

Filter by:

101 - 125 of 252 Reviews for Java Programming: Principles of Software Design

By Cesar O

Jan 1, 2023

Very hard but great course if you have the time and desire to learn!

By Aleksei M

Aug 5, 2019

It was harder than expected and was a pleasure to find a solutions.

By Catalin T B

Jan 26, 2016

Very good course, it is brief but very interesting and practical.

By David I

Sep 1, 2016

It was so great and I learned a lot through practical exercise .

By Svetoslav S

Jul 18, 2020

That's the best way to learn something useful for your career.

By Eduardo H

Jan 7, 2016

Excellent! I have learned a lot in a very fun and dynamic way.

By Mohamed I E

Feb 8, 2020

it was some time difficult but I learn alot from this course

By Stanislav S

Feb 12, 2018

Loved this course, simple, easy and really really short ahah

By Afranio M S

Sep 11, 2016

Good problems to solve: creative, challenging & interesting.

By Marius-Cristian B

Jan 23, 2018

I loved this course! great job done by the instructors!!!

By Chen H C

Dec 29, 2015

very good course, and the projects are fun!!! good choice

By Reda R

Aug 7, 2018

very interesting material, thanks for your great effort.

By Ershad S

Jan 1, 2018

This is really great course. Enjoyed every second of it.


Apr 16, 2020

thanks for your efforts I get more useful informations

By Jack

Dec 8, 2017

The last section of Week 3 could be improved further.

By Douglas H

Dec 25, 2015

Great course. Lots of great programming assignments.

By Roman

Feb 6, 2016

Excellent course! The best Java course on Coursera!

By Chris T

Aug 21, 2018

Difficult and challenging, but worth the struggle.

By Lisa L

Jul 13, 2019

easy to understand, lots of programming practice

By Manju A

Sep 30, 2019

very thought provoking and in depth course.

By Jose G

Nov 20, 2017

Great course. I feel like i learned a lot.

By Xiangzhen S

Jan 30, 2018

very practical software design technique

By Hail B

Jan 13, 2016

Love! Highly recommended for beginners!


May 19, 2020


By Snehil K

Aug 25, 2023

A bit of complexity is a headache !