Functional Programming Principles in Scala (Scala 2 version)
- Offered byCoursera
Functional Programming Principles in Scala (Scala 2 version) at Coursera Overview
Duration | 45 hours |
Start from | Start Now |
Total fee | Free |
Mode of learning | Online |
Difficulty level | Intermediate |
Official Website | Explore Free Course |
Credential | Certificate |
Functional Programming Principles in Scala (Scala 2 version) at Coursera Highlights
- Flexible deadlines Reset deadlines in accordance to your schedule.
- Shareable Certificate Earn a Certificate upon completion
- 100% online Start instantly and learn at your own schedule.
Functional Programming Principles in Scala (Scala 2 version) at Coursera Course details
- .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, such as modeling business domains or implementing business logic. 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.
Functional Programming Principles in Scala (Scala 2 version) at Coursera Curriculum
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