Chevron Left
Back to Java Programming: Arrays, Lists, and Structured Data

Learner Reviews & Feedback for Java Programming: Arrays, Lists, and Structured Data by Duke University

3,039 ratings

About the Course

Build on the software engineering skills you learned in “Java Programming: Solving Problems with Software” by learning new data structures. Use these data structures to build more complex programs that use Java’s object-oriented features. At the end of the course you will write an encryption program and a program to break your encryption algorithm. After completing this course, you will be able to: 1. Read and write data from/to files; 2. Solve problems involving data files; 3. Perform quantitative analyses of data (e.g., finding maximums, minimums, averages); 4. Store and manipulate data in an array or ArrayList; 5. Combine multiple classes to solve larger problems; 6. Use iterables and collections (including maps) in Java....

Top reviews


Jan 9, 2020

Actually, before I start this course I had not a good idea about OOP concept such as constructors, I have fair confidence about that. thank you duke university making such an arrangement.


Mar 29, 2017

Good and practical training approach to solve real worlds problems. Assignments and quizzes are quite challenging and interesting. Greatly motivates us towards programming and problem solving skills.

Filter by:

1 - 25 of 545 Reviews for Java Programming: Arrays, Lists, and Structured Data

By L.R D G B

Jan 10, 2020

Actually, before I start this course I had not a good idea about OOP concept such as constructors, I have fair confidence about that. thank you duke university making such an arrangement.

By Chris T

Jul 20, 2018

The course was pretty challenging (and occasionally frustrating) for a novice programmer, but doable.

I enjoyed the course, and came away with a greater understanding of computers and programming.

By Labib M R

Dec 7, 2015

Despite having some tedious assignments, this course impressed me. It taught me the new topics very well. I liked working on the last few assignments. I would recommend it to learners looking for a good course to learn Java and it's applications.

By Ong J R

Apr 19, 2019

Good intro to ArrayLists, HashMaps and HashSets, but assignments are very repetitive.

By 蔡鸿斌

Nov 15, 2018

Great task for beginner.

By Γεώργιος Κ

Mar 23, 2020

It's not the perfect course (I would rate it with 4.5) but it is one of the best courses you can have that reassures that certificate corresponds to your learning. If you want truly to learn, be familiar with java's simple processes, obtain some computational ability and not just add a certificate to your resume then this course is for you.

The weak part of this course is that the IDE proposed is not so easy to use and you will not use it again after this course. It may also stall your programming. (Most of the time it was so slow to test some things and simple commands I had to open jshell also.)

This course has simple but interesting datasets, wisely chosen for newbies in programming. The challenges given are simple yet capable to add new skills to the student. The student won't have to search the net to find extra information. Everything is in the lectures and watching the lectures and probably some testing will be more than enough to complete the tasks and simultaneously obtain the skill. The challenges are many, though sometimes tiring, and practice ungraded questions make sure that the graded ones will be answered.

If you already know java and seek specialty, this course is not for you. If you want to learn java as a first or a second programming language probably this could be an ideal course.

By Shayan A B

Jul 11, 2016

This course was very hard but the idea of teaching Java Programming with the application of cryptography was a magnificent one. Cryptography kept me motivated to complete the course as it is an interesting study. Hats off to the teachers for organizing an interesting course and for teaching it really well.

By Gowtham B

Mar 30, 2017

Good and practical training approach to solve real worlds problems. Assignments and quizzes are quite challenging and interesting. Greatly motivates us towards programming and problem solving skills.

By Arnav K

Feb 29, 2020


By Preston T

Jun 1, 2020

Needs to talk more about the theory and how the data structures work (HashSet, HashMap, ArrayList). What are their efficiencies? None of this was discussed in the class.

By Wesley N

Jan 22, 2020

The course was good for developing routine problem solving skills, as in the first course "Java Programming: Solving Problems with Software". However, the emphasis was supposed to be on Arrays, Lists and Structured data, and I do not think that was the case. These topics were mentioned tangentially to solving the class problems, rather than being the focus.

In summary, I could have learned as much about Arrays, Lists, and Structured Data in about 30 minutes of Googling as I did in 4 weeks of this course. However, it wasn't a total loss, as I became more proficient at the basics, simply because of the exercises.

By Pranav B

May 20, 2020

So far the best course in the specialization. Thoroughly enjoyed doing all the programming assignments. The last project was fun because it felt like finally applying the principles you learn and building something out of it.

I don't think there's much to complain about with this course. The only one that the object-oriented nature of Java is underutilized so far. Although I gotta say this course takes a big leap from its predecessor with respect to OOP. The multiple classes and their functioning together gives you a nice taste of how OOP works at a high level. Of course, there's much more for OOP to offer that isn't covered here (inheritance, polymorphism, overloading, static methods, error & exception handling in Java to name a few).

One of the good courses I've encountered for learning programming paradigms. Personally, unlike any other course I take, I did not have to make handwritten notes for this one. The instructors were clear and concise and thus there was no need to write down. Most importantly, this is because you *really* learn by doing so there's no need to pen down everything. In case you forget a method, you've always got the documentation to refer to!

On a final note, take this course, you will enjoy it.

By Tran P H H L

Dec 27, 2021

Honestly, I think the course from Duke is better than UC San Diego, at least the goal of the course at Duke is quite clear, it helps me think to solve the problems that the assignment poses, It's basically programming thinking, and it's essential to whatever language or framework you're going to use in the future to solve problems, it's a good course, as for UC San Diego (3rd course in this major - OOP in Java) , they use a rather old technology that is Applet and it doesn't work with new version of Java, and dozens of other bugs with OpenGL, Canvas included and I still can't fix it, instead of focusing on OOP, solving and designing, organizing code based on OOP, now we have to fix errors on IDE, Applet, OpenGL, Processing (a library like JavaFX, Java Swing) just to run the code and do the exercises, it took me a long time to fix the unrelated errors that come from the IDE, the operating system you use (I use linux and couldn't fix it to make it work at all, I couldn't find any information about the bug on gg,stackoverflow to fix it) , quite disappointed about the 3rd course in this major

By Jade F

Dec 16, 2018

The subject and assignment choices in the course are very practical and enjoyable - the emphasis on cryptography provides a lot of interesting discovery and by the end of the course you're easily cracking very complex encrypted messages. I thought that the log parsing exercises had a lot of real world usefulness for me personally as well.

The course will train you to quickly conceptualize how to solve problems by writing methods that fit assignment requirements and get you on your way to being able to talk about problem solving the way they do at job interviews. I highly recommend this java course - it felt like it had a lot of value all the way through.

By William G

Sep 30, 2020

I'm overwhelmed by how well and intelligently this course is structured and designed. It strikes a perfect balance between suggesting how to implement algorithms, providing a lot to go by so that one can easily get started, but without giving away too much, so that one is forced to put a bit of reflection into the coding.

As always, I wish there was some kind of evaluation of the script such as is found in Princeton's free courses e.g. Algorithms I & II and "Computer Science: Programming with a Purpose". Nevertheless, I feel I am learning so much that I can accept that my programming will get polished over time.

By Chitraank S

May 28, 2020

Just like the previous course of this specialization this course too is the best example to learn through the implementation but I won't suggest a beginner start his journey all the way through this course but to be clear with all the basics.

I got the advantage of having read such implementations all it took to try the code and modify it as per demand.

By Qing O

Sep 3, 2016

Very useful course! But it is not challenging enough. My advice: more challenging assignments to be given, and do not give too many detailed steps or instructions in the assignments. Let students themselves to solve the algorithms. Overall, this course is very useful and I like the lectures of Robert the most! His logic is extremely well explained.

By Aman T

Feb 19, 2020

Pretty tough course especially for a beginner, but yeah, it contains the fundamental concepts really important for learning. Some instructions could be more explanatory instead of being vague like ones in week 1, considering week 1 is the start of such alien concepts. Overall, this course on coursera has been a great help to me.

By Mayala W

Feb 16, 2020

This course was quite challenging for me but the feeling that i have now after completing it is priceless. It gave me more confidence to start a career as a Junior Java Developer. What seemed to be impossible when i started this specialisation is now possible. Thanks to the instructors and thanks to Coursera indeed.

By David H

Oct 12, 2018

The projects for this course were challenging and interesting, and the videos and activities provided excellent information and were well-presented and explained. I thoroughly enjoyed this class and learned a lot about how to program in Java by making use of hashsets, hashmaps, arraylists, and other structures.

By George F

Feb 26, 2016

The course was appropriately challenging and a sound use of my time. My goals for it were unusual, and it has satisfied them. I feel very strongly that most students should take it in sequence with the other courses in this group and will benefit greatly from it and from completing the entire sequence.

By 钟卓昀

Nov 22, 2017

This is the second course I take about Java, following the specialization of Oriented Programming. This second course is even better than the first one as it becomes more difficult and practical. The course is still wonderful and the teachers are always good at motivating me. Happy Programming!

By Ahmed M A E M

Jul 26, 2020

The courses in this specialization are not easy, at all. But you will get a great sense of achievement after you finish any of them. you will need to put a lot of time here though.

I am speaking as someone who is not a programmer but I learned Python and some PHP before coming here.

By Ben V D

Sep 21, 2020

Another great course in the specialization. This one was quite difficult, but this also provided a lot of learning. The exercises were more in-depth and there was less guidance, which was frustrating & great for figuring out problems. Thanks for another great course!!

By Boğaçhan A

May 24, 2017

This course is an excellent opportunity to gain some skills that are essential to coding. Other than teaching the methods to code, the course is also highly focused on how to approach a complicated problem. It gives you valuable insight on breaking down these problems and develop an algorithm. The only bad side of the course is that if you are stuck, i.e. getting a wrong answer on a practice quiz or an example, you are going to have to find the error by yourself since the forum is not that active.