Chevron Left
Back to Java Programming: Principles of Software Design

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

4.6
stars
1,481 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, java.net, and java.io packages....

Top reviews

OI

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.

VS

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:

176 - 200 of 253 Reviews for Java Programming: Principles of Software Design

By Yasmeen G

Nov 2, 2016

GREAAAT♥♥

By Hamid S

Aug 8, 2016

Excellent

By Sukhvir S

Oct 16, 2020

Good One

By Vitalii V

Apr 12, 2020

GREAT!!!

By Obada A

Jul 3, 2017

tank you

By Shikha T

Mar 10, 2022

Awesome

By Dr. S N B

Jul 5, 2021

Awesome

By A.M.CHAMINDA S B A

Dec 22, 2020

so good

By MR. G L

Jul 16, 2020

amazing

By Aditya

May 30, 2019

SuperB!

By Александр В

Jan 31, 2019

great!

By Arislan M

Feb 22, 2016

Great!

By victor m

Sep 1, 2022

good

By Boya J

Sep 6, 2022

good

By Samad K

Nov 28, 2020

good

By Md A H

Oct 19, 2020

Good

By Rahul S

Oct 6, 2020

Good

By Rishi P

Aug 10, 2020

good

By hakan33

Apr 20, 2017

best

By Abdelrhman B

Nov 26, 2019

1

By Bryan Y

Jan 17, 2017

Pacing of this course was all over.

Interface and Abstract classes were introduced and the material and lessons were easy to follow. Sorting using bubble sort, caparable, and comparator operators were also easy to follow. The final week presented topics on exception and try/catch/finally, but provided no practical programs for a student to write to ensure the topics were understood.

The problem was in week 3. N-Grams meant to teach some very important concepts about Markov and predictive text, but failed somewhat since the quizes were not clear and the grading a bit harsh. In the quizes, problems were presented and you either had the right output or you did not. There was no checks available that allowed a student to figure out why code produced the wrong output. In other modules (and courses in this series), input was provided and expected out based on the input was provided to verify code was working correctly. Not in section 3 - you wrote the code, took the quiz, and if you got the answer wrong were left scratching your head as to why, since there were really no means to check.

Don't mistake this feedback as saying the course was bad - it was actually quite good. If the course material for week 3 is updated to include clearer instructions and some better checks to ensure code is working correctly then I will change my review from a four star (it's more 3.5 than 4) to a five star.

By Четверухин А А

Jan 10, 2019

Nice course which logically ends the series of four. Finally explains why different duke.edu libraries were used as well as BlueJ, which seemed to be strange choise at the beginning. I've finally understood why interfaces and abstract classes are important and how to use it. I decrease the mark to 4 only due to week 3 tests unclarity around hashmap - I've never worked it out how to get to the test results on hashmap size - it was working fine on small samples, but not matching the answers which were in the quiz for the big files which took a lot of time from me and didn't bring satisfaction.

By Andrii L

Dec 26, 2019

Generally, I like this course. The tasks are very interesting and require to spend some time on them. But what I don't like is IDE that teachers use in this course. I also think that whole week 3 should be redesigned, especially requirements, they are not very readable. You should add some testing utility or some cases to test and verify student output with teachers.

By William G

Oct 28, 2020

There are some super cool concepts in here, but one of the modules in this course (module 3) was messy. Even the instructors have agreed that some lectures should be improved upon. That module was so messy that although I managed to finish, I felt like I need to relearn the concepts entirely somewhere else.

By Aarya P

Aug 15, 2020

A really nice experience learning the exact use of the object oriented style of programming. Different concepts like abstraction and interface are well taught. A little bit improvement can be done in the assignment section otherwise its great and also week 4 could be a little more interesting.