Functional Programming in Scala Capstone
In the final capstone project you will apply the skills you learned by building a large data–intensive application using real–world data. You will implement a complete application processing several gigabytes of data. This application will show interactive visualizations of the evolution of temperatures over time all over the world. The development of such an application will involve: — transforming data provided by weather stations into meaningful information like, for instance, the average temperature of each point of the globe over the last ten years ; — then, making images from this information by using spatial and linear interpolation techniques ; — finally, implementing how the user interface will react to users’ actions.
Courses : 1
Specification: Functional Programming in Scala Capstone
47 reviews for Functional Programming in Scala Capstone
Add a review Cancel reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Nils Helge G H –
There were too much ambiguity in the assignments. The structure and definition of the assignments made it unclear and difficult to solve with some of the included frameworks. It would be a lot better having a stricter definition and limit it to one or two frameworks that were suitable for the specific definition of the assignments.
Pyshchev N –
I love functional programming! that’s fun and an great expirience!
Overall I liked the course but some of the grading output was hard to understand what exactly I was getting wrong.
Roberto S –
Kind of a long homework, quite open ended in the sense that implementations are not guided step by step by the instructor. Some of the tasks can be approached in different ways and can be quite challenging at time.
Kyle L –
I have finished previous 4 courses, they are excellent. But this one not easy to understand, doesn’t have some simple test cases.
Niels P –
Excellent capstone that lets you test your knowledge of Scala in a (semi)real project environment. Though i found that the main difficulty for me was in understanding the context of geographical computations. Making it difficult to find if not passing test was due to error in my code or in my understanding of geographical context.
CAI X –
Nice course which cement your knowledge of scala in action!
IURII B –
CHUI C H –
Learn a lot about functional programming and spark, it inspires me how the data could be process in big data world.
Wolfgang G –
pretty tough, but informative!
Zhu L –
I’ve read a lot of reviews before me and see that they mentioned several cons: off topic programming assignment, imbalanced difficulty distribution and instable grader, vague feedback information. For the few points mentioned above, I’d say I’ve experienced all of them indeed, it’s true. But for a project that’s to be called “real”, you’re gonna have to adapt yourself to production environment and work like a true professional. That means you gotta tolerate faulty situations and ambiguous specifications. (Quite often, you don’t know WTF they want, but you’ll eventually come around and hand in a piece of code that runs smoothly with the right output.) It’s something you deal with every day if you work in a tech firm as an SDE, RSDE, etc.. In terms of this kind of blank filling programming assignments, it’s just fine for me. Some argue that they should allow us to write everything from scratch and judge the grades by the output, allowing more flexibility for the developemt process. I think the skeleton code is simple enough, leaving enough freedom for you to mess around. If you allow me to start from scratch, I’m gonna finish it with C++ or Python. The one thing I say they should really fix is the instability of the grader. Random failures and insufferable waitings are the two things that take away most of the fun. The programming assignment itself wasn’t so hard, but was made unnecessarily much harder by these two factors. For the sake of the previous four courses, I can spare 4 stars. But I understand those 1 stars.
Benjamin S –
In this course, you are asked to apply your Scala knowledge to a more practical project. However, I found the tasks rather confusing and lost track of the actual purpose of the application. In the end I just implemented everything function by function. So it felt more like in exercise in understanding the goals of the course instead of a Scala training. If the goal is to develop an application that feels a bit more real world, it would be good to have more vivid explanations of the business logic, for example in videos and not just as text.
William H –
Outstanding set of courses. Just to counter comments about grader stability and lack of grader feedback I never encountered this in any of the 5 courses.
Henoc M –
Mykola S –
Great course and specialization! Many thanks!
Iurii S –
Would have liked more tests provided with the capstone to supplement often vague specifications. Feedback from autograder is often obscure as well as it refers to some input parameters of the randomized test hard to take guidance in code improvement from it.
Fleur K –
The first couple of assignments I found harder than the rest, and also the best bits. I found myself enthusiastically telling my colleagues about the data files and the spark code to join them. After that it got a bit too simple perhaps. And a little contrived. Some of the curried functions you had to fill in were way different from what I’d have written if I’d been staring at an empty screen and even after the course I’ve still not learned why I’d want to use this setup. The Signal bit in the last assignment was just plain silly, I think. It remains completely unclear why you’d want to use Signals here, other than that you want to refer to materials from the reactive programming course, and the sample code for the update doesn’t actually work because the update method is protected.
Oleksandr V –
In my opinion the course is designed very poorly. Firstly, I was expecting the Capstone to cover different aspects of the rest Scala courses more or less equally. But in fact this course is 80% about math and java performance tuning and only 20% about very basic Scala. Secondly, due to the poorly designed given skeleton methods it is very difficult and cumbersome to write a performance effective solution. In order to generate real images I had to write two implementations one for the grader give me 10/10 and another one that really works and is capable to generate images effectively. Of course I had to get rid of all the given method signatures and reassemble the pieces in different way. E.g. performing more computation in Spark, combining several steps of computation in one, preferring stream style processing with less memory allocation etc. Actually I have found myself spending more time fighting with the given skeleton and the grader, rather than writing a workable solution. Also, if I were designing this course I would rather go from the top to bottom when slicing the implementation into layers, steps and weeks. So the first step would be to implement a UI using mocks, then replace some mocks with the real code and so on down to the Spark level, reading the CSVs and proving the real data for the solution. This way the student would clearly understand how the methods being implemented are used, giving him much more input for creating a good design, rather than just blindly implementing some methods that somehow will be used in the next week etc.
Ciprian L –
too much UI
Chet W –
Very cool to see the entire application fit together eventually. However, feel sometimes the explanation for the exercise could have used more details/examples.
Ruben R –
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.
Lots of ambiguity in the course assignment, especially the 5th week one. Also response from teaching staff is very poor.
Hessam S M –
Excellent way of ending this specialization. This course covered almost everything was taught during the other 4 courses and gave a concrete real world usage of it. It helps to see the knowledge in action in a very cool way. Definitely take this course, the feeling of satisfaction at the end alone makes it worth the effort.
Diego D W M –
Awesome project!. It is not only wrapping all the previous concepts in a real use case, but also introducing a lot of different algorithms! Calculate deviations, spatial interpolation, great circle distance, inverse distance weighting, etc.
Francisco J D d S F G –
I really enjoyed this course it goes from the very basics of Spark and tests your ability regarding Scala knowledge. The capstone project is really well structured, but at times it felt like the instructors could give more information concerning some definitions around the project, i.e. how all of the case classes from the models file interconnect or relate to each other. By the end of the project it would be helpful explaining how the Layer class was actually structured as well. In reality my opinion of this course is 4.5 out of 5 I think the instructors made an admirable job trying to convey most of specialization concepts into the capstone, so congratulations : ). If not for some of the aspects above, I would rate it 5/5.
Good Spark / Big Data project. Provides a good example of real problem project focussed on Spark and big data analysis.
Ryan S –
I enjoyed this course, but I believe there are some errors in the grading code related to interpolating colors. I raised an issue about it on the week 5 forum but never got a response. The project was interesting, but it would have been nice if there was a way that we could have been a bit more free in how we designed the interfaces. If you were trying to use something like a spark RDD it made it pretty cumbersome, having to always fit everything to an Iterable at the end. ALSO, I tried to add a library when I was doing this to add the shapeless library to this to add some interesting features which would have made the code a lot more general. I spent days getting it to work, only to realize you library dependencies are not actually imported when you submit, it only runs with the base ones that were pre defined. A warning about that would have been nice.
Rodolfo N P –
For a lot of sections one couldn’t really use Spark, said sections were restricted to translating Spark datastructures to Scala collections and working with those.
Gyeongmin G –
Most of the case, it is hard to deal with big data. This course provides an opportunity to handle big data and visualize the handled result on UI. Also, as you learned from FPD in Scala course, UI is developed with Scala.js
Sergey G –
Massimiliano D –
The perfect end of the course. It manages to recap all the concept, the libraries and the exercises that has been done during all other courses. It is a good point to remember all the things that one has been made, and a good point to review all the things that were not so clear.
Rob S –
Interesting project and fun to work on. As with many of the other courses, could benefit from providing a few tests. Even after writing property based tests using ScalaCheck there were some grader results that I was unable to reproduce. In the end, still worth the time and effort invested.
Denys L –
This is the hardest course of this Specialization, but I enjoyed it anyway. Thanks!
Natalija I –
Capstone project is challenging specially because of the performance standards. I enjoyed solving the problems
Jonathan W –
Thanks to the staff for any help, especially during a busy end of year
John S –
Very fun and enjoyable project!
Subodh C –
Thanks for designing the course.
Marc K –
It’s very well put together. It just requires a great deal of time dedication specially because blocks of time should be meaningul to not lose the context present in one’s mind.
Ronald C M –
Will D –
I appreciate how hard it can be to write coding assignments. Especially in this case it seems as though the limitations stipulated by Coursera may have been quite restrictive for a big data spark project. However, I was really disappointed with this course. Rather than getting to test out my scala/spark skills I found myself trying to shoehorn functions into the methods provided by the grader only to have them fail unexpectedly with little feedback. Some more pointers on how to setup appropriate unit tests would also have been quite helpful. It seemed not so straight forward for spark.
Edem N –
A good project broken down into stages that can be independently tested to produce a final product that is both complex and interesting. The forum didn’t have any of the TA’s responding during my period and as such mean’t that any concerns that I had were not being addressed. I had particular concerns with the grader input data where I had issues with its output. Apart from that a great way to put all the skills of the Scala Specialization into use.
Sanjeev R –
Nice hands on Course
Matthew P –
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.
Joaquin D R –
Carsten I –
Tough but interesting, it definitely showed you the importance of writing unit test!
Alan A C –
The course is great, but if you pass all tests, in Week 4 you can get the certificate. The project is linked to Week 1, which is weird because doesn’t match well with the schedule set in Coursera.
Michael L –
I did the original courses back in 2016 and have used Scala consistently in various roles. I’ve done so many courses, I wanted to just finish this one and complete the specialization. I think I’m familiar with various Typelevel projects, SBT itself (I wrote a cucumber plugin for it) and have used Shapeless and Cats in anger. I’m familiar with ScalaCheck and have done a few O/S projects. This course … perhaps I’m being unfair, but the project doesn’t feel ‘idiomatic Scala’. I think the course could use some of the Typelevle libraries as a starting point and lead devs into how to write functional Scala. In my experience Scala is used a) for a functional programming language b) to drive Spark. Just as people will use Python for numpy/tensorflow (e.g. you can’t compare Spire with numpy). The ML niche is lost, so I hope the content of these courses will still be useful for another 5 years.