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.

In this course, you will learn how to:

discover the elements of the functional programming style.

apply the elements usefully in your daily programming tasks.

develop a solid foundation for reasoning about functional programs, by touching upon proofs of invariants and the tracing of execution symbolically.

You will learn the difference between functional imperative programming. You will step through the basics of Scala; covering expressions, evaluation, conditionals, functions, and recursion.

You will learn about functions as first-class values, and higher order functions. You will also learn about Scala’s syntax and how it’s formally defined.

You will learn about methods, classes, and data abstraction through the design of a data structure for rational numbers.

You will cover traits, and learn how to organize classes into hierarchies. You will cover the hierarchy of standard Scala types, and see how to organize classes and traits into packages.

You will touch upon the different sorts of polymorphism in Scala. You will learn about the relationship between functions and objects in Scala; functions are objects!

You will zoom in on Scala’s type system, covering subtyping and generics, and moving on to more advanced aspects of Scala’s type system like variance.

Finally, you will cover Scala’s most widely used data structure, Lists, and one of Scala’s most powerful tools, pattern matching.

This course will help get you started with Scala, so you can leverage the unique capabilities it offers.

In this course, you will learn about:

the basics of Scala.

the basics of type inference, variables, loops, functions, and operators.

how to read files using a console, perform pattern matching, and handle exceptions.

how to use classes, fields, methods, and objects.

First, learn the basics of type inference, variables, loops, functions, and operators. Then, find out how to read files using a console, perform pattern matching, and handle exceptions.

From introducing a simple class to writing a typeclass, this course explains the required concepts to leverage Scala’s beautiful static type system. It will help in achieving code abstraction and enable you to write less code and achieve more.

In this course, you will learn:

use Scala’s extensive type system to write type-safe, easy to understand, abstract and concise code.

the ways to write constructs like classes, objects, case classes, and traits.

concepts of type bounds and variance

In this course, Scala Fundamentals: The Type System, you will learn to use Scala’s extensive type system to write type-safe, easy to understand, abstract and concise code.

First, you will explore the ways to write constructs like classes, objects, case classes, and traits, which work as types. Then, you will learn how to make them generic.

Next, you will discover concepts of type bounds and variance. Finally, you will delve into writing typeclasses.

When you are finished with this course, you will have the skills and knowledge of Scala’s extensive type system needed to write easy to understand and editor-friendly code.

This course will teach how to program in Scala and advantages of learning scala such as building scalable programs easily and effectively , combines functional programming and object-oriented programming into one flexible package. This course provides free preview lessons.

At the end of course, you will become master of scala and will stay ahead of the curve, make awesome, scalable apps. It’s a statically typed, high-level language.

Introduction to programming in the Scala language. Core syntax and concepts.

After taking Stairway to Scala part 1, you will be able to:

Use the REPL (the Scala Interactive Shell) for experimentation and fun

Understand the basics of Scala syntax, including val, var, def, if, while, try, for and more

Create classes, objects and instances

Define and use function literals and higher order functions

Understand the basics of Scala’s type inference and how to use it

Write custom control structures to augment those built into the language

Start down the path of a more functional style of programming

Be ready for Part 2 of Stairway to Scala Applied, which will dig into some of the differences between Scala and other languages

The course is half theory, half practice with hands on coding exercises built around test driven development examples. If you complete all three parts, with all the exercises, you will find that in addition to a strong grounding in the language theory, you will have the practical skills and comfort to code in Scala, as well as having the tools necessary to do so.

The course is taught by two highly experienced Scala developers who use Scala on a daily basis for real world commercial projects, and have done so for several years each.