Course Introduction and Exercises
  • Course Introduction and Content
  • Download Slides and Exercises
Module 1 - Starting Scala
  • 01 - Introduction
  • 02 - Module Agenda
  • 03 - The Scala REPL
  • 04 - Using SBT
  • 05 - First time in the REPL
  • 06 - Vals and Vars
  • 07 - Hiding a val with another val
  • 08 - Scala and Types
  • 09 - Defining a Method
  • 10 - If Expressions
  • 11 - If Expressions continued
  • 12 - Functional Style and try...catch...finally
  • 13 - Simple Loops
  • 14 - Do...While
  • 15 - Scala Scripts
  • First Steps Quiz
  • 16 - Module 1 exercises
Module 2 - Scala 101 and Worksheets
  • 01 - Introduction
  • 02 - Module Agenda
  • 03 - Scala projects in IntelliJ
  • 04 - IntelliJ Worksheets
  • 05 - Method Parameters and Return Types
  • 06 - Methods with no return types
  • 07 - Expressions and Statements
  • 08 - Assignments and Unit
  • 09 - Tuples
  • 10 - Tuples continued
  • 11 - Re-writing Rules: Infix
  • 12 - Re-writing Rules: Apply
  • 13 - Re-writing Rules: Update
  • 14 - General Notes on Re-writing
  • 15 - Collections Intro
  • 16 - List Initialization and Cons
  • 17 - Sequences
  • 18 - Sets
  • 19 - Mutable vs Immutable
  • 20 - Maps
  • 21 - The -> Extension Method
  • 22 - Simple Map Iteration
  • 23 - More Functional Style
  • 24 - Opening and Reading a File
  • Next Steps Quiz
  • 25 - Module 2 Exercises (and how to run them in IntelliJ)
Module 3 - Classes, Objects, Apps and more
  • 01 - Introduction
  • 02 - Module Agenda
  • 03 - Define a Scala Class
  • 04 - Constructors and Parameters
  • 05 - Parameters, Fields and Parametric Fields
  • 06 - A Rational Class
  • 07 - Checking Preconditions
  • 08 - Referencing Self
  • 09 - Infix Style and Symbolic Methods
  • 10 - Symbolic Methods continued
  • 11 - Auxiliary Constructors
  • 12 - Companion Objects
  • 13 - Companions and private
  • 14 - Method Overloading
  • 15 - Implicit Conversion
  • 16 - Implicit Rules
  • Classes and Objects Quiz
  • 17 - Module 3 exercises
Module 4 - Control Structures in Scala
  • 01 - Introduction
  • 02 - Module Agenda
  • 03 - Expressions and Statements Recap
  • 04 - Unit and Side Effects
  • 05 - Alternatives to Returning Unit
  • 06 - Return this instead of Unit
  • 07 - If, ternary and types
  • 08 - val and var, IDE tricks
  • 09 - Try...catch...finally and type inference
  • 10 - While loop statement, and @tailrec
  • 11 - For Statements and Expressions
  • 12 - For...Yield
  • 13 - The Four Gs of For
  • 14 - For - more than just loops
  • 15 - Match expressions
  • 16 - Match Guards
  • 17 - More Matching
  • 18 - String Interpolation
  • Built In Control Structures
  • 19 - Module 4 Exercises
Module 5 - Functions and Closures
  • 01 - Introduction
  • 02 - Module Agenda
  • 03 - Private Methods
  • 04 - Nested Methods
  • 05 - Scoping of Nested Methods
  • 06 - Function Literals
  • 07 - Passing Function Literals
  • 08 - How Functions Work
  • 09 - Other Methods on Function
  • 10 - Higher Order Functions
  • 11 - Writing a Higher Order Function