Functional Programming Principles in Scala

  • 4.8
Approx. 45 hours to complete

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

Intermediate

Course 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


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
English
Available now
Approx. 45 hours to complete
Martin Odersky
École Polytechnique Fédérale de Lausanne
Coursera

Instructor

Martin Odersky

  • 4.8 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses