Chevron Left
返回到 Scala 函数式程序设计原理

学生对 洛桑联邦理工学院 提供的 Scala 函数式程序设计原理 的评价和反馈

4.8
7,951 个评分
1,615 条评论

课程概述

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, Netflix, Zalando, 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, such as modeling business domains or implementing business logic. 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 of programming projects as homework assignments. Recommended background: You should have at least one year of 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....

热门审阅

RS
Oct 8, 2016

Really good explanation by the instructor. Good assignments. The assignments gave a good insights into functional programming. I loved the way the problems were decomposed into neat smaller functions.

AJ
Sep 23, 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.

筛选依据:

26 - Scala 函数式程序设计原理 的 50 个评论(共 1,556 个)

创建者 Archesh P

Apr 1, 2017

Howeworks are way to difficult even for someone who has programming knowledge like me and the lectures doesn't do enough justice to prepare students for the homework.

创建者 Charles G

Apr 27, 2017

Assessments are way harder than the taught content, be aware to spend way more time on them than the estimates.

创建者 Dennis S

Dec 23, 2018

The name creates the false impression that the course is about functional programming. This is certainly not the case. It touches the topic during the first and second week, but covers only some basics. Afterwards it is really a Scala course with the regular Scala focus on objects and the later weeks also facilitate imperative programming which is fine, but not good for teaching functional programming.

The Exercises seem to target computer science students and neither beginners nor programmers that want to learn functional programming. This is unfortunate and the course could be better regarding that.

创建者 bilel b R

Dec 31, 2020

let me say something, it is abnormal in 2020 to spend the majority of my learning time to configure install and search how to do it .

Really very bad experience with this course

创建者 Ahsan

Dec 6, 2018

It was very hard to follow the instructions.

创建者 Jeffrey K

Mar 26, 2017

Not very practical.

创建者 Adolfo E

Mar 11, 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.

创建者 Mumtahin M

Apr 9, 2017

This course expects you to have a lot more ground for an intermediate course.

创建者 Joe F

Nov 1, 2020

I think having a graduate degree in electrical engineering, and not in computer science, plus over 30 years of procedural and object-oriented programming were blockers on understanding this course. The videos are nice but there seems to be an unwritten or implicit understanding that one will be go off to somewhere (where?) and go deeply into the theory and take whatever time it takes to understand the concepts at their highest level.

Then comes the end-of-course programming exercises. It is stated that one must "think" in order to do the exercises but after thinking for many hours and not getting anywhere, it is frustrating.

There is no support so you either get it or you are out of luck.

I really want to learn functional programming and use Scala to do that but it is not going to happen with this course. I do not know what path that will be but I will have to find one.

It would really help if this course would be more specific about what a person is expected to know before starting. If a graduate courses in discrete mathematics is assumed, then say so, List books or other materials that explain the deep fundamental that the videos and exercises depend on.

创建者 Alberto S

May 24, 2020

Presentation: instructor reads the presentation, adding no value to it other than a few words, scribbles, and obvious comments about what you just can read yourself. This slows down the progress.

Required Level: sometimes lectures feel more math theory than functional programming. This is distracting and serves no purpose. I wonder how people without math background would do if they have to learn / refresh what peano axioms are, how to implement huffman encoding algorithm while learning a fresh new language, etc. There's a reason why the first piece of code in every new language is the Hello World. As someone proficient in several development languages, I always learn the algorithm first, and then look for the implementation.

Parallelism: the course fails to establish a parallelism with OO languages in the relevant aspects, so people coming from other languages like Java and C# can really understand what's different in functional programming. There are shallow references when talking about primitives or classes and objects, but nothing serious. I wonder why the course requires proficiency in a previous development language if this wasn't the purpose.

创建者 Kirt U

Oct 17, 2020

0.

I have long since learned that the autocoders utilized are probably the worst pieces of software ever written. You would expect world class people to have long since fixed them. I submitted correct code but it was rejected and with ridiculous comments (like objecting to a return statement in an if-else statement in a recursive implementation [ex: if (xsAux.isEmpty) return num]. I no longer have time for such idiocy.

创建者 b

Aug 21, 2020

The intro says "will be using Eclipse" then it tells you how to load it into Intellij IDEA. I have spent two days on the intro assignment without yet getting it to work. The class documentation is sorely lacking and sbt /scala versions are old.

创建者 Rob G

Dec 17, 2018

I found the content to be too theoretical for an introductory course in Scala.

创建者 Guy B

May 3, 2019

The course is not clear at all

创建者 Alex

Feb 1, 2021

very unclear

创建者 Luis S

Feb 28, 2019

Poorly made.

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

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

Also!

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!

创建者 Samir S

May 25, 2020

I have been programming in Java over the past few years. So, when I first encountered Scala code at work earlier this year, I was under the impression that I could just go through other developer's code in my project codebase and learn the basics of Scala. However, as weeks went by, I realized that I knew only bits and pieces of the language; and often, I was left scratching my head in bewilderment at some of the functional style code that I came across very frequently. This was when I decided to enroll in this course, and I think it was one of the best decisions I made. Professor Martin Odersky covers the concepts of Scala and Functional Programming so well, with all the in-depth examples. However, the real icing on the cake is the assignment every week. I really had fun completing all the course work and I can safely say that I have learnt much more than I could have by just going through bits and pieces of other developer's code in a Scala codebase, in the same amount of time.

创建者 Philip L

Sep 3, 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 (https://www.manning.com/books/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.

创建者 Joe H

Sep 5, 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.

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

创建者 Cédric v B

Nov 20, 2020

This course was more focused on computer science as I had anticipated, and less on working with Scala as a language to build e.g. an application. Nevertheless, it is called "Functional Programming Principles" for a reason I suppose and the knowledge gained in this course are therefore (luckily) not limited to Scala. The homework assignments required some serious thinking (at least for me) but were still very well guided and fun to do. The video's were also very clear for me, I never felt that things were only partly explained.

创建者 Kevin L

Nov 3, 2020

I started the course with very little experience in functional programming and the Scala language. After finishing the course, I feel more equipped to continue learning beyond this introductory class. The programming exercises are challenging but I feel they are at the appropriate level in helping me understand topics covered in the videos.

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