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

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

4.8
7,590 个评分
1,530 条评论

课程概述

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

热门审阅

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.

筛选依据:

76 - Scala 函数式程序设计原理 的 100 个评论(共 1,467 个)

创建者 Roland F

Jul 22, 2017

This is easily one of the best courses on Coursera. Martin Odersky explains concepts very clearly, motivates them well, and teaches at a level suitable for newcomers. He manages to effectively teach principles of functional programming while also introducing the Scala programming language. Exercises are challenging and require creative thinking that enable them to often be solved in multiple ways, and are very rewarding. I think that taking this course has made me more aware of good programming practices and thus helped me become a better programmer. Would highly recommend for anyone studying computer science or software engineering.

创建者 Sergio

Jun 25, 2017

Very good introduction to Scala and functional programming. Some of the exercises are quite challenging and i can imagine that the lectures would be difficult for someone who has never done functional programming before. I think it would be better that when a new concept is explained, it should be explained with a simple example. That way, the learner can focus on learning the new concept in isolation. Sometimes, a new concept is introduced in the context of a difficult or mathematical problem. This means that the learner needs to understand the problem domain as well as the new concept. This is the case in the exercises and the lectures.

创建者 Charles A

Dec 17, 2019

Amazing opportunity to see Scala from the perspective of its author. The explanations and topic sequence are really good. The examples and assignments are quite deep. I learned a lot about FP and the beauty of Scala syntax/constructs. The platform is really good. I will definitely do more Coursera courses. In a few places there's more maths than I expected (but it isn't necessary if you aren't interested). The getting started material is a little dated; I expect most people are using IntelliJ - it's very important to "import" the sample projects (not open them). Sometimes I found the guidance more confusing than the problems.

创建者 Joshua S

Oct 10, 2018

A wonderful course taught by Martin Odersky (Scala's designer.) The lectures are both meticulously crafted and thoroughly engaging. Odersky is that rare professor that's not only an expert but an exceptionally good teacher with a passion for the subject. Don't skip the optional lectures, every video is filled with gems. If you really want to know functional programming (for that matter, if you really want to know object orient programming) this course is for you. I've been a software engineer for more than 10 years, and I can't believe how much I am learning from this course, including subjects that I thought I already knew.

创建者 Santiago A A

May 16, 2019

This course was very useful for learning Scala the right way. Everything is perfect but, even for people as me with experience in big data, functional programming, and discrete mathematics, it was difficult to follow up on some exercises, especially understanding recursivity with set combinations or with 'for's with two variables(i,j). However, these very hard exercises were few. The other exercises are just hard, and there is not an easy exercise.

This is an advanced course for people with solid bases on discrete mathematics, data structures, algorithms, software engineering, compilers, and operating systems.

创建者 Niina S

Jun 5, 2017

The videos were a great way of learning: seeing and hearing the way Odersky thinks was mind-opening. I'm an aural person, so video is some 300% more efficient to me than just slides/pure text based web pages. Also the point were the video stopped and the student was really put to use his/her own brain was an excellent idea.

Some of the exercises were too difficult for me. Luckily I have a person I can consult if I'm stuck too long with the same problem. (He didn't write the answers, just gave me some hints with pseudo code.)

Recursion has always been hard for me. I'm sure it got better with this course.

创建者 Fernando G M

Jun 25, 2017

I'm a java developer and I'm interested on Big Data projects because of that I decided to learn a functional language, I choose scala because it runs on the JVM, because there is plenty of info about, but the main reason was because I found this awesome course given by the creator of the language. The course is easy to understand and it invites you to do additional research thru the recommended material, the book "Structure and interpretation of computer programs" helped me a lot. The exercises from week 4 and 6 are tough, and I like that, but definitely additional guidance would be of great help.

创建者 Glenn H L

Feb 13, 2020

The programming assignments are tough, but thinking at different levels while working hard to reach higher levels of thinking makes us tougher. For each assignment I open, I somewhat die inside. And then try to do it. It's both a blessing and a curse. It's a blessing because we actually become tougher engineers who could think in pure functions. It's a curse because you wrack your brain so much that it hurts and it gets blank, and then check the clock only to find out it's only been 3 hours since you started an assignment. It gets a little bit easier with each successful writing of a function.

创建者 Mark B

Jul 31, 2016

I thought this was an excellent course. I found it challenging and had to re-read lecture notes and work through examples in order to be able to complete the assignments, but I felt that I learned a lot about both Scala and functional programming. My only criticism is that the setup section is unclear. I ended up using Eclipse and did not use IntellJ at all, yet the setup is unclear on this. Also there is a point when using Eclipse and importing a project where you have to type $ sbt Eclipse and if you get this wrong then you are stuck! So if you get stuck - go to the Discussion pages.

创建者 Kedar M

Oct 28, 2017

Martin is a great teacher. There are several positives of this course. Apart from learning the basics of the Scala syntax and semantics from its creator, you learn the functional constructs and functional thinking in a very constructive environment. Martin paces the lectures well and does not dumb down the material. Rather than learning Scala from other sources, one's pursuit should begin with this course and then of course one can do more programming exercises to reinforce. The assignments in this course are very well thought out (although I'd have preferred less of a structure).

创建者 yevhen v

Mar 18, 2017

Very detailed and deep theoretically diving in basics of functional programming. Very pleased to have ability to listen to material which is well structured, though many thing still not clear(from NodeJs developer perspective).

PS: Anagram tasks(Week 6 assignment) does have some variations regarding output results and required running testing with tracing outputs to get required algorithm output. Possibly it would be nice to write down that anagram should match as long words as it can(in order to omit variations with partial matches, which can be considered as a sentence)

创建者 Rishi K

Aug 8, 2016

Functional Programming Principles in Scala is one of the best courses for those who want to start with Scala and learn about it's functional aspects and where to apply them. It introduces the language of Scala and is a great course for those who want to explore into the functional programming aspect of Computer Science. The concepts are explained lucidly and the assignments are relatively difficult and help the individuals to apply the learnt concepts in an incremental manner. I was really excited on taking this course, and it has lived up to all my expectations from it.

创建者 Daniel K

Aug 21, 2016

Very interesting and quite challenging at times. It's not a beginner course, you need a solid understanding of recursion (which is all over the place), knowledge of some basic data structures might help too (e.g. binary trees), knowning some Java would help too for obvious reasons (data types, generics etc.).

Some of the concepts are really mind-bending, mostly because a lot of us are not used to this type of programming.

I highly recommend the course and also the companion book (by prof. Odersky) for deeper look into the Scala guts.

创建者 Syed W R J

Aug 13, 2017

This course takes you through not only concepts particular to scala, but staying true to its title, through general principles of functional programming.

The course is also sprinkled with useful and interesting information and presents ideas (BNF, algorithms for LCF, square root, queens problem etc) that generally expand your understanding and knowledge. The problem sets are challenging. They make you actively apply your mind and provide a sound learning opportunity.

Very well structured and presented course. Highly recommended.

创建者 Robert F

Jan 31, 2018

The course is challenging. There are tricks that I needed to figure out to get past the assignments. But, the tricks forced me to think about functional programming. I started by trying to use accumulators whenever possible, since it feels like looping. The last assignment was a mind bender for me, but once the aha moment hit with respect for for comprehensions, it was only a few lines of code to knock off the solution. I have an idea for a different, perhaps more efficient solution. So maybe, I am not quite done yet :-)

创建者 raphael a s a

Jul 12, 2016

I think this course can lead any programmer into a larger and beautiful way for functional programming paradigm. I think this course was quite difficult for me due to lack of experience with FP. Also, I have no professional experience with FP and besides my Java 8 certification, it does not fulfill all the requirements for doing this course in a smoother way. I think it should be done in 7 weeks (not 6) because of the time required to watch all videos and get some time to absorb it all and do some practice.

创建者 Rachapong C

May 4, 2020

As other reviews have pointed out, this course is insanely difficult. It's very challenging, which makes completion all the more satisfying. Finally completed it after 3 weeks! What kept me going though the course was the promise of the capstone project, which is about using parallel computing to plot global temperature data. Imagine what you would be able to do with the power of parallel computing that is only made possible by the (as others have pointed out) mind-bending functional programming!

创建者 Vishnu P

Apr 27, 2018

This course is really awesome. I tried many tutorials, documents videos etc. But in the end I was not happy. I felt an incompleteness. But this course was really great. It helped me to understand the functional programming and how to use it.To move from a OOP paradigm to Functional it was really difficult for me initially. But by this course now I am able to do it and think about a solution in functional programming way. So I am really thankful to the team who made this course. Thanks a lot.

创建者 Matthew S L

Jan 15, 2017

Fantastic course! Functional programming really warps your brain in the beginning, and that's a great thing for any software engineer. Martin Odersky is a fine teacher who has prepared very concise and expressive lectures and examples... Proof of this is seen in how few questions people seem to ask on the Discussion Forums. I'm strongly considering enrolling in the rest of the "Functional Programming in Scala Specialization" because of how awesome this course was. Highly recommended 10/10!

创建者 Gabriel S

Apr 24, 2017

I would not recommend this course for a beginning programmer, as the concepts Oderski covers are fairly complex and the homework is not simple. However, if you are wanting to learn more about functional programming, love to understand the guts of how programming languages work and process data, and want to diver deeper into recursion, then I would definitely recommend this course. I found it very informative and helpful. I will probably take the course again. And Scala is awesome.

创建者 David D

Feb 9, 2018

This is a great course to learn both Scala and functional programming. I have a few recommendations:

Have a student review the setup instructions twice a year to keep up with changing bugs and software. Add more time to cover some of the details, for instance, how to cast a Nil when using fold. Plan on this taking more that 4-6 hours a week. This is especially true if you are not familiar with functional programming, the JVM environment or mapping/folding functions.

创建者 Jaime R

Apr 19, 2020

I loved this course. It reintroduced me to the core concepts behind functional programming, which i first learned in university, with a great mix of lectures and fun exercises. FP is a good tool to learn to think abstractly about problem solving. The teaching is really high quality, like you'd typically only find in a top world university. Would recommend to anyone curious about beautiful computer science concepts and wanting to make better use of their free time.

创建者 Renee B

Jul 30, 2016

For someone without experience in Java, but with other programming experience (C/Python), I found this course to be interesting and challenging. There's a lot of recursion in the assignments, which made my head spin. .. but I thought the course coverage was quite good. I supplemented with the instructor's book.

the main recommendation I'd have is more information about using the IDEs. A lot of my frustrations ended up being about particulars of those.

创建者 Luiz C F R

Mar 25, 2020

Amazing course. New concepts are built on previously presented content, making everything easier to understand. Besides teaching the programming language, the instructor also presents some of the language inner workings in optional lessons, allowing one to go as deep as they want. Assignments are well designed, but challenging, specially for newcomers to the functional paradigm, however they show how FP can be used in practice, making them rewarding.