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,474 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 252 Reviews for Java Programming: Principles of Software Design

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.

By Mary S

Sep 24, 2018

Decent. Moved kinda slowly, but it's for beginners, so what did I expect? This is a nice progression of classes for someone with no previous programming experience; if you have previous experience, in another language, you may wish to start with an intermediate course.

By Michael C

Sep 12, 2016

Good examples -- good basic instruction in videos, but most of the value is in working the exercises which use some fairly interesting real world scenarios. And some of the direction is as vague as specs you might encounter as well.

By Khushboo M

Dec 3, 2022

Good course to start with, BlueJ experience for the first time was amazing for specific to this course. and the real life example of earth quake and the interfaces were thought in such a nice way that it engage to listen and apply.

By Muhammad F B J

May 21, 2020

The idea of using interfaces and abstract classes were not covered sufficiently in my opinion. That said, I was still satisfied with the content being covered. Instructions on some of the exercises could have been better explained

By Gianluca B

Jul 8, 2020

It is a good course, but I believe it needs to be updated and that some quiz need reviewing. Sometimes it's really hard to understand what an exercise is asking you to do and there isn't much support.