What you'll learn
Getting Started + Functions & Evaluation
Higher Order Functions
Data and Abstraction
Types and Pattern Matching
Lists
Collections
Description
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.
Requirements
Access to a computer or mobile device with an internet connection.
Motivation to learn!
There are no special materials or prerequisite knowledge required for this course.
Who this course is for
Students who are already familiar with this field
Students willing to put in a couple hours to learn about Functional Programming Principles in Scala
Advanced students wanting to add another skill to their portfolio
Content Creator
Martin Odersky – Professor – Computer Science
This course includes
Participation Confirmation/Certificate
Option for learning at your own pace
Videos and reading material about the course
Practice tests
Assessed tasks with feedback from other course participants
Evaluated tests with feedback
Evaluated programming tasks
Got something to discuss?