Save for later

Functional Program Design in Scala

Functional Programming in Scala,

In this course you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Finally, you will learn how to leverage the ability of the compiler to infer values from types. Several parts of this course deal with the question how functional programming interacts with mutable state. We will explore the consequences of combining functions and state. We will also look at purely functional alternatives to mutable state, using infinite data structures or functional reactive programming. 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 with using the command line. This course is intended to be taken after Functional Programming Principles in Scala: https://www.coursera.org/learn/progfun1.

Get Details and Enroll Now

OpenCourser is an affiliate partner of Coursera and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.1 based on 498 ratings
Length 6 weeks
Starts Jun 26 (43 weeks 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

Send to:

Similar Courses

What people are saying

reactive programming

There was a lot more that they could have covered, especially with regards to reactive programming.

One hour of random lectures does a very bad job of introducing reactive programming.

I learned a lot If you are able to pass this course, you are very strong :-) Great course well taught Not a bad course, a nice introduction to monads, reactive programming and futures, though it has a lot of disconnected chunks and exercises from the old course and isn't as polished as the first one about FP (which, in my opinion, really set the bar for other courses).

The lab for the third week was unrelated to the material, and the fourth week is a bunch of videos from the previous course of reactive programming in Scala.

The best This course was a more or less succsessful excerpt of the course "Reactive Programming in Scala" wich can still be found on youtube and in the net.

Also you can find quick intodution to reactive programming in this course, however I want to know more about reactive programming.

I received full grade for second assignment doing nothing.It will be great if you attach lectures from Reactive Programming at least as optional The course topics seem a little disjoint, some complex topics like monads and futures require more examples or a more throrough explanation.

If you're unfamiliar with reactive programming (as I was) the material will be challenging.

Such central to FPD theme as reactive programming is overcondensed into really limited amount of time.

Akka Actor was said to be covered in the previous "Reactive programming principle" course, disappeared here, and some other content gone, too.I thinks FRP is quite interesting, hope this course structure can be improved and more examples/practical assignments provided.

I was able to figure things out enough to complete the assignments, but based on the exercises in the course I wouldn't feel comfortable implementing functional reactive programming in a production environment--this was a good introduction to the concepts, but the solution in the programming assignments feels very makeshift and is not something I have a lot of trust in.

Simply excellent, Scala does not cease to amaze me, thx Nice course, reactive programming is very powerful paradigm, especially for UI.

The introduction to functional reactive programming is well done.

The last week about reactive programming was a little hamfisted, though.

Read more

martin odersky

The part by Martin Odersky was excellent, the other guy was kind of all over the place and a bit annoying.

I'd like to see lectures on concurrency by Martin Odersky sometime in the future.

Thanks to Martin Odersky The presented material wasn't coherent for me, I didn't walk away with knowledge of functional design principles for larger/complex software.

To me every mooc by Martin Odersky is pure gold.

Gracias Martin Odersky por inventar scala.

Course material looked sometimes recycled and unstructered Great course to have a pratical introduction to functional design using Scala Exceptionally great teaching by Professor Martin Odersky, I am right now wondering why his scala.react way of Signals approach is not adopted by any of the major UI platforms ... it makes lot of sense to me having worked in UI layer for a long time and understanding the mess that event driven architecture brings Another great course.

The course in general is not as good as Martin Odersky's first course, but it still has interesting bits to learn about functional programming.

This was just a great continuation of a great beginning after the previous course.I hope that in the future Martin Odersky will publish more courses.Thank you !

Prof. Martin Odersky, is truly incredible !

Thank you Martin Odersky and his team for this great language and set of courses!

Read more

erik meijer

The lectures were quite interesting, especially the first two weeks and the ones by Erik Meijer.

Also I felt that the exercises were missing the point of the lectures.The lectures by Erik Meijer felt out of place and poorly connected to the previous content.

Manner of teaching of Erik Meijer is really annoying.

A well-paced and intellectually challenging introduction to the concepts and practice of functional reactive programming, with two AMAZING instructors (Martin Odersky and Erik Meijer)!

The video's from Erik Meijer in week 4 seemed a bit artificial.

Also, the mish-mash of Futures-related lectures was a bit confusing (despite Erik Meijer's obvious enthusiasm for the subject).

Fantastic coruse by Martin Odersky and Erik Meijer.

I do appreciate Erik Meijer as a professional and a scientist.

Really surprised in week 4 when Erik Meijer made an appearance as guest lecturer!

Read more

years ago

I did the FP in Scala course a few years ago and decided to do the full certification now.

This almost made me feel like I was back in college, with those unbelievably boring lessons and project subjects from 30 years ago.

This is just a pared down (worse) version of an older class, "Principles of Reactive Programming", which I started but didn't finish three years ago.

Mostly as good as the course "Functional Programming Principles in Scala" I took couple of years ago.

Videos are great, however it would be good to update the content since videos are from >6 years ago.

Read more

no longer

You definitely learn a lot of new functional concept, the material is presented well and the homework is engaging (though it is debatable if it couldn't be more closely related to the course content).Participants should know, though, that this is a condensed version of a previous Coursera course by the same authors, "Principles of Reactive Programming", which is no longer available.

On the other hand, this course was clearly put together by throwing together, rather haphazardly, bits and pieces of other courses, some of which no longer even exist.

In same cases the video lectures even display the wrong title for the course, or mention lectures that no longer exist in this version of the course!The course has interesting parts (I was especially thrilled when I saw there were lectures about FRP), but its quality is way below "Functional Programming Principles in Scala".

The lectures make reference to other lessons that no longer appear in the course, and the assignments frequently have nothing to do with the lecture material.

Read more

program design

(I recommend participants to look up the missing lectures on Youtube: https://www.youtube.com/playlist?list=PLMhMDErmC1TdBMxd3KnRfYiBV2ELvLyxN)Lastly, I do not think the title "Functional Program Design" is appropriate.

Good course, wish is expanded more on Functional Program Design.

This course has some really good material but the way it has been presented is very disjointed and does not really do the job of properly illustrating Functional Program Design.

Functional Program Design in Scala is one of the best courses for those who want to apply the functional programming style in the design of larger applications using functional programming concepts.

Read more

two weeks

The first two weeks where very well structured and as interesting as the first course.

Pretty informative course, even if the first one or two weeks used to the part of the Intro to Scala course.

Last two weeks are definitely confusing, since the staff seems to have rearranged and removed some ofthe content.

Read more

feel like

Would have loved a decent explanation of a Monad and their usages, but it really felt out of place in this course (no exercises on Monads).After completing the first two courses I don't feel like I would bother with the next ones.

I don't feel like I've learned much or that the exercises reflected what was being taught in the lectures.

Lots of the topics require outside material to really feel like you've got a minimal handle on the larger designs it's teaching.

Read more

put together

The best resource was the "Reactive Cheat Sheet" that was mainly put together by advanced students (thank you, thank you).

This is outrageous; a course like this would never be taught at a prestigious institution like EPFL, and it is highly deceptive to give us a course, put together in a arbitrary, incoherent, Frankensteinish fashion, right after a course that was quite systematic and coherent.Week one and two were not bad, hence why I gave two stars instead of one.

Read more

`` functional programming principles

principles in scala ''

Careers

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

Web Developer and Programmer $89k

Business Programmer/Developer $91k

IT/Web Developer/Programmer $93k

Developer - Java/Scala $93k

Developer and Programmer $98k

Programmer Analyst/ Developer $100k

Programmer & Application Developer $105k

Software Developer/Programmer $107k

.NET Developer / Programmer $108k

Programmer/BI Developer $111k

Senior Developer/Programmer $121k

Senior Programmer Developer $124k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.1 based on 498 ratings
Length 6 weeks
Starts Jun 26 (43 weeks 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