Course 'Introduction to Scala'
$100usd

Whether you want to learn Scala in order to work with Apache Spark, or an industrial-strength Scala program, enrolling in this course is the logical starting point.

This Introduction to Scala course covers the fundamentals and is designed to give you a variety of hands-on experiences with Scala. The unique features of Scala are introduced, including object-oriented and functional aspects. Software tools are discussed in detail, including SBT, both leading IDEs (IntelliJ IDEA and Scala-IDE), and several options for programming Scala without an IDE. Exercises are provided throughout that reinforce the lecture material.

The material builds from lecture to lecture, so be sure to go through the material from start to finish. This course is based on lots of code examples that can be pasted into the Scala REPL, and that code is also provided in the courseNotes/ directory. The course consists of 8 hours of video, over 450 pages of lecture notes (if printed as an O'Reilly-sized book), more than five-dozen sample programs, and about a dozen exercises. As you can see from the Revision History tab on this page, we continually keep this course up-to-date. The discussions of upcoming versions of Scala also have working code examples, as appropriate.

First Things First

We suggest that everyone take this course before moving on to the follow-on course, Intermediate Scala. Many students enroll in Intermediate Scala straight away after having spent time experimenting with Scala. Although you can spend a lot of time trying to learn Scala from the Internet and by reading books, this leads to an uneven and often incorrect understanding of Scala. We find that most students who enroll in Intermediate Scala without enrolling in this course first soon enroll in this course as well.

In addition to offering self-paced online learning with email support, Micronautics Research (the company that operates ScalaCourses.com) offers on-site and remote delivery for this course. Our instructors use videoconferencing to provide office hours, so students can interact directly. Please contact us for further details.

The overview video on the front page of this web site discusses how ScalaCourses.com works.

Prerequisites

Familiarity with Java, Ruby, Python or another object-oriented programming language is recommended.

Date Lecture Changes
2021-05-10 All Updated code to SBT 1.5.2, Scala 3.0.0-RC3 and updated all dependencies.
2020-10-22 Installing Scala Updated installation instructions to v2.13.3
2020-07-23 Windows Terminal Added link to Windows Terminal Preview 1.2 docs
2020-06-25 Windows Subsystem for Linux Added mention of the Windows system startup folder
2020-06-23 Installing Scala Added a mention of Ubuntu's default-jdk package.
2020-06-12 Windows Subsystem for Linux Added warning about WSL 2
2020-05-21 Windows Terminal Added link to an article summarizing the current Windows Terminal
2020-04-26 Windows Terminal Updated to reflect breaking changes in Windows Terminal v0.11
2020-04-23 Installing Scala Updated to install Scala 2.13.2
2019-12-18 Dotty Preview Updated the transcript to match today's Scala Roadmap Update.
2019-12-05 Installing Scala Added reference to Microsoft's nice summary of the differences between JDK 8 and JDK 11.
2019-12-04 Installing Scala Added information about JDK version for Play 2.8.
2019-11-28 Setting Up IntelliJ IDEA Mentioned the IntelliJ Scala Plugin 2019.3 release in the transcript
2019-11-27 Windows Terminal Added information about Preview version 0.7.
2019-11-09 Ammonite Added new section: sbt-ammonite-classpath to transcript
2019-11-05 SBT Tasks and Settings Added information about the new ConflictManager.
2019-11-05 Setting Up IntelliJ IDEA Added mention of the Grazie plugin.
2019-10-30 Windows Subsystem for Linux Added link to WSL release notes
2019-10-17 SBT Global Setup Updated the transcript of the Checking the Currently Available sbt Version section.
2019-10-17 SBT Project Setup Updated the sbtTemplate build.sbt listing to match the GitHub project, and reworded the description for alphabetically sorted settings.
2019-10-13 Setting Up IntelliJ IDEA Added section Launching IDEA from WSL.
2019-10-12 Atom Editor Added caveat about running Atom under WSL.
2019-10-10 Windows Subsystem for Linux Added a mention of the virtual path to access WSL files from native Windows.
2019-10-09 Scala Overview and Philosophy Added section Refer to Lecture Transcripts and republished video.
2019-10-09 Ammonite Updated Installation section to include brew.
2019-10-05 Windows Subsystem for Linux Added a reference to the Windows Terminal lecture at the end of the transcript.
2019-09-29 More Fun With Functions Added new Setup section, which shows how the Scala compiler infers which constructor to invoke according to the declared type to be returned.
2019-09-29 Functions are First Class Renamed New for Scala 2.12 section to SAM Types, expanded the material, added sample code to git repo.
2019-09-24 Windows Terminal Updated for Preview 1909
2019-09-22 Algebraic Data Types Published transcript of new lecture
2019-09-18 Installing Scala Updated to Scala 2.13.1
2019-09-11 Windows Subsystem for Linux Changed transcript to install pgadmin on native Windows and postgres on WSL.
2019-09-07 Windows Subsystem for Linux Enhanced the transcript's XMing launch files and added references to additional resources.
2019-09-07 Dotty Preview Published first version of transcript.
2019-09-07 SBT Project Setup Added short section on giter8 to the transcript.
2019-09-02 Windows Cmder Added information on how to cause new consoles to open in your WSL home directory.
2019-08-28 Windows Terminal Added mention of the 0.4 update to the transcript.
2019-08-27 Windows Subsystem for Linux Provided more information on installing and setting up XMing to the transcript.
2019-08-25 Installing Scala Corrected Ubuntu installation incantation for openjdk-8-jdk.
2019-08-12 Type Hierarchy and Equality Published updated video.
2019-08-08 Learning Scala Using The REPL Moved Summary of Method Syntaxes section from the Type Hierarchy and Equality lecture to this lecture.
2019-08-08 Type Hierarchy and Equality Rewrote Type Widening and Nothing and Throwable sections, replaced an exercise with Exercise - Type Widening of Try Return Type, added new section Declaring a Method that Returns Nothing, updated git repository to match.
2019-08-07 UTF-8 and Scala Published video.
2019-08-06 UTF-8 and Scala Created this lecture from the UTF-8 sections of the Installing Scala and Learning Scala Using The REPL lectures.
2019-08-06 Installing Scala Published new video; most of the contents of the previous video have been replaced with updated information.
2019-08-05 Installing Scala Updated transcript with OpenJDK information.
2019-07-24 Working With IntelliJ IDEA Added a very short section on the IDEA 2019.2 Scala Plugin Major Update
2019-07-23 Installing Scala Updated transcript for Scala 2.13.0.
2019-07-19 Ammonite Added section Usage Tracking Is On By Default.
2019-07-16 Windows Subsystem for Linux Added new section to transcript: New Ubuntu Package: ubuntu-wsl
2019-07-14 Working With IntelliJ IDEA Added new section Project Groups to transcript.
2019-07-12 Type Hierarchy and Equality Updated the Scala Type Hierarchy diagrams for Scala 2.13.0.
2019-07-12   Completed updating all 654 HTML links in the 60 lecture transcripts that make up this course (some lectures have not been released yet). This was mostly a manual process. Please let us know of any errors or omissions. Note that Scala 2.13.0 does not provide Scaladoc for some classes, such as RichInt. This error should be rectified soon, possibly in time for Scala 2.1.3.1
2019-07-04 Working With Scala-IDE for Eclipse Marked this lecture as obsolete. Scala-IDE was abandoned 2 years ago and is not compatible with the current version of Scala.
2019-06-25 Windows Terminal Published transcript and added code to git repo
2019-06-20 Windows Subsystem for Linux Republished entirely new video
2019-06-20 Windows Subsystem for Linux Hived material discussing Windows Cmder into its own lecture
2019-06-20 Windows Cmder Hived from Windows Subsystem for Linux lecture
2019-06-18 JetBrains Toolbox Added a description of the new features in JetBrains Toolbox 1.5 to the transcript
2019-06-18 Scala Overview and Philosophy Republished video
2019-06-12 Sample code Updated sample code for the entire course and all dependencies to Scala 2.13.0.
2019-06-10 Installing Scala Mentioned that Java 11 will be supported with sbt 1.3.0
2019-06-10 SBT Global Setup Mentioned that coursier (which has an entire section already devoted to it) will become a standard feature for sbt 1.3.0
2019-05-31 JetBrains Toolbox Published video
2019-05-22 Windows Subsystem for Linux Updated transcript for changes to WSL in Windows 10 version 1903.
2019-05-21 Ammonite Added section entitled Clipboard Support
2019-05-07 Ammonite Replaced the nscala-time examples (obsolete since Java 8) with Jsoup examples, and provided an equivalent Ammonite script file.
2019-05-06 Windows Subsystem for Linux Mentioned WSL 2 and added new section: STOP THE PRESS - Microsoft Windows Terminal
2019-05-01 Setting Up IntelliJ IDEA Wrote not-quite-a-whole section about Edit Custom VM Options... on the IDEA Configure menu. Students who follow this information will notice dramatically faster performance when working with their IDE on Scala projects, and significantly enhanced video display when viewing rendered markdown.
2019-05-01 SBT Project Setup Updated to SBT 1.2.8, Scala 2.18, struck out information about abandoned SBT plugins, compatible with Scala 2.13-RC1.
2019-05-01 SBT Global Setup Killed off references to abandoned SBT plugins: Ensime and sbt-idea.
2019-04-30 Working With IntelliJ IDEA Added new section Web Browser / GitHub / JetBrains Toolbox Integration to the transcript
2019-04-26 SBT Tasks and Settings Updated for SBT 1.2.8 and Scala 2.13.0-RC1
2019-04-26 Almond - a Scala kernel for Jupyter Renamed lecture from Jupyter-Scala to Almond - a Scala kernel for Jupyter
2019-04-25 SBT Global Setup Added new section entitled SBT 1.0 Versioned Setup and updated coursier to 1.6.6
2019-04-25 Windows Subsystem for Linux Renamed this lecture from 'Setting up Bash and Git on Windows' to 'Windows Subsystem for Linux'.
2019-04-25 Setting up Bash and Git on Windows Replaced the discussion of Cygwin and Git for Windows with information on working with Windows Subsystem for Linux (WSL), and replaced the information on ConEmu with information on Cmder.
2019-04-24 Setting Up IntelliJ IDEA Hived portions of this lecture to JetBrains Toolbox
2019-04-24 JetBrains Toolbox Hived this lecture from Setting Up IntelliJ IDEA
2019-04-24 Installing Scala Added a discussion to the abstract about various options for running Scala, and rewrote much of the transcript so it flows better. Added to the transcript a detailed discussion of OpenJDK for recent versions of Java, and how to install Scala 2.13-RC1.
2019-04-23 SBT Global Setup Added a reminder about various options for running Scala
2019-04-23 Scala Overview and Philosophy Added section entitled Git Clone the Course Notes
2019-04-23 Setting Up IntelliJ IDEA The transcript has been updated to IDEA 2019.1.1
2019-04-22 Learning Scala Using The REPL Added new Literals section to the transcript, with information about Scala 2.13
2019-04-22 Setting Up IntelliJ IDEA Added a section entitled Overriding IDEA Settings on persisting a custom memory configuration for IDEA
2019-04-22 Atom Editor & IDE Updated information to current version of Atom (1.36.0)
2019-04-22 Installing Scala Mentioned OpenJDK for recent versions of Java, and how to install Scala 2.13-RC1.
2019-04-22 Option, Some and None Added new Scala 2.13’s StringOps.toXXXOption Methods section to the transcript
2019-04-22 Learning Scala Using The REPL Added new Literals section to the transcript, with information about Scala 2.13
2019-04-22 Reading Scaladoc Added reference to Scaladoc for Scala 2.13
2019-04-22 Scala Overview and Philosophy Added link to the Scala 2.13 Specification in the transcript.
2019-04-22 Introduction and Scala Overview Added reference to the Scala 2.13 Specification
2018-09-27 Installing Scala Updated to Scala 2.12.7 and added information about Java 9+
2018-09-27 SBT Global Setup Updated to SBT 1.2.3 and sbt-coursier 1.0.3
2018-09-27 SBT Project Setup Updated to Scala 2.12.7 and SBT 1.2.3
2018-03-20 SBT Global Setup Updated incantation to check SBT version, updated some references to SBT version
2018-03-20 Installing Scala Updated to Scala 2.12.5
2017-12-26 Jupyter-Scala Added new information about running jupyter-notebook
2017-09-24 Installing Scala Added special installation instructions for JDK 9 on Ubuntu/Debian
2017-09-20 Atom Editor & IDE Added preliminary Atom-IDE information
2017-07-27 Installing Scala Updated transcript to Scala 2.12.3
2017-07-27 SBT Project Setup Updated to Scala 2.12.3
2017-07-04 Ammonite Updated transcript for Ammonite v1.0.0
2017-06-06 Setting Up IntelliJ IDEA Republished video
2017-06-06 Setting Up IntelliJ IDEA Added sections Adding Context Menu Items (Supplemental) for Ubuntu / Nautilus, XUbuntu / Thunar and Windows to transcript.
2017-04-19 Ammonite Updated to Scala 2.12.2
2017-04-19 Installing Scala Updated to Scala 2.12.2
2017-03-27 Setting Up IntelliJ IDEA Updated transcript to IDEA 2017.1
2017-03-01 SBT Project Setup Added discussion of unmanaged dependencies
2017-02-28 SBT Tasks and Settings Republished video to match transcript
2017-02-27 Scala Overview and Philosophy Updated video to match transcript
2017-02-24 Learning Scala Using The REPL Republished video
2017-02-22 Reading Scaladoc Republished video
2017-02-15 Reading Scaladoc Updated to the Scaladoc 2.12 user interface
2017-02-14 Installing Scala Updated remaining transcript to Scala 2.12.1 and Java 8, removed info about older Scala and Java versions, republished video
2017-02-09 Reading Scaladoc Added discussion of broken features in Scaladoc 2.12
2017-02-08 Type Hierarchy and Equality Updated the Scala Type Hierarchy diagram for Scala 2.12 and republished video
2017-02-04 Setting Up IntelliJ IDEA Added new suggested setting for Windows users that installed the Windows for Linux Subsystem: Tools / Terminal / Shell Path
2017-01-30 Installing Scala Modified the transcript to recommend Atom Editor instead of Sublime Text
2017-01-30 Unit testing With ScalaTest and Specs2 Added Testing Strings, Working With OptionValues, Working With EitherValues and Testing a Value Against Multiple Predicates sections to transcript, updated remainder of transcript and republished the video
2017-01-29 Working With IntelliJ IDEA Added section Scratch Files and Buffers to transcript
2017-01-23 Jupyter-Scala Published video
2017-01-15 Atom Editor For Windows 10 users: added a setting for Terminal to run the WSL bash shell when a new terminal is launched
2017-01-15 Setting up Bash and Git on Windows Added info about using ConEmu / Cmder with WSL
2017-01-12 Ammonite Updated video to match transcript
2016-12-30 Type Hierarchy and Equality Added section Summary of Method Syntaxes
2016-12-16 Working With Scala-IDE for Eclipse Added JVisualVM vs. Java Mission Control section
2016-12-13 Jupyter-Scala Released lecture transcript
2016-12-13 SBT Global Setup Hived Ammonite section to its own lecture: Ammonite, added new material to transcript and republished video.
2016-12-05 All Updated code examples to Scala 2.12.1
2016-11-27 Ensime Updated to Ensime v1.12.0
2016-11-20 Setting up Bash and Git on Windows Added more information about working with Windows Subsystem for Linux to transcript
2016-11-17 Installing Scala Added mention of Java 8u112 or later
2016-11-13 Installing Scala Updated to Scala 2.12.0
2016-11-09 SBT Project Setup Updated transcript to Scala 2.12
2016-11-08 SBT Tasks and Settings Added History Commands section to transcript
2016-11-07 SBT Tasks and Settings Added link to an index of common methods, types, and values you might find in an sbt build definition.
2016-11-05 Scala Overview and Philosophy Added Rob Pike's 5 Rules of Programming section to transcript
2016-11-03 SBT Tasks and Settings Added Cross-Version Support For Scala Sources section to transcript
2016-11-03 Scala Overview and Philosophy Added link to Scaladex
2016-11-02 Unit testing With ScalaTest and Specs2 Updated sample code, transcript and video to Scala 2.12 and compatible versions of dependencies
2016-10-28 SBT Project Setup Updated transcript to SBT 0.13.13
2016-10-26 SBT Tasks and Settings Added Use a Specific Compiler Handy One-Liner
2016-10-23 Type Hierarchy and Equality Added Specially Handled Types section
2016-10-19 SBT Tasks and Settings Added Alternative Syntax section to transcript
2016-10-18 Sealed Classes and Extractors Added Initialization Logic for Case Class Constructors section to transcript
2016-10-18 More Fun With Functions Added Dispensing with App and DelayedInit section
2016-10-14 Either, Left and Right Updated for Scala 2.12
2016-10-11 Self Types vs Inheritance Added new section to transcript Using Scala’s Singleton as a Self Type
2016-10-10 Scala Overview and Philosophy Added link to Scala 2.12 Language Specification
2016-10-02 Working With IntelliJ IDEA Updated the transcript to match how IDEA 2016.2.4 works, updated video to add a demonstration of column select and added Creating a New Project Using IDEA section to video
2016-09-30 SBT Tasks and Settings Replaced the Examining Dependencies section with a new and larger Exploring Direct and Transitive Dependencies section and republished the video
2016-09-29 Installing Scala Updated video to match accumulated changes in the transcript
2016-09-29 SBT Project Setup Updated video to match accumulated changes in the transcript
2016-09-28 Working With Scala-IDE for Eclipse Updated video to match transcript
2016-09-28 Setting up Bash and Git on Windows Updated video with Windows 10 integration with Ubuntu status
2016-09-28 Atom Editor Added demo of Column Select mode to video
2016-09-19 Working With Scala-IDE for Eclipse Added new section Scala-IDE Team Is Unhappy with Eclipse.
2016-08-15 Working With IntelliJ IDEA Added Exploring Project Dependencies section to transcript.
2016-08-12 SBT Project Setup Updated the recommended Scala compiler options
2016-08-02 SBT Tasks and Settings Added section sbt Script
2016-07-24 SBT Tasks and Settings Added section Run All Tests In a Specific SBT Subproject to transcript
2016-07-14 Functions are First Class Added New for Scala 2.12 section to transcript and updated the Desugared Syntax section
2016-07-04 Case Classes Added Example from Play Framework section
2016-06-22 Ensime Initial version of transcript published
2016-06-16 SBT Tasks and Settings Republished video
2016-06-16 Atom Editor Added Cygwin launch script for Atom to transcript
2016-06-16 SBT Global Setup Added new section Coursier - An Alternative Maven / Ivy Fetcher
2016-06-13 Atom Editor Published video
2016-06-10 Atom Editor Wrote transcript
2016-05-21 Setting Up IntelliJ IDEA Added suggestion regarding "Smart Keys / Reformat block on typing '}'" and new key bindings for moving between editor tab groups
2016-03-13 SBT Tasks and Settings Moved the Examining Dependencies section from the Standard Files and Directories and Improved Template lecture of the Introduction to Play Framework for Scala course to the end of this transcript
2016-03-13 SBT Project Setup Changed references from Typesafe (the company name) to Lightbend
2016-03-13 SBT Global Setup Added section A Word About SBT's Documentation to transcript
2016-03-02 Objects Added a mention of Ammonite's block input mode
2016-03-02 Learning Scala Using The REPL Enhanced REPL the here docs section in the transcript with three Scala 2.11.8 examples
2016-02-22 SBT Global Setup Updated to SBT 0.13.11
2016-02-22 SBT Project Setup Updated to SBT 0.13.11
2016-02-22 SBT Tasks and Settings Updated to SBT 0.13.11
2016-02-15 Setting Up IntelliJ IDEA Hived Working with IntelliJ IDEA lecture and republished video
2016-02-15 Working With IntelliJ IDEA Hived from Setting Up IntelliJ IDEA lecture and published video
2016-02-12 Working With IntelliJ IDEA Updated transcript to IntelliJ IDEA 15.0.3
2016-02-11 SBT Project Setup Hived into SBT Tasks and Settings
2016-02-11 SBT Tasks and Settings Hived from SBT Project Setup lecture
2016-02-10 SBT Project Setup Updated and republished video
2016-02-06 Setting up Bash and Git on Windows Republished video
2016-02-05 Scala Imports and Packages Updated transcript and republished video
2016-02-02 SBT Global Setup Republished video
2016-01-28 SBT Global Setup Added SBT's Recursive Build Process section
2016-01-27 Unit testing With ScalaTest and Specs2 Updated transcript to current versions of all software mentioned and republished video
2016-01-25 Setters, Getters and the Uniform Access Principle Tweaked transcript and redid video
2016-01-24 SBT Global Setup Enhanced preamble and Plugins sections; added Reproducible Builds section
2016-01-24 Reading ScalaDoc Updated video to match transcript
2016-01-23 Scala Traits Updated video
2016-01-23 Try and try/catch/finally Video brought up to date with transcript
2016-01-23 Scala Overview and Philosophy Completely redid the video
2016-01-23 Sublime Text Looks like Sublime Text is dead. This lecture is deprecated and will not be updated.
2016-01-21 Classes Part 2 Republished video so it matches the transcript
2016-01-20 Classes Part 1 Updated video to match transcript and improved video presentation
2016-01-07   Published new promotional video for this course (See Overview Video tab)
2016-01-03 Working With Scala-IDE for Eclipse Lecture is no longer free
2015-12-21 Learning Scala Using The REPL Added Scala REPL Here Docs section (new for Scala 2.11.8)
2015-12-05 SBT Global Setup Updated initialCommands in (Test, console) for Ammonite-REPL
2015-11-30 Working With IntelliJ IDEA Added Running SBT Console Inside IDEA section to the transcript.
2015-11-27 SBT Global Setup Added Ammonite - An Alternative REPL section to transcript
2015-11-27 SBT Project Setup Added Handy Settings section
2015-11-21 SBT Project Setup Added Managing Conflicting Dependencies and Handy One-Liners sections to the transcript
2015-11-19 Learning Scala Using The REPL Republished video discussing REPL changes for Scala 2.11.8 & 2.12
2015-11-19 Closures Updated video with new section Closure Improvements with Scala 2.12
2015-11-07 Setting up Bash and Git on Windows Added new section Speeding up git on Windows
2015-10-17 Setting up Bash and Git on Windows Added Spaces in User Names section
2015-10-09 Learning Scala Using The REPL Added Scala 2.11.8/2.12 Improvements section
2015-09-22 Pattern Matching Tweaked transcript and redid video
2015-09-14 tmux Published transcript
2015-09-13 Lambda Review & Drill Added Spark Property Graph Exercise to transcript
2015-09-06 Functions are First Class Added section entitled Function1 Shorthand and republished video.
2015-09-05 Either, Left and Right Rewrote lecture and republished
2015-08-26 Working With IntelliJ IDEA Added section Overriding IDEA Settings
2015-07-25 Working With IntelliJ IDEA Added instructions on how to bind Alt-Shift-H to View Local History.
2015-07-10 Working With IntelliJ IDEA Added new demo to end of transcript and republished video
2015-07-09 Learning Scala Using The REPL Republished video
2015-07-07 Learning Scala Using The REPL Added the until and the indices Idiom section
2015-07-01 Scala Overview and Philosophy Added new paragraph on implicit conversions in the Everything is an Object section
2015-07-01 Learning Scala Using The REPL Added Scala / Java Interoperability section
2015-06-26 Working With IntelliJ IDEA Updated video and transcript for IDEA 14.1.4, lecture is no longer free
2015-06-24 Installing Scala Updated to Scala 2.11.7
2015-06-13 Reading ScalaDoc Added Symbol Definitions section
2015-06-08 SBT Global Setup Fixed video, which was missing first 5 seconds of audio
2015-05-29 Type Hierarchy and Equality Added 'Exercise - Something to Go "Hmm" about'
2015-05-26 Case Classes Added a cautionary section about defining types in methods and functions
2015-05-24 Case Classes Added case object section to transcript
2015-03-15 Either, Left and Right Moved after Functions are First Class lecture and added Processing Either Efficiently with fold section
2015-03-11 Classes Part 2 Added Splatting a Seq section to the transcript
2015-03-10 Classes Part 2 Republished video because audio for first few minutes was missing
2015-03-10 Classes Part 1 Republished video to fix portion that had no video
2015-03-10 More Fun With Functions Hived from Functions are First Class lecture and published video with enhanced transcript.
2015-03-10 Closures Hived from Functions are First Class lecture and published video with enhanced transcript.
2015-03-10 Functions are First Class Hived portions of this overly long lecture into the Closures and More Fun With Functions lectures and republished video.
2015-02-28 SBT Project Setup Updated transcript; many small changes, published a completely new video
2015-02-26 Installing Scala Updated transcript to Scala 2.11.6, removed "bad quality" information because it is now obsolete
2015-02-25 Type Hierarchy and Equality Updated video to match transcript
2015-02-25 Either, Left and Right Updated video to match transcript
2015-02-25 Deceptively familiar: access modifiers Updated video to match transcript
2015-02-25 Enumerations Published video
2015-02-21 Sublime Text Added Always on Top section to transcript
2015-02-21 Lambda Review & Drill Published video
2015-02-20 SBT Project Setup Reworked Using sbtTemplate section of transcript
2015-02-19 Recursion and Functional Programming Published transcript
2015-02-13 Case Classes Fixed preamble video so output is visible
2015-02-12 Functions are First Class Enhanced Call By Name / Lazy Evaluation of a Parameter section and touched up most of the other sections. Published new video, nearly twice as long as the previous video.
2015-02-11 Try and try/catch/finally Updated video to reference the Trying Harder exercise in the Partial Functions lecture of the Intermediate Scala course
2015-02-10 Learning Scala Using The REPL Added 95% Runtime Fidelity and Pasting a Transcript sections, added information on string interpolation, recreated entire video
2015-02-07 Setting up Bash and Git on Windows Updated screen shots for Configuring ConEmu With Cygwin Bash (Supplemental) section
2015-02-06 Lambda Review & Drill Published transcript for new lecture
2015-02-06 Scala Overview and Philosophy Added 60% more material and republished video
2015-02-05 Installing Scala Updated transcript for JDK 8, added more UTF-8 info, made many small changes and republished video
2015-01-14 Functions are First Class Added Handmade unless Construct and Handmade until Construct sections to transcript
2015-01-13 Setting up Bash and Git on Windows Added the ConEmu Hot Keys section
2015-01-07 SBT Global Setup Updated Debian/Ubuntu SBT install instructions to SBT 0.13.7
2015-01-07 Installing Scala Updated transcript to Scala 2.11.5 and added .deb installation instructions for Debian-related Linux distros like Ubuntu
2015-01-01 Classes Part 1 Updated and expanded material from the original Classes lecture
2015-01-01 Classes Part 2 Hived this lecture from the Classes lecture and expanded the material
2014-12-31 Type Hierarchy and Equality Added discussion of array equality to transcript
2014-12-29 Either, Left and Right Added the Option vs. Either vs. Try section to transcript
2014-12-26 SBT Global Setup Updated and expanded the lecture and video
2014-12-23 Working With Scala-IDE for Eclipse Published updated video
2014-12-19 Setting up Bash and Git on Windows Published the transcript and the video of a special lecture for Scala programmers that must use Windows
2014-12-18 Working With Scala-IDE for Eclipse Updated the transcript to JDK 8 and Scala-IDE 4.0.0 with Scala 2.11
2014-12-16 Traits / Mixins Refactored some material into the Self Types vs Inheritance lecture
2014-12-16 Self Types vs Inheritance Added the Self Types vs Inheritance vs Composition section and a section on numerically formatted interpolated strings
2014-12-16 Stackable Traits and Abstract Override Hived this lecture from the More Traits lecture
2014-12-08 Classes Added the Digging Deeper section to transcript
2014-11-29 SBT Global Setup Transcript now mentions that SBT 0.13.7 no longer requires double-spaced .sbt files
2014-11-29 Unit testing With ScalaTest and Specs2 Added an example to the transcript of running a specific ScalaTest test by using the -z argument within sbt
2014-11-29 Traits / Mixins Added the Self Types section to transcript
2014-11-21 Pattern Matching Added the Match Case with Multiple Values section
2014-11-19   Updated courseNotes project to SBT 0.13.7
2014-11-01   Updated sample code to Scala 2.11.4
2014-11-01 Scala Overview and Philosophy Added a reference to the Scala Specification
2014-11-01 SBT Global Setup Added the Colorized Scala REPL Output section to transcript
2014-10-12 Deceptively familiar: access modifiers Added update for Scala 2.11.3 bug fixes
2014-10-11   Updated sample code to Scala 2.11.3
2014-09-21 Enumerations Updated transcript
2014-09-17 Enumerations Wrote transcript for new lecture
2014-08-28 SBT Global Setup Added information about sbt-updates plugin
2014-08-17 Functions are First Class Added the Function1 Shorthand section to transcript
2014-08-08 Functions are First Class Video is 50% longer, recorded 3 new sections
2014-08-07 Functions are First Class Added the Method Lifting Turns Varargs into a Sequence section to the transcript
2014-08-04 Type Hierarchy and Equality Reworked video
2014-07-26 Classes Added the Types vs. Classes section to the transcript
2014-07-24 Working With IntelliJ IDEA Minor update – just changed the short introduction segment. No technical content was modified.
2014-07-08 SBT Project Setup Updated sbtTemplate to Scala 2.11.1 and fixed the sbt eclipse setup. Updated the Discovering Dependencies and Versions section with a Scala 2.11 example.
2014-07-03   Updated the courseNotes project to Scala 2.11.1 and SBT 0.13.5.
2014-07-02 Working With IntelliJ IDEA Updated the video for this free lecture; more than half is new, the rest was remastered.
2014-06-29 Working With IntelliJ IDEA Updated the transcript for this free lecture to IDEA 13.1.3 and added the Invalid JDK Settings section
2014-06-22 Installing Scala Updated the brew install incantation in lecture and this page.
2014-06-22 Sublime Text, SBT Project Setup Moved the Sublime Text lecture after the SBT Project Setup lecture.
2014-06-14 SBT Global Setup Added sbt-dependency-graph-sugar to SBT configuration instructions.
2014-04-24   Course complete, Early Access program ends, maintenance begins.
2014-01-13 Functions are First Class Published video
     
     
2012-12-14   Initial course setup.
Price: $100usd
Instructor(s): ,