Course Summary
This course will teach you how to use the functional programming paradigm in Scala to build robust and scalable applications.Key Learning Points
- Learn functional programming concepts such as immutability, recursion and higher-order functions
- Understand how to use Scala to write functional programs
- Build applications using functional design principles
Job Positions & Salaries of people who have taken this course might have
- Scala Developer
- USA: $116,000
- India: ₹1,200,000
- Spain: €43,000
- Functional Programmer
- USA: $108,000
- India: ₹1,100,000
- Spain: €42,000
- Software Engineer
- USA: $96,000
- India: ₹900,000
- Spain: €33,000
Related Topics for further study
Learning Outcomes
- Understand functional programming concepts and how to use them in Scala
- Learn how to write robust and scalable applications using functional design principles
- Develop critical thinking and problem-solving skills
Prerequisites or good to have knowledge before taking this course
- Basic knowledge of programming concepts
- Familiarity with Scala programming language
Course Difficulty Level
IntermediateCourse Format
- Online self-paced course
- Video lectures
- Hands-on programming assignments
Similar Courses
- Functional Programming Principles in Scala
- Functional Programming in Haskell: Supercharge Your Coding
Related Education Paths
Notable People in This Field
- Erik Osheim
- Heather Miller
Related Books
Description
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.
Knowledge
- Recognize and apply design principles of functional programs
- Design functional libraries and their APIs
- Write simple functional reactive applications
- Understand reasoning techniques for programs that combine functions and state
Outline
- For Expressions and Monads
- Introduction
- Week 1 Introduction
- Recap: Functions and Pattern Matching
- Lecture 1.1 - Queries with For
- Lecture 1.2 - Translation of For
- Lecture 1.3 - Functional Random Generators
- Lecture 1.4 - Monads
- Lecture 1.5 - Exceptional Monads
- Working on Assignments
- Tools Setup (Please read)
- Grading Policy
- SBT tutorial and Submission of Assignments (Please read)
- Cheat Sheet
- Scala Style Guide
- Learning Resources
- Reactive Cheat Sheet
- Lazy Evaluation
- Week 2 Intrduction
- Lecture 2.1 - Structural Induction on Trees
- Lecture 2.2 - Lazy Lists
- Lecture 2.3 - Lazy Evaluation
- Lecture 2.4 - Computing with Infinite Sequences
- Lecture 2.5 - Case Study: the Water Pouring Problem
- Type-Directed Programming
- Week 3 Introduction
- Lecture 3.1 - Contextual abstractions
- Lecture 3.2 - Using clauses and given instances
- Lecture 3.3 - Type classes
- Lecture 3.4 - Abstract algebra and type classes
- Lecture 3.5 - Context passing
- Lecture 3.6 - Implicit function types
- Motivating Example
- Type-Directed Programming
- Type Classes
- Conditional Implicit Definitions
- Implicit Conversions
- Conditional Implicit Definitions
- Functions and State
- Week 4 Introduction
- Lecture 4.1 - Functions and State
- Lecture 4.2 - Identity and Change
- Lecture 4.3 - Loops
- Lecture 4.4 - Extended Example: Discrete Event Simulation
- Timely Effects
- Week 5 Introduction
- Lecture 5.1 - Imperative Event Handling: The Observer Pattern
- Lecture 5.2 - Functional Reactive Programming
- Lecture 5.3 - A Simple FRP Implementation
- Conclusion
- Conclusion
Summary of User Reviews
Learn functional programming with Scala on Coursera. Highly rated course with great content and engaging lectures.Key Aspect Users Liked About This Course
The course provides a thorough understanding of functional programming concepts.Pros from User Reviews
- Excellent content that covers functional programming in depth
- Engaging lectures that make the concepts easy to understand
- Great programming assignments that reinforce the learning
- Well-structured course with clear explanations and examples
- Good pace that allows for learning at your own speed
Cons from User Reviews
- Some users found the programming assignments challenging
- A few users felt that the course could have covered more advanced topics
- No certificate offered for free course audit
- Lack of interaction with instructor or peers
- Not suitable for beginners who are new to programming