Functional Programming Principles in Scala
- 4.8
Course Summary
Learn functional programming in Scala, a programming language that is becoming increasingly popular for its concise syntax and powerful features.Key Learning Points
- Learn the principles of functional programming and how to apply them in Scala
- Understand how to work with immutable data structures, lazy evaluation, and higher-order functions
- Develop the skills to write concise and elegant code that is easy to read and maintain
Related Topics for further study
Learning Outcomes
- Ability to write functional programs in Scala
- Understanding of functional programming principles
- Improved coding skills and ability to write concise and elegant code
Prerequisites or good to have knowledge before taking this course
- Basic knowledge of programming concepts
- Familiarity with an object-oriented programming language
Course Difficulty Level
IntermediateCourse Format
- Self-paced
- Online
- Video Lectures
- Assignments
- Quizzes
Similar Courses
- Functional Programming Principles in Scala
- Functional Programming in JavaScript
- Functional Programming in C++
Related Education Paths
- Master of Science in Computer Science - Functional Programming
- Certificate in Scala Programming
- Certificate in Functional Programming
Related Books
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.
Knowledge
- Understand the principles of functional programming
- Write purely functional programs, using recursion, pattern matching, and higher-order functions
- Design immutable data structures
- Combine functional programming with objects and classes
Outline
- Getting Started + Functions & Evaluation
- Course Introduction
- Tools Setup for Linux
- Tools Setup for Mac OS X
- Tools Setup for Windows
- Lecture 1.1 - Programming Paradigms
- Lecture 1.2 - Elements of Programming
- Lecture 1.3 - Evaluation Strategies and Termination
- Lecture 1.4 - Conditionals and Value Definitions
- Lecture 1.5 - Example: square roots with Newton's method
- Lecture 1.6 - Blocks and Lexical Scope
- Lecture 1.7 - Tail Recursion
- Tools Setup (Please read)
- Cheat Sheet
- IntelliJ IDEA Tutorial
- SBT tutorial and Submission of Assignments (Please read)
- Learning Resources
- Scala Tutorial
- Scala Style Guide
- Learning check-in
- Higher Order Functions
- Lecture 2.1 - Higher-Order Functions
- Lecture 2.2 - Currying
- Lecture 2.3 - Example: Finding Fixed Points
- Lecture 2.4 - Scala Syntax Summary
- Lecture 2.5 - Functions and Data
- Lecture 2.6 - More Fun With Rationals
- Lecture 2.7 - Evaluation and Operators
- Data and Abstraction
- Lecture 3.1 - Class Hierarchies
- Lecture 3.2 - How Classes Are Organized
- Lecture 3.3 - Polymorphism
- Types and Pattern Matching
- Lecture 4.1 - Objects Everywhere
- Lecture 4.2 - Functions as Objects
- Lecture 4.3 - Subtyping and Generics
- Lecture 4.4 - Variance (Optional)
- Lecture 4.5 - Decomposition
- Lecture 4.6 - Pattern Matching
- Lecture 4.7 - Lists
- Lists
- Lecture 5.1 - More Functions on Lists
- Lecture 5.2 - Pairs and Tuples
- Lecture 5.3 - Implicit Parameters
- Lecture 5.4 - Higher-Order List Functions
- Lecture 5.5 - Reduction of Lists
- Lecture 5.6 - Reasoning About Concat
- Lecture 5.7 - A Larger Equational Proof on Lists
- Collections
- Lecture 6.1 - Other Collections
- Lecture 6.2 - Combinatorial Search and For-Expressions
- Lecture 6.3 - Combinatorial Search Example
- Lecture 6.4 - Maps
- Lecture 6.5 - Putting the Pieces Together
- Conclusion
Summary of User Reviews
Discover the fundamentals of functional programming with this comprehensive course from Coursera. Many users have praised the course for its engaging instructors and easy-to-follow curriculum.Key Aspect Users Liked About This Course
The instructors are engaging and the curriculum is easy to follow.Pros from User Reviews
- Instructors are knowledgeable and approachable
- Assignments help solidify understanding of concepts
- Course is well-structured and easy to follow
Cons from User Reviews
- Some users found the pacing to be too slow
- Not enough practical application of concepts
- Some users felt that the course was too theoretical