Program on a Higher Level. Write elegant functional code to analyze data that's big or small
This Specialization provides a hands-on introduction to functional programming using the widespread programming language, Scala. It begins from the basic building blocks of the functional paradigm, first showing how to use these blocks to solve small problems, before building up to combining these concepts to architect larger functional programs. You'll see how the functional paradigm facilitates parallel and distributed programming, and through a series of hands on examples and programming assignments, you'll learn how to analyze data sets small to large; from parallel programming on multicore architectures, to distributed programming on a cluster using Apache Spark. A final capstone project will allow you to apply the skills you learned by building a large data-intensive application using real-world data.
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.
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.
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.
What is the refund policy?
Can I just enroll in a single course?
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.
Is financial aid available?
Can I take the course for free?
Is this course really 100% online? Do I need to attend any classes in person?
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.
Will I earn university credit for completing the Specialization?
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.
How long does it take to complete the Functional Programming in Scala Specialization?
Time to completion can vary based on your schedule, but most learners are able to complete the Specialization in 4-5 months.
How often is each course in the Specialization offered?
Each course in the Specialization is offered on demand, and may be taken at any time.
What background knowledge is necessary?
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.
Do I have to take the courses in this Specialization in a specific order?
We recommend taking the courses in the order presented, as each subsequent course will build on material from previous courses.
Will I earn university credit for completing the Functional Programming in Scala Specialization?
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.
Are there any recommended readings for this specialization?
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