Free Course Image Scala Programming Language

Free online courseScala Programming Language

Duration of the online course: 5 hours and 26 minutes

New

Build modern Scala skills fast with a free online course—learn types, functions, collections, and OOP patterns to level up your coding career.

In this free course, learn about

  • Scala basics: syntax, objects, variables, and core data types with type inference
  • Scala's type system fundamentals and how types are inferred in common declarations
  • SBT fundamentals: project structure, dependencies, and language/IDE support
  • Installing/configuring Scala & SBT on Windows/Ubuntu/Mac (JAVA_HOME, PATH, version checks)
  • Control flow in Scala: if/else as expressions, while/do-while, and for comprehensions
  • String handling: interpolation (s/f/raw) and formatting/escape-sequence behavior
  • Pattern matching with match/case, including the default wildcard (_) pattern
  • Functions: returns, default args, anonymous functions, higher-order & partially applied funcs
  • Closures and purity; currying and creating partially applied functions from curried defs
  • Collections: Arrays, Lists, Sets, Maps, Tuples; key behaviors like duplicate Map keys
  • Option type: safe Map.get handling and safe extraction without nulls
  • Collection ops: map/flatMap/flatten/filter and aggregations: reduce vs fold vs scan
  • OOP in Scala: classes, auxiliary constructors, inheritance, overriding, and abstract classes
  • Lazy evaluation via by-name parameters and using traits for mixins/multiple inheritance

Course Description

Scala brings together the best of object-oriented and functional programming, making it a powerful choice for building reliable software on the JVM. If you want a language that can feel familiar when you come from Java, yet opens the door to concise, expressive functional patterns, this free online course helps you make that transition with confidence and practical understanding.

You’ll start with the essentials: what Scala is, how its type system works, and how to get a clean development workflow using SBT. Instead of getting stuck on setup, you’ll learn how to install and configure your environment across Windows, Ubuntu, and macOS, so you can focus on writing code and running projects the way real Scala developers do. You’ll also get comfortable working in popular IDEs and structuring source files in a typical Scala project.

As you progress, you’ll build a strong foundation in core language features like variables, data types, and string interpolation, then move into the control structures you’ll use every day: if/else logic, looping constructs, and expressive match expressions. From there, the course takes you deeper into functions—one of Scala’s biggest strengths—covering anonymous functions, default parameters, higher-order functions, closures, partial application, and currying, so you can read and write idiomatic Scala code without confusion.

To help you become productive with real-world programs, you’ll practice working with common collections and data structures such as arrays, lists, sets, maps, tuples, and the Option type. You’ll learn to transform data using methods like map, flatMap, filter, reduce, fold, and scan, gaining the mental model needed to handle pipelines of data safely and cleanly.

Finally, you’ll strengthen your object-oriented toolbox with classes, auxiliary constructors, inheritance, abstract classes, and traits, and you’ll see how lazy evaluation can improve efficiency and control. With quick checks and exercises along the way, you’ll reinforce key concepts and leave prepared to take on Scala projects more confidently—whether you’re aiming for backend development, big data ecosystems, or simply sharper programming skills.

Course content

  • Video class: Scala Tutorial 1 - Introduction to Scala 07m
  • Exercise: What best describes Scala's type system?
  • Video class: Scala Tutorial 2 - Introduction to SBT (Scala Build Tool) 03m
  • Exercise: SBT fundamentals: dependencies and language support
  • Video class: Scala Tutorial 3 - How to Install and Setup SBT on Windows 10 16m
  • Exercise: When configuring JAVA_HOME on Windows for Scala and SBT, which location should it point to?
  • Video class: How to Install Scala and SBT on Ubuntu Linux 10m
  • Exercise: Which command verifies that Scala is installed and shows its version on Ubuntu?
  • Video class: How to install Scala on Mac 07m
  • Exercise: Which command reloads your bash profile so the new Scala PATH is applied in the current terminal
  • Video class: Scala Tutorial 4 - Data Types and Variables 15m
  • Exercise: In Scala, what type is inferred for var d = 12.3 by default?
  • Video class: Scala Tutorial 5 - How to Install Scala IDE Windows 10 First Scala Hello World Application 10m
  • Exercise: Understanding Scala object in HelloWorld
  • Video class: How to setup Scala on Intellij IDEA IDE First SBT/Scala project 08m
  • Exercise: Where should Scala source files be placed in a typical SBT project in IntelliJ IDEA?
  • Video class: Scala Tutorial 6 - Scala String Interpolation 07m
  • Exercise: Which Scala string interpolator prints escape sequences like \n literally without creating a newline?
  • Video class: Scala Tutorial 7 - Scala - IF ELSE Statements 09m
  • Exercise: In Scala, which statement about if and else is correct?
  • Video class: Scala Tutorial 8 - Scala while Loop and do-while Loop 06m
  • Exercise: Scala while vs do-while and increment syntax
  • Video class: Scala Tutorial 9 - Scala For Loop 10m
  • Exercise: In Scala for loops, what is the clause i <- 1 to 5 called?
  • Video class: Scala Tutorial 10 - Match expressions 06m
  • Exercise: In Scala match expressions, which pattern is used as the default case when no other case matches?
  • Video class: Scala Tutorial 11 - Scala Functions 10m
  • Exercise: In Scala functions, which statement about returning values is correct?
  • Video class: Scala Tutorial 12 - Anonymous Functions Default Values Function more ... 08m
  • Exercise: What is the result of calling add(60) for def add(x: Int = 45, y: Int = 15): Int = x + y?
  • Video class: Scala Tutorial 13 - Scala - Higher Order Functions 09m
  • Exercise: What is the result of calling: math(50, 20, _ + _) when math applies the passed function to its two Double arguments?
  • Video class: Scala Tutorial 14 - Scala - Partially Applied Functions 08m
  • Exercise: Understanding Partially Applied Functions in Scala
  • Video class: Scala Tutorial 15 - How to use closures in Scala 05m
  • Exercise: In Scala, when is a closure considered pure?
  • Video class: Scala Tutorial 16 - Function Currying in Scala 09m
  • Exercise: In Scala currying, how do you create a partially applied function that fixes the first argument to 50 for def add3(x: Int)(y: Int): Int = x + y
  • Video class: Scala Tutorial 17 - Strings 10m
  • Exercise: Scala Strings and Formatting Behavior
  • Video class: Scala Tutorial 18 - Arrays 10m
  • Exercise: Scala Arrays: Core Characteristics
  • Video class: Scala Tutorial 19 - Lists 14m
  • Exercise: Scala List fundamentals
  • Video class: Scala Tutorial 20 - Scala Sets 12m
  • Exercise: Scala Sets: Which statement is correct
  • Video class: Scala Tutorial 21 - Scala Maps 12m
  • Exercise: In a Scala Map literal, what happens if the same key is defined more than once?
  • Video class: Scala Tutorial 22 - Scala Tuples 11m
  • Exercise: Which statement about Scala tuples is true?
  • Video class: Scala Tutorial 23 - Scala Options Type 10m
  • Exercise: Safely extracting from an Option returned by Map.get in Scala
  • Video class: Scala Tutorial 24 - map, flatMap, flatten and filter (Higher-order Methods) 13m
  • Exercise: What does flatMap do in Scala collections?
  • Video class: Scala Tutorial 25 - Reduce, fold or scan 11m
  • Exercise: What is the key difference between foldLeft and reduceLeft on a Scala collection?
  • Video class: Scala Tutorial 26 - Scala Classes 09m
  • Video class: Scala Tutorial 27 - Auxiliary constructors 06m
  • Exercise: Which rule must every auxiliary constructor in Scala follow?
  • Video class: Scala Tutorial 28 - How To Extend Class - Class Inheritance 11m
  • Exercise: Which keyword is required in Scala when a subclass provides its own implementation of a superclass method?
  • Video class: Scala Tutorial 29 - Scala Abstract Class 06m
  • Exercise: In Scala what does declaring a class abstract imply and how is an abstract method defined
  • Video class: Scala Tutorial 30 - Scala Lazy Evaluation 06m
  • Exercise: Identify the Scala parameter type that enables lazy evaluation
  • Video class: Scala Tutorial 31 - Scala Trait 07m
  • Exercise: Scala Traits and Multiple Inheritance

This free course includes:

5 hours and 26 minutes of online video course

Digital certificate of course completion (Free)

Exercises to train your knowledge

100% free, from content to certificate

Ready to get started?Download the app and get started today.

Install the app now

to access the course
Icon representing technology and business courses

Over 5,000 free courses

Programming, English, Digital Marketing and much more! Learn whatever you want, for free.

Calendar icon with target representing study planning

Study plan with AI

Our app's Artificial Intelligence can create a study schedule for the course you choose.

Professional icon representing career and business

From zero to professional success

Improve your resume with our free Certificate and then use our Artificial Intelligence to find your dream job.

You can also use the QR Code or the links below.

QR Code - Download Cursa - Online Courses

More free courses at Programming Languages ( Python, Ruby, Java, C )

Free Ebook + Audiobooks! Learn by listening or reading!

Download the App now to have access to + 5000 free courses, exercises, certificates and lots of content without paying anything!

  • 100% free online courses from start to finish

    Thousands of online courses in video, ebooks and audiobooks.

  • More than 60 thousand free exercises

    To test your knowledge during online courses

  • Valid free Digital Certificate with QR Code

    Generated directly from your cell phone's photo gallery and sent to your email

Cursa app on the ebook screen, the video course screen and the course exercises screen, plus the course completion certificate