Syllabus

Contents of the course
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