Sep 08, 2019
The capstone project has done a fantastic job of drilling in some of the important fundamentals taught in the rest of the courses. It is definitely worth taking if you've done the rest of the courses.
Jun 14, 2017
Good course, some of the assignments could have been more explicit with expectations in cases where specific implementation details matter but the forums were helpful in that regard anyways.
von Marcio G•
May 10, 2017
The course's introductory description, "In the final capstone project you will apply the skills you learned by building a large data-intensive application using real-world data." is quite misleading. The fact that this course is cataloged under "Data Science > Data Analysis" also suggests that the course's project is data-centric, but that's not the case at all. This course requires very little data manipulation (basically only the first milestone) and no data analysis at all. The project is for the most part a "Slippy Map" implementation in Scala. Suggesting that this application has anything to do with data science to appeal to customers is down dishonest.
But even if you're forgiving about the absence of data science and you're satisfied with Scala only and think that you can use the final product of your labor to showcase your skills to employers, I'm afraid that it wouldn't be very helpful.
The "fill-in the missing code" grading model (all methods signatures are pre-defined and you have to complete them) robs the student from the opportunity to practice or showcase any object-oriented / functional-programming design skills. In my experience, that's what employers want to see. Can the candidate design code that is easy to change? Does the candidate's code follow S.O.L.I.D. principles?
For the employers that are more algorithm-centric in the interviews, I think that is unlikely that they will ask you to implement algorithms taken from Wikipedia. They will usually give you a problem and ask you to either design an algorithm or find the proper algorithm to solve a problem on your own.
The instructor also suggests that Spark could be used, but that's untrue. Even though the library dependency is in the SBT file, you can't actually use it given that the template code wasn't designed for this purpose (large collections are unnecessarily kept in memory and you can't change the design without making it incompatible with the grader) and, again, you would only use Spark on the first milestone.
Unless you're interested in web maps, I don't think that this project will be very useful for you.
Regarding grading, I managed to make every single milestone pass the grader's tests, but that's not an easy task given that the grader messages are quite cryptic and don't follow TDD best practices (tests should be "executable specification", they should document the requirements and should be readable).
Many times a submission wouldn't pass the grader because of small differences in the parameters you have chosen in your implementation. The grader messages aren't very useful and given that you don't have access to the grader's source code, you have to resort to trial-and-error, which can be very frustrating.
They even hide crash and timeout messages, so your submission might fail and you don't even know which one is to blame. All you get is a "0/10" score and no clues on why it happened.
I truly recommend anyone who wants to showcase Scala work, to create an application from scratch. Even if you're not bothered by the cons that I mentioned, I'm pretty sure that soon enough (I took the first iteration) you will find people sharing their solutions on GitHub, which makes the certificate pretty much meaningless.
von Tobias G•
May 15, 2017
In my view this course fails on 3 fronts:
1) the construction of the exercises is quite poor: they don't build well on each other and they don't really produce a sensible application, because many optimization opportunities are ignored - for example, to avoid having to calculate the same thing multiple times, to ensure that lists are ordered for quicker searching etc. If the idea is to teach novices good application development this course fails miserably.
2) the fact is you can pass this course without writing a single unit test, and without producing a working application - in fact, you can get 10/10. This seems wrong for a 'capstone' project.
3) Because of the design of the exercises (the function signatures) it is hard to make use of Spark in a sensible way. Spark is surely a major reason many people follow the overall program. Why does this project not build on the Spark course? That would make it really interesting.
von Anton V•
May 20, 2017
The course was supposed be a practical application of everything we've learned in all previous courses. I was not. Instead of learning functional design or applying big data analysis framework everything just worked with simple ".par" after large collections. I don't remember myself optimising memory usage or reducing shuffling with spark. What I do remember are hours of fiddling with floating point precision trying to figure out why a test fails with "30 is not equal to 30.06". Moreover, tests were just not good enough: even after I've passed week 1, I had to come back to that code when tests in subsequent weeks were failing. Lastly, complexity of the weeks is badly balanced. It took me three weeks to complete Week 3, but I've finished weeks 4-6 in about 2 hours.
von Fernando C d L•
May 20, 2017
I didn't learn anything new about Scala or Big Data from this project. It was more like how to "tune" the code so that I can pass the assignments. If you want to learn about maps and coordinates and all the math that goes with it, this is for you. Otherwise you're losing your time.
von Rubén R•
Jan 30, 2018
All the exercise are poor explained and It's need a hard math background. It's not a scala or functional course, It's a math exercise problem with scala.