Save for later

Functional Programming Principles in Scala

This course is a part of Functional Programming in Scala, a 5-course Specialization series from Coursera.

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.

Get Details and Enroll Now

OpenCourser is an affiliate partner of Coursera.

Set Reminder Save for later

Get a Reminder

Not ready to enroll yet? We'll send you an email reminder for this course

Send to:

Coursera

&

École polytechnique fédérale de Lausanne

Rating 4.7 based on 1,272 ratings
Length 7 weeks
Effort 5 hours / week
Starts Aug 12 (6 days ago)
Cost $79
From École polytechnique fédérale de Lausanne via Coursera
Instructor Martin Odersky
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Software Development

Get a Reminder

Get an email reminder about this course

Send to:

What people are saying

According to other learners, here's what you need to know

highly recommended in 15 reviews

Highly recommended.

This prof is godly Awesome class - highly recommended as an introduction to functional programming.

Very good course, highly recommended.

Found it as an example of a top class form of material explanation, material itself is a nice preparation to a deep dive into functional world, highly recommended.

Highly recommended 10/10!

Fantastic course nonetheless, highly recommended.

Verdict: highly recommended.

Read more

computer science in 11 reviews

Excellent introduction to functional programming for people already familiar with the computer science field.

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.

Would highly recommend for anyone studying computer science or software engineering.

as an engineer with most of an undergrad computer science degree and a few years' industry experience, I found this paper consistently challenging but fair throughout.

Just make sure you have some basic knowledge related to Computer Science.

Without any background in Computer Science it might be hard to follow all the lectures.

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.

Read more

data structures in 10 reviews

Practices could be short and quick exercises, for instance, in data structures module a set of quick exercises for list (Given a unsorted list, sort it.

It was a bit difficult to switch from mutable data structures to immutable ones, and altogether I'm quite concerned with the performance tradeoff (which seems to be significant), but I like the brilliantly designed language syntax (even if it is extremely difficult to get used to).

When I learned C++ I was presented similar data structures and algorithms that Professor Odersky used in his tutorial videos and exercises.

An amazingly deep dive for an intro course: covers generics, pattern matching, immutable data structures in lectures.

The assignments are a bit tough/abstract at first with the home-made data structures, but things get more grounded by the end.

Very good course love the way Martin has gone about covering the building blocks of Scala along with basic data structures.

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.

Read more

software engineer in 9 reviews

Not for software engineers!

Every software engineer should take this course to learn the fundamentals of functional programming and how to write concise code.

I am BSc in Computer Science and MSc in Information Management with some working experience as a Software Engineer for Fortune-100 companies.

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.

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.

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.

I would put it at graduate level material / experienced software engineer.

Read more

anyone interested in 9 reviews

讲课非常清楚,基本按照sicp前几章讲的。作业非常好能够引导思考,一定要弄清楚object in scala非常独特的概念。 Very nice course, anyone interested in the principles of functional programming (and Scala specifically of course) can benefit I learn a lot a lot about functional programming under what happens under the hood Very nice to learn the language from the designer himself.

I highly recommend the course for anyone interested in functional programming or scala.

I'd very much recommend this course to anyone interested on programming, as it teaches you, week by week, to think about your approach to a problem in a different and enlightening way.

Very difficult level, but a great challenge to anyone interested in functional programming Great course to start learning functional programming and scala Good material, but the lecture format was very dry and composed primarily of long videos.

This course was splitted in order to get more money, and we know it A fun adventure into functional programming in scala, I would recommend this course to anyone interested in programming in scala and functional programming in general.

Excellent course, must have for anyone interested in Scala !

Anyone interested should see Martin Odersky's YouTube talk "Working Hard to Keep It Simple."

Read more

easy to follow in 7 reviews

Perfect explanations, good examples.But still need to practice much more by yourself comprehensive, lots of practice, basic of scala and functional programming The lectures are good and it is easy to follow along.

Easy to follow lectures.

The explanations are easy to follow since they are shown using intuitive examples.

An easy to follow and informative class.

The course was easy to follow, featured relevant assignments, and was quite useful.

Very interesting and easy to follow ( for people with programming background) course from father of Scala language.

Read more

Careers

An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Assistant Camera Operator, Graphics, Scala $44k

Calling ALL OOP developers - Java, Scala, JavaScript, AngularJS $51k

Hadoop Engineer(Python,AWS , NOSQL, Spark... $52k

Apache Spark Developer $64k

Camera Operator, Graphics, Scala $70k

Full Stack Scala Engineer $76k

Corporate Technology- Scala/Spark/Hadoop Engineer $76k

Spark series editor $87k

Developer - Java/Scala $93k

Reviews

Sorted by most helpful reviews first

Guest says:

The best introduction I've had to Functional Programming (FP). Every lecture and concept taught is meaningful. Assignments really do a great job solidifying concepts. Some of them are quite challenging and can take many hours, but completing them and this course is very rewarding.

Guest says:

Coming from Java, Scala is very interesting. FP means your programs no longer maintain "state," which means you do away with constructs like variables and iteration that are so integral in Java. Scala instead uses "first class objects" that you can pass as parameters to other functions so you end up building programs that are recursive function calls without state. I think there's a real (and growing) role for FP and it's definitely worth exploring since it does offer more compelling solutions to a lot of computational problems. Expect to be frustrated though! A lot of these concepts will likely break the old paradigm you think in :)

Guest says:

Really liked how this course gave a look at what's happening under the hood, which sets it aside from other Scala courses imo. No tutorial I've found on the web has helped me transition from OOP and Functional Programming as smoothly as this course did. Word of caution: this is more of an intermediate course as they do dive right into things so you should at least know basics (at least understand loops, basic algorithms, recursions, which you can learn about on any number of other courses here).

Guest says:

I'd give this course a 4.5 if I could. This course is very challenging and there were some assignments where I truly felt like I was bordering on despair. Sometimes, this is because the course materials were unclear or not fully covered. Still I can say coming out of it it's very rewarding and I have a much stronger foundation for Scala than I did coming into the course.

Write a review

Your opinion matters. Tell us what you think.

Coursera

&

École polytechnique fédérale de Lausanne

Rating 4.7 based on 1,272 ratings
Length 7 weeks
Effort 5 hours / week
Starts Aug 12 (6 days ago)
Cost $79
From École polytechnique fédérale de Lausanne via Coursera
Instructor Martin Odersky
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Software Development

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now