Pragmatic Scala Online Course (Scala version 2) Contents:
Basics:
- Hello World
 - Primitive Types
 - Type inference
 - Vars vs Vals
 - Lazy Vals
 - Methods
 - Pass By Name
 - Infix Notation
 - No parens/Brackets
 - Default Arguments
 - Named Arguments
 
Classes:
- Introduction
 - Inheritance
 - Main/Additional Constructors
 - Private Constructors
 - Uniform Access
 - Case Classes
 - Objects
 - Traits
 
Collections:
- Lists
 - Collection Manipulation
 - Simple Methods
 - Methods With Functions
 - Use Cases With Common Methods
 - Tuples
 
Options:
- Option Implementation
 - Like Lists
 - Practice Application
 
Types:
- Type parameterization
 - Covariance
 - Contravariance
 - Type Upper Bounds
 - 'Nothing' Type
 
Anonymous Classes:
- Introduction
 - Structural Typing
 - Anonymous Classes With Structural Typing
 
Special Methods:
- Apply
 - Update
 
Currying:
- Introduction
 - Applications
 
Implicits:
- Implicit Values/Parameters
 - Implicit Conversions
 - With Anonymous Classes
 - Implicit Classes
 - The 'Pipe' Operator
 
For Loops:
- Introduction
 - Coding Style
 - With Options
 - And flatMap
 - Guards
 - Definitions
 
Var Args:
- Introduction
 - Ascribing the _* type
 
Partial Functions:
- Introduction
 - Match
 - Match Values/Constants
 - Match Types
 - Extractors
 - If Conditions
 - Or
 - With Collections
 - The Unapply
 
Recursion:
- Examples
 - Optimization
 
More on Traits:
- Stackable Traits
 - Examples
 
Advanced Types:
- F-Bounded Polymorphism
 - Self Type Annotation
 - Introduction to Type Classes
 
Pragmatic Scala Online Course (Scala version 3) Contents:
Coming soon...