Coursera
Coursera Logo

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 External Link Icon

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.
Details Icon

Functional Programming Principles in Scala (Scala 2 version)
 at 
Coursera 
Course details

More about this course
  • .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.
Read more

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

Functional Programming Principles in Scala (Scala 2 version)
 at 
Coursera 
Admission Process

    Important Dates

    May 25, 2024
    Course Commencement Date

    Other courses offered by Coursera

    – / –
    3 months
    Beginner
    – / –
    20 hours
    Beginner
    – / –
    2 months
    Beginner
    – / –
    3 months
    Beginner
    View Other 6715 CoursesRight Arrow Icon
    qna

    Functional Programming Principles in Scala (Scala 2 version)
     at 
    Coursera 

    Student Forum

    chatAnything you would want to ask experts?
    Write here...