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:

226 - 250 of 253 Reviews for Java Programming: Principles of Software Design

By Aishwary B

Jul 23, 2020

Good beginner course

By Shubham K

Jun 20, 2022

It's really nice

By Himanshu K

Aug 17, 2020

fabulous course

By Joshua A

Dec 12, 2021

awesome

By Doaa S M Y

Apr 18, 2020

goods

By vacous

Jan 30, 2017

The structure of the lectures as well as the assignments might need some redesign.

In the lecture, I think it might be better to explain the algorithm very clearly without talking about any coding details first, and then have some lectures explaining the code implementation. Right now, the coding implementation and the algorithm explainations are mixed together in a way that is not really easy to digest.

However, I really appreciate the solid content of this course. The markov assignment is a actual assignment copied from the CS201 course in Duke. Moreover, it is implemented with even a more sophisticated and better desiged structure. In the CS201, the concept of inheritance is not introduced yet. For all of you who made it to week03 assignment, you can applaud yourselves.

Sadly, the assignment design of this course is very disappointing. Despite its rich content, it requires the students to take a long time to adjust some details at some corner of the method to do the quiz question. It is very error prone and tedious. The final quizs need some simplification in the structure or format.

Overall, I still recommend people taking this course. Very Good content. Just be prepared for the assignment, it really needs a considerable amount of patience and efforts.

By Sujitha G

Jun 11, 2019

Overall, this course is pretty good and it helps to learn the basics of Java Interfaces. However, Week 3 was very confusing and discussion posts were not at all helpful in the forums. I am having a lot of trouble with the random text generator (assignment one) and I can not move on until I get that one method correctly. I was not able to understand the getRandomText() method, therefore it was very difficult to do MarkovFour. Especially, when MarkovOne was not even working. The readings had VERY confusing wording and I believe the grammar caused confusion. However, it could have been a typo. That is why I gave this specific course a 3 star rating.

By Boğaçhan A

Jun 21, 2017

This course was a content-overload when compared to the others. The coursework was a lot heavier and harder. But in the end it was all worth it. The only problem is that when you got stuck, the problem could be in many places since the guides did not give a chance test the code regularly as in the previous courses. Other than that, I can feel the improvement.

By Cullen B

Dec 31, 2016

Despite having a strong engineering background, I found this course poorly communicated. The heavy use of technical jargon makes the concepts (which are intended to be simple) over complicated. The predictive text is interesting but simple exercises are needed to clearly teach abstraction and interfaces clearly.

By Raoul P

Jan 5, 2018

In Course 4, week 3, an assignment (EfficientMarkovModel) is poorly explained, and understandable only with the context of the following text. This was initially confusing to me. Otherwise, I found the course to be similarly good as the previous ones.

By Deleted A

Jan 11, 2016

Some interesting concepts are being taught, but the course is uneven. The first project required a lot of work, while the last week had no project at all.

Minor errors in videos and programming assignments. Somewhat messy code.

By Saurabh C

Jun 29, 2019

while the course is structured well, there is almot zero support when one gets stuck. Coursera has not maintained an active forum, unlike other platforms. It ends up wasting a lot of time for us.

By Peter G W

Dec 24, 2018

Near the end of the course it was very difficult to get programs working exactly as intended. I felt the instructions could have been clearer, especially in Week 3's assignments.

By Frank T

Jul 12, 2019

Principles are usually explained with code where analogies or schematics would have been more appropriate.

Quizzes are sometimes poor.

Help is hard to get on the forum.

By Kevin E

Oct 16, 2020

A little intense for the last parts of the course, such as NGrams and such Predictive Text, as the questions were very very very ambiguous and not very guiding.

By Nuggu S V R

Jul 4, 2016

Please show the quiz answers for verification purpose since we have to buy the course to submit answers

By Shreya I

Jun 10, 2020

the week 2 quiz was so difficult, u should reduce the pass percentage ! it was really time taking

By Nikolay A

Oct 7, 2019

Poor level of support and detail. Problems are getting hard - not enough resources available.

By Kelly R

Mar 20, 2016

Good Course, but in my perspective the teachers could explain better.

By Weiqi Y

Sep 27, 2017

not as good as the previous ones in the specialization.

By Maria U C

Jun 27, 2020

Quite difficult

By Алексей

Oct 24, 2018

Pros:

There are a lot of interesting subjects - the basics of the cryptography (the Caesar cipher, the vigenere cipher), the practical use of the markovs model to generate funny texts, some basics with image filtering and if you dont use course IDE blueJ and duke libraries and found how to do this thing with java core - it will be more profitable.

Cons:

Using custom libraries is very bad for students. We must study java core not some custom libraries.

BlueJ also is a bad choise, even the notepad or the vim are better for understanding the compilation process.

Several tasks and questions are hardly to understand since they are badly formulated.

Also there is no peer reviewed assignments.

By Abraham F M

Dec 18, 2017

Two of the weeks were really complicated, confusing and badly explained. Made me feel that I did not learn enough in the last courses when in fact the problem was this course itself. They need to improve the explanations as it is the most complicated course and the videos are short and unclear. More videos, more explanations for the exercises, and more efficient mentors at the forums when we have questions is a must if you want 5 stars.

By Микита Б

Sep 21, 2020

Stuck in one and couldn't`t continue. For a four month my problems hasn't`t been solved

By Vlad S

Oct 31, 2019

Bad sources formatting, bad codestyle and bad project design