Back to Effective Programming in Scala

4.7
stars
136 ratings

## About the Course

Scala is an expressive, versatile, and safe programming language. In this course, you will learn how to get the most out of Scala to solve common programming tasks such as modeling business domains, breaking down complex problems into simpler problems, manipulating data, or running parallel tasks. Along the journey, you will also learn the best practices for writing high-quality code that scales to large applications, how to handle errors, how to write tests, and how to leverage a productive development environment. This comprehensive, hands-on, course aims at leveling up your programming skills by embracing both functional programming and object-oriented programming. You will become familiar with the standard library and the common patterns of code used in the real world. Each week contains about 1h30 of video lectures. Each lecture is a ~10 min video focused on a specific skill or concept. We always start by looking at concrete problems, and then explain how language features or libraries make you more productive to solve these problems in general. Lectures are generally followed by a quiz to assess your progress. At the end of each week, a graded assignment inspired by real-world applications will give you an opportunity to put things in practice. The course covers Scala 3, and it mentions the differences with Scala 2....

## Top reviews

BA

Feb 15, 2022

Wow, I would've never thought that I could finish it, but I did, yay! The assignments are challenging but totally worth it. I think I lost some hairs in the process :)

RK

Jun 15, 2021

Excellent course, I really enjoyed it! With not a lot of practical experience with FP (yet) it was a bit of challenge at times. But the forum and support was helpful.

Filter by:

## 1 - 25 of 41 Reviews for Effective Programming in Scala

By Lanfranco S

May 26, 2021

First of all, a disclaimer: I am an Electronic Engineer, and my daily job consists in programming in SystemVerilog and, less frequently, in Python. On the other hand I have read a few books and articles on functional programming in general and Scala in particular. As a result, I already knew most of the topics addressed in the course, but don't have much practical experience in writing Scala code. My point of view is then, I guess, a bit unusual. I hope it will be useful nonetheless. The instructors have done a good job in selecting the material; all the topics have practical applications, and are presented in a clear way. Starting with the language basics, the course goes on explaining collections, case classes, new Scala 3 features like extension methods, given syntax, error handling and concurrency. Many videos are devoted to code organization principles, and the emphasis is always on a functional programming style. The course also deals with practical topics that are often neglected by programming courses, like sbt commands, unit and property-based testing, debugging. Programming assignments are built on engaging examples, and their code may serve as an example in case one wants to dig deeper on their own. The first 3 are relatively easy, while the last 3 have been quite challenging for me. I struggled quite a bit on the Quickcheck one, where the student has less hints, as well as on the Codecs and Wikigraph ones. My opinion is that a lot of effort has been put in preparing this course, and the authors must be given credit and thanked for that. People prepared to seriously commit will certainly learn a lot and benefit from this course. As for the prerequisites, I think the course might not be so suited for beginners, as stated in the main page, especially if they only have experience in an imperative programming style. I had difficulties in finding the right way to compose Futures and Eithers in the last assignment, and I suspect people less used to map and flatMap might be in a similar position. I think it would be better for beginners to follow the "Functional Programming Principles in Scala" course before this, and possibly the "Functional Program Design in Scala", when the Scala 3 versions will be released.

By Ekip K

Jun 11, 2021

Although for a entry level course it might be called difficult, I really learnt a lot from the course. The content is rich and documentation is very good. Programming assignments are difficult to be honest.

By Rob K

Jun 16, 2021

Excellent course, I really enjoyed it! With not a lot of practical experience with FP (yet) it was a bit of challenge at times. But the forum and support was helpful.

By Jean H

Jun 15, 2021

Nice course, I knew scala 2 very well and was happy to learn of the new scala 3 idioms. Thanks for taking the time to put all this together.

By Jochen K

Nov 22, 2021

The videos are really good. Exercises week 1 to 3 are also good. Exercises from week 4-6 are sub optimal. You will spend a lot of time trying to understand the complicated grader / project setup and trying to decipher the instructions instead on focusing on Scala.

By Melburne R

Oct 25, 2021

Probably the best course out there to learn Scala 3. Lectures were to the point and concepts were drilled in by challenging assignments every week. Huge thanks to the lecturers and the team at EPFL for creating such a high quality course. Would definitely recommend to all those who want to get started with this amazing language.

By Seoh C

May 24, 2021

I recommend this course all scala2 user rather than scala-beginner for experienced developers. Thsi course will show you how to write the code idomatically in scala 3, and how to work useful features(like given) on internal machanism steps. Also good courses for *lapsed* scala-ed users to start again.

By Korntewin B

Jul 28, 2021

This course strengthen my understanding of the Functional Programming concept from Functional Programming Specialization in Scala. It is like the summary of that specialization which is easier to grasp. For me, this is the best course for fundamental in functional programming principle!

By Nikolay A

Jun 9, 2021

The course is helpful even for mature Scala programmers to grasp Scala 3. Excellent explanations of contextual abstractions! But it would be super cool to have some more deep and advanced course on the new capabilities of Scala 3: meta programming, union types, etc. Thank you very much!

By Michał G

Oct 23, 2021

Well prepared course with challenging assignments. Lectures give nice overview of Scala 3 features like Opaque types and Context Parameters. I code in Scala almost two years, yet still I learned something new!

By Fedor C

Aug 6, 2021

It was a very interesting course for me, I was glad to refresh my knowledge and I was not able even to imagine that scala 3 has changed rules so much and I'm glad that I got it in time :-)

By Antonio R

Jun 9, 2021

Brief introduction course to Scala using Scala 3. Probably, the best course of Scala for non Scala programmers to start. Better than the Scala 2 courses on Coursera.

By stephen w

Nov 7, 2021

The assignments gained in engagement as the course progressed, which added a twist to the challenge and helping to solidify the subjects!

By wojo93

Sep 7, 2021

A great introduction to Scala! Some of the assignments were quite challenging, but it made it more rewarding in the end.

By Shankar S

May 23, 2021

Excellent course for learning Scala 3 !!

By Abdulla A

May 22, 2021

Good introduction for beginners! Thanks for your work! Would be really great to have advanced material about PFP (even optional). Accomplished it mostly to check the quality and support you guys in Scala Center!

By Boris B

Aug 29, 2021

The week 4 coursework is so arbitrary (and not debuggable) that it takes an arbitrary number of permutations and tries because the error messages give you no information. The rest of the course is good but coursework 4 alone warrants this rating

By Joshim A

Dec 3, 2022

Great content. Easy to follow the lectures, access the material and complete the assignments. The teaching is delivered bite-size, so you can make sure to understand the topics before moving on.

The difficulty was spot on for my background - basic skills in Java programming came in useful.

The final assignment was very challenging though, to put together all the concepts and come up with the program designs.

The discussion/help forums are active and responsive.

My feedback would be that I couldn't find a way to download the slides in one go - I had to remember to download each set when watching a lecture. Also, the pdfs were saved with "image" encoding rather than "text" encoding, so I wasn't able to search for keywords when reviewing them.

By Stanislav K

Dec 18, 2022

Great course to get familiar with Scala and widen the horizon. Special thanks for focusing on map, zip, flatMap, traverse which help to look at software engineering at a different angle and change the mindset.

By Bustanil A

Feb 16, 2022

Wow, I would've never thought that I could finish it, but I did, yay! The assignments are challenging but totally worth it. I think I lost some hairs in the process :)

By Erick V

Mar 20, 2022

Great introductory course for this awesome language. Recommended for those ones that have been read about Scala and its capabilities but didn't get aboard yet.

By Arnas G

Oct 8, 2021

Very well done course with really good hands on assignment. However, probably too challenging for most beginners.

By Diego A G

Jul 30, 2022

Great course. All the explanations were clear and it covered a lot of relevant concepts for writing Scala code.

By Oto B

Feb 23, 2022

This course nicely captures the spirit of Scala 3 and gives you nice challenges to test your new skills.

By Mingliang L

Aug 25, 2022

The assignments are challenging and also interesting.