About this Specialization
39,309 recent views

100% online courses

Start instantly and learn at your own schedule.

Flexible Schedule

Set and maintain flexible deadlines.

Intermediate Level

At least one year of programming experience, in any language.

Approx. 5 months to complete

Suggested 6 hours/week

English

Subtitles: English, Korean, Serbian, French, Portuguese (Brazilian)

What you will learn

  • Check

    Write purely functional programs using recursion, pattern matching, and higher-order functions

  • Check

    Design immutable data structures

  • Check

    Write programs that effectively use parallel collections to achieve performance

  • Check

    Manipulate data with Spark and Scala

Skills you will gain

Scala ProgrammingParallel ComputingApache SparkFunctional Programming

100% online courses

Start instantly and learn at your own schedule.

Flexible Schedule

Set and maintain flexible deadlines.

Intermediate Level

At least one year of programming experience, in any language.

Approx. 5 months to complete

Suggested 6 hours/week

English

Subtitles: English, Korean, Serbian, French, Portuguese (Brazilian)

How the Specialization Works

Take Courses

A Coursera Specialization is a series of courses that helps you master a skill. To begin, enroll in the Specialization directly, or review its courses and choose the one you'd like to start with. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. It’s okay to complete just one course — you can pause your learning or end your subscription at any time. Visit your learner dashboard to track your course enrollments and your progress.

Hands-on Project

Every Specialization includes a hands-on project. You'll need to successfully finish the project(s) to complete the Specialization and earn your certificate. If the Specialization includes a separate course for the hands-on project, you'll need to finish each of the other courses before you can start it.

Earn a Certificate

When you finish every course and complete the hands-on project, you'll earn a Certificate that you can share with prospective employers and your professional network.

how it works

There are 5 Courses in this Specialization

Course1

Functional Programming Principles in Scala

4.8
6,510 ratings
1,289 reviews
Course2

Functional Program Design in Scala

4.5
2,698 ratings
458 reviews
Course3

Parallel programming

4.5
1,590 ratings
240 reviews
Course4

Big Data Analysis with Scala and Spark

4.7
2,003 ratings
405 reviews

Instructors

Avatar

Martin Odersky

Professor
Computer Science
Avatar

Prof. Viktor Kuncak

Associate Professor
School of Computer and Communication Sciences
Avatar

Dr. Julien Richard-Foy

Computer Scientist
Scala Center
Avatar

Dr. Aleksandar Prokopec

Principal Researcher
Oracle Labs
Avatar

Prof. Heather Miller

Assistant Professor
Carnegie Mellon University

About École Polytechnique Fédérale de Lausanne

Frequently Asked Questions

  • Yes! To get started, click the course card that interests you and enroll. You can enroll and complete the course to earn a shareable certificate, or you can audit it to view the course materials for free. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. Visit your learner dashboard to track your progress.

  • This course is completely online, so there’s no need to show up to a classroom in person. You can access your lectures, readings and assignments anytime and anywhere via the web or your mobile device.

  • This Specialization doesn't carry university credit, but some universities may choose to accept Specialization Certificates for credit. Check with your institution to learn more.

  • Time to completion can vary based on your schedule, but most learners are able to complete the Specialization in 4-5 months.

  • Each course in the Specialization is offered on demand, and may be taken at any time.

  • At least one year of programming experience is recommended. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, JavaScript, or Ruby is also sufficient.

  • We recommend taking the courses in the order presented, as each subsequent course will build on material from previous courses.

  • Coursera courses and certificates don't carry university credit, though some universities may choose to accept Specialization Certificates for credit. Check with your institution to learn more.

  • These courses are designed to be self-contained, however for further reading we recommend:(1) for a more thorough treatment of some of the ideas presented in the course: Structure and Interpretation of Computer Programs, 2nd Edition, by Harold Abelson,Gerald Jay Sussman //http://www.amazon.com/gp/product/0262011530?*Version*=1&*entries*=0...(2)for learning more about Scala: Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition, by Martin Odersky, Lex Spoon, Bill Venners // http://www.amazon.com/Programming-Scala-Comprehensive-Step-Step/dp/0981531644...(3)for learning more about Scala: Scala for the Impatient by Cay Horstmann // http://www.horstmann.com/scala/index.html...(4)for learning more about parallel and concurrent programming in Scala: Learning Concurrent Programming in Scala by Aleksandar Prokopec // http://www.amazon.com/Learning-Concurrent-Programming-Aleksandar-Prokopec/dp/1783281413...(5)for learning more about Spark: Learning Spark by Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia //http://shop.oreilly.com/product/0636920028512.do

More questions? Visit the Learner Help Center.