Chevron Left
Functional Programming Principles in Scala に戻る

スイス連邦工科大学ローザンヌ校(École Polytechnique Fédérale de Lausanne) による Functional Programming Principles in Scala の受講者のレビューおよびフィードバック



Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and Javascript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as Twitter, Tumblr and also Coursera. In this course you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks. You will also develop a solid foundation for reasoning about functional programs, by touching upon proofs of invariants and the tracing of execution symbolically. The course is hands on; most units introduce short programs that serve as illustrations of important concepts and invite you to play with them, modifying and improving them. The course is complemented by a series programming projects as homework assignments. Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line....



Sep 24, 2019

As expected Martin is awesome in explaining principle of functional programming. I have started reading the book as well to make sure I keep up with the knowledge which I have gained from this course.


Sep 14, 2018

It took me much longer than expected to finish the course and sometimes it made me feel stupid and helpless. Diving into functional programming was a mind bending experience, totally worth time spent!


Functional Programming Principles in Scala: 1 - 25 / 1,321 レビュー

by Vladimir P

Sep 14, 2018

It took me much longer than expected to finish the course and sometimes it made me feel stupid and helpless. Diving into functional programming was a mind bending experience, totally worth time spent!

by Tom Y

Dec 27, 2018

The course was quite good all in all, and even though I'm already experienced with many of the aspects involved in software engineering in general and in functional programming in particular, I've followed it with much interest and gained some new perspectives. And it's been a great introduction to Scala (a language I had not written code in before).

The teaching is very good! Prof Odersky's explanations are very clear and go into the right level of detail, and the exercises and assignments are interesting and seem to be well thought out.

I personally would have liked the course to be deeper, both in explaining functional programming (e.g. the monad pattern) and in covering more advanced features of Scala (e.g. the less trivial parts of the type system), but I guess the given course is OK as an introduction and I can also go look for the stuff I'm missing in other courses and/or outside Coursera.

Two minor things that damaged the experience to a little extent and which I would recommend to improve for the future: 1. The technical introduction was good enough to get me started, but did not cover some problematic aspects which had me stuck for a long while (it was also very difficult to solve by googling, and a colleague of mine - who's also taking the course - ended up solving it by chance). Specifically I'm talking about worksheets not working properly unless created within a package directory, and for some things unless set to a certain mode of execution (non-REPL). Disclosure: I haven't looked for solutions in the course forums; it's possible that this was asked and answered, or that I could have asked and gotten an answer there. 2. The videos were poorly edited: some bits repeated, some clips were obviously recorded for a specific week number but then given in another week, some parts had obviously been there originally (and other parts referred to them) but then they didn't make the final cut... It's a pity that an otherwise very well made course suffers from such small technical problems, which, while not too grave, cause confusion and increase the mental load the learner has to cope with - which is already laden with challenging stuff - with such non-important and easily avoidable distractions.

Thank you!

by Pere M B

Jan 06, 2019

Really well explained, with thoughtful examples and labs that make your brain actually comprehend all the lessons.

by David F

Jan 14, 2019

The course in general is kind of theoretical. Some of the homeworks are fairly challenging. I found it a useful companion to the Programming in Scala book, which I'm working through at the moment.

by Jerome F

Feb 17, 2018

I wouldn't recomand this course to someone who wish to learn scala. Some explanations and exercices are quite hard and not suitable for a beginner. I had sometimes the feeling that what was asked in the exercices was not seen in the videos or very briefly. I'm a little bit disapointed.

by Scott L

Jun 04, 2016

I am a statistician who works primarily with R, with some Python for the things Python is better for. I know how to program, but I explicitly note I am not a computer science student. I have only limited experience with the command prompt. I was very excited when I heard about this course, but the amount of work and frustration just to get started programming in Scala has been obscene. I am very, very glad I decided to check out the course for free before paying for the specialization.

The course has a lot of required software. The tutorials to get this software often involve "You need this, but so save time we're going to skip showing you how to get it. If it doesn't work, you need to install it." There is a lot of variability in OSs. Many errors are often encountered. There is no help.

Among the things the course requires are two (three?) IDEs for Scala (I note the video tutorials says you just need some sort of IDE... but you need IntelliJ, and Eclipse to submit...). The guides show how to get started on a Mac. The software is not the same on Windows, and so 'step by step instructions' become a guessing game, because many options or menus are missing or different.

There are many better and more friendly guides on the internet. I may return to the transcripts of the course content here, but I won't be submitting any coursework. I'm going to warn my colleagues away as well. Forget Coursera - I'll just buy a book and work through it like everyone else I know.

by Darren B

Aug 13, 2017

This course helped me significantly. There is very little in the way of AFFORDABLE Scala Education out there. This is a problem. There are endless educational resources for Python. Scala has a lot to offer programmers if only they knew where to find adequate educational Resources for Scala.

Make learning Scala easy enough for a 12 year old to learn and you will see it explode.

Make Scala, Easy ! Make Scala, Fun ! This is essential to opening the young minds interested in Computer Programming.


Why isn't there a native Graphic Scala Lib like Python's Tkinter?

Not everybody wants to be a "Big Data" Mining Engineer.

If Scala can produce graphics from the Java Swing library and experimental ScalaFX graphics lib, then isn't it time for Scala to have it's own native Graphic Library that is at the least as capable as Tkinter for Python.

There is no better feeling than the liberating emotion you get from creating programs, games and Apps on your own PC. Let the Power of Scala out.

Make it easy enough for Kids to learn and get out of the way!

by Joe H

Sep 05, 2018

Generally excellent! Reading around other online introductory resources the difference in clarity from the creator of the language, Martin Odersky in this course is very clear. I feel I have a good base to continue my learning from. To make it even better as an introduction I would have liked 3 things. Firstly more examples and exercises. along with the more challenging ones, more correct vs incorrect examples exercises, to reinforce the theoretical understanding that is so clearly present. This would translate more quickly into practical coding skills. Secondly some more tips on the development environment, specifically how to get the debugging tools working. Lastly, updating the code base to the lastest versions of Scala and SBT, so there are no deprecation warnings when building. Having said all that, I'm really happy to have found this course and excited now I've completed it to continue my learning of Scala.

by Diego

Sep 29, 2017

Very interesting course, it totally changes your mindset from imperative programming. Basically it teaches you to think in terms of recursion instead of loops. Although some assignments can be difficult (and take several hours), they are helpful to understand the concepts and challenging as well so they keep you engaged to the course. Besides, the lectures are very clear and designed to give some hints on the assignments. Since Scala is based in Java, previous knowledge of Java is an advantage, but not a must. However, previous programming knowledge is a must in my opinion.

All in all, a very recommendable course to take.

by Aneesh D

Sep 23, 2017

A great course. Functional programming really is a different way of thinking about programming and this course does justice to all of its core concepts. The assignments are very well structured and teach all the best practices of the paradigm.

by Amit J

Sep 24, 2019

As expected Martin is awesome in explaining principle of functional programming. I have started reading the book as well to make sure I keep up with the knowledge which I have gained from this course.

by Pritam B

Sep 28, 2016

I have never worked with Scala before. But this course has not only given me, basic level introduction but also taught me advanced concepts and how to apply those concepts in real world problems.

by Bogdan P

Aug 04, 2019

It's brilliant in rewiring a mind from OOP to functional thinking.

by Ivan P

Jun 29, 2019

The course was awesome, but some tasks(llike huffman encoding) are really hardcore. Also, there are not that much information on implicits

by Adolfo E

Mar 12, 2018

The exercises are too hard in my opinion, which sometimes leads students to stuck with a problem instead of focusing on learning the basics of Scala and functional programming principles. I spent too much time to finish the course and I think that the amount of time spent would be enough to be earn more knowledge about functional programming by itself. Although my opinion about the exercises, the course is a good one which I would recommend to my colleagues. At least, if you finish this course it proves something about the student. That is to say that if someone finish this course it tells that the student don't give up when facing hard problems, and is a dedicated one.

by Thomas S

Oct 11, 2018

Myself and a senior software engineer in my team are unable to get the example assignment to compile, this may be due to the version of sbt being so old that things are falling apart. Asides from that the videos are informative but i am now using a different resource to practice.

by Pierre-Yves D

Jan 07, 2020

Setting up the environment may be part of the job but you really need to work on that part because many people won't even be able to compile and submit a single assignment.

by Patrick K

Feb 20, 2018

Videos all use old versions of scala/sbt/java/intelliJ. Dependencies only work on some versions of scala. Too much work to just get dev environment setup.

by Rishabh A

Jun 11, 2018

Worst course. Even the first step for IDE is not explain properly

by Fridrik M J

Jun 21, 2016

I've been developing in imperative languages for the past 10 years, and my motivation for taking this course was to make sure that I was using the functional capabilities of the language.

While I've embraced immutability and higher-order functions since I started writing Scala, I haven't solved significant programming challenges using functional thinking. Much of what I've already done with Scala so far has been relatively stateless request-response communication between systems, and the challenges so far tend to be on the architecture end.

This first course taught me useful things that I hadn't encountered in my industry use of Scala. It has given me greater appreciation for the design of the language and the problems that Scala can solve elegantly. I've also acquired more interest in learning about more functional approaches to various problems -- perhaps I'll dig deeper into SICP at some point!

The assignments were a good fit for me -- they were challenging enough that they got me to think but not so hard that I got stuck. Scala's rich type system came in handy for the assignments -- once you've got the right idea for an approach, you just have to get the data structures to click (with some help from the compiler), and things just work!

I appreciate that the assignments and examples were realistic. Getting to implement Huffman Coding and basic data structures (functional and OO sets) helped me both appreciate the functional way to solve problems like these, and to understand the class of practical problems where similar solutions are applicable.

Great course, and I'm excited for the next ones! Thanks to Martin and the course staff for their hard work on the course!

by Philip L

Sep 04, 2016

Tremendous course.

Explanations can be terse at times, especially after going over quizzes (where you may only follow what is going along if you successfully solved the quiz, otherwise you may miss important insight), but on the whole, lectures are very strong and help you gain a working understanding of functional programming.

The assignments are carefully crafted and really give you an opportunity to try the stuff from the lecture. Definitely felt like I learned a lot during the assignments.

I found that the last two assignments took more than the recommended 3 hours (closer to 5-6 for me), so plan accordingly.

Personally, I found that this course is even better if you read through the first 4 chapters of Functional Programming in Scala ( before doing this course. By getting two separate, excellent explanations for the same topics, I was able to understand the material much better than just from one.

by Christopher K

Dec 13, 2016

This is an excellent course and a great introduction to functional programming and Scala. If this is the first time you come across functional programming concepts and practices prepare for some frustrating times ahead … but don’t get discouraged it happens to everybody. This is not the kind of course that you can rush through and get a 100%, it needs your attention and some thoughtful effort. Needless to say, if you persist till the end the rewards are plenty, and by the time you complete the course you ‘ll have a feeling of real accomplishment and satisfaction.

Prof. Odersky is an excellent teacher and the material is well organized and presented (probably because a version of the course is offered at EPFL as well).

If you are interested in programming/programming languages don’t miss this one out!! It’s a course that is well worth your time.

by Jong H S

Aug 21, 2017

It's really a privilege to learn from the master Professor Odersky. This is a wonderful and relevant course. My most sincere appreciation to Professor Oderskey who has gone great length to impart knowledge of Scala to the masses. This course, together with 2 other courses in the series have removed all doubts and skepticism I have on when and how to use Scala in Data Science, what kind of problems that I can solve using this language and so forth. This course is truly effective and of the highest quality in every aspect: delivery, content and assignments. In other words, it is of Rolex quality. I will surely recommend this course to anyone interested to get started with Scala or even seasoned programmers. Kudos to Professor Odersky and team.

by Endre P

Aug 30, 2018

Really good course to learn the basics of Scala (well). I always thought Scala is simply a better Java, and read a book that followed exactly this approach, since I am an experienced Java developer. However, after taking Martin Odersky's course, I realised his approach to teaching Scala, namely considering it as a completely new language rather than an improved Java makes it much easier to master the language for those who are already experienced in Java or C#. Prof. Odersky is really good at explaining, and leaves no loose ends in the material, which is rare in todays MOOCs. The assignments are also complementing the theory well enough, and makes you practice all that you have learned from the videos. All in all, a great online course.