Chevron Left
返回到 Functional Programming in Scala Capstone

学生对 洛桑联邦理工学院 提供的 Functional Programming in Scala Capstone 的评价和反馈

4.5
445 个评分
77 个审阅

课程概述

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....

热门审阅

MP

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.

KB

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.

筛选依据:

51 - Functional Programming in Scala Capstone 的 75 个评论(共 75 个)

创建者 Wolfgang G

Sep 01, 2017

pretty tough, but informative!

创建者 Edem N

Jul 29, 2019

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.

创建者 Sergey G

Nov 12, 2018

Buggy grader

创建者 Mikko L

Apr 30, 2017

The topic of capstone is great, but the milestones, and their APIs direct towards bad solutions.

创建者 Partha

Mar 20, 2018

Lots of ambiguity in the course assignment, especially the 5th week one. Also response from teaching staff is very poor.

创建者 Васеев Р В

Jun 24, 2018

Milestones 1-3 was OK but milestone 4 require a much more efficient solution. And the only info grader gives you is the message about timeout. It would be better if requirements for milestones 1-3 were harder to fullfill or milestone 4 would not depend on previous code. But it depends and if your solution is inefficient it's very painful to search the problem all around the code. It's offered to use spark and other tools in this project but using spark is also painful. I get inconsistent result from grader with occasional OutOfMemory exceptions, but this project cries to be implemented with spark. I've learned something during this course but it was too stressfull and painful.

创建者 Iurii S

Nov 20, 2017

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.

创建者 Canh S L

Apr 21, 2017

Good project but instruction is a bit draft. Probably because I joined their first ever one.

创建者 Anton K

May 25, 2017

It was too algorithmically and math heavy. Also, it would have been good to have more videos.

创建者 joshua

Jul 17, 2017

Overall I liked the course but some of the grading output was hard to understand what exactly I was getting wrong.

创建者 Fleur K

Nov 25, 2017

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.

创建者 Ciprian L

Jan 19, 2018

too much UI

创建者 Kyle L

Jul 22, 2017

I have finished previous 4 courses, they are excellent. But this one not easy to understand, doesn't have some simple test cases.

创建者 Ryan S

Jun 12, 2018

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.

创建者 David P

Jun 16, 2017

Tough to design a capstone for a course, but I was never really able to get excited about the capstone project. It felt tedious. Not sure if this is the course organizers fault thought...

创建者 Nils-Helge G H

Jul 13, 2017

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.

创建者 Adriaan T

Apr 12, 2017

For a course that requires you to work on your own project, it still forces you to follow a code skeleton outline. This limits the freedom with which to tackle the project's issue. There is not much guidance or support from course organizers, which makes this course not very educative.

创建者 Will D

Jul 16, 2019

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.

创建者 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.

创建者 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.

创建者 Oleksandr V

Dec 31, 2017

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.

创建者 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.

创建者 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.

创建者 Benjamin S

Sep 12, 2017

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.

创建者 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.