Public 3-Day Seminars

A Gentle Introduction to Scala:
  A Public Hands-on Seminar given by Bruce Eckel and Dianne Marsh

Dates: TBD

Register below (end of page) to get information about upcoming seminars.

Need to learn Scala but find the language intimidating?

Click for Larger ImageThis seminar is based on our book Atomic Scala, which takes away the pain of learning by breaking subjects into the smallest chunks we could (we call them “atoms”). Even (dedicated) first-time programmers can learn Scala with this book, but the design also makes it the most expedient way for experienced programmers to get started with Scala.

Want to know more? Download the HTML version of the first 25% of the book on our Download page (you’ll see that we’re still working on it).

Once you complete registration for the seminar, you’ll get access to the full book online (A Google Doc):

  • You’ll be able to add comments to help improve the book if you see places that are confusing
  • You will probably even witness us working on it
  • You’ll also get a bound preview version of the print book when you come to the seminar, with the cover you see above.

We present each Atom (chapter) in the book as a very short lecture, followed by an exercise period. Atomic concepts make learning Scala easy and fun.


Scala is an amazing and elegant language. It’s also powerful, and overwhelming if you try to absorb it all at once. Our goal is to present the language in small bites that you can quickly grasp, to give you a foundation on which you build more knowledge.

We want you to finish the course feeling strong and ready to learn more about Scala. To achieve this we have selected a subset of topics that, once learned, allow you to create useful and interesting programs; a base from which you can increase your knowledge. We have carefully trimmed away topics that you don’t need to know right away (but that you’ll be able to acquire more easily from books or more advanced courses).

We’re careful to introduce topics before we use them, and we don’t assume any programming language background. Books typically go “deep” on a topic in a single chapter. Instead, we divide topics into multiple atoms, building your knowledge piece by piece so you can understand and absorb each idea before moving to the next. We think you’ll find this is a more natural way to learn.


Here is the list of lecture/exercise sessions, taken directly from the book’s table of contents:

  • Introduction
  • Editors
  • The Shell
  • Installation
  • Comments
  • Scripting
  • Values and Data Types
  • Variables
  • Type Inference
  • Expressions
  • Conditional Expressions
  • For Loops
  • Compound Expressions
  • Objects
  • ScalaDoc
  • Vectors
  • Testing
  • Functions
  • More Conditionals
  • Match Expressions
  • Classes
  • Methods
  • Fields
  • Class Arguments
  • Named and Default Arguments
  • Overloading
  • Constructors
  • Class
  • Case Classes
  • Parameterized Types
  • Anonymous Functions
  • map and reduce
  • For Expressions
  • Match Expressions with Types
  • Match Expressions with Case Classes
  • Brevity
  • A Bit of Style
  • Defining Operators
  • Idiomatic Scala
  • Automatic String Conversion
  • Tuples
  • Companion Objects
  • Inheritance
  • Base Class Initialization
  • Overriding Methods
  • Enumerations
  • Abstract Classes
  • Traits
  • Using Traits
  • Reaching into Java
  • Packages and Applications
  • Initialization with Traits
  • Polymorphism
  • Sequences
  • Set and Map Containers
  • Composition, Inheritance & Mixins
  • Error Handling with Exceptions
  • Error Handling with Tuples
  • Error Handling with Either
  • Avoiding Errors with Option
  • Error Handling with scala.util.Try
  • Design by Contract
  • Logging


We’re not covering everything in the language — that’s too much to absorb at one time. We’re giving you what we consider the essentials in a way that you can understand them, so you have a strong basis for moving forward with Scala, either through self-study or more advanced courses.

Seminar Format

One of the great things about the “Atomic” format is that it produces small lectures — we try to keep them less than 15 minutes each, within the limits of everyone’s attention span. Shorter, more energetic lectures keep you engaged.

After each lecture, we’ll give you exercises that develop and cement your knowledge.


Seminar locations are TBD.


On Monday you can check in beginning at 8 a.m. and we’ll start around 9. The normal schedule will go from 9 a.m. to 11:30 a.m., then we’ll give you a nice long break for lunch, when you can choose to walk or rest, work independently or collaborate with other attendees in a less structured way. We’ll reconvene at 1:30 p.m. and go until 5 p.m.

Coffee breaks may be taken spontaneously during exercises (if you really need a break during a lecture, go ahead, we won’t be offended. We’d rather have you comfortable and awake).

What to Bring

Your notebook computer running Windows, Mac OSX, or Linux.

If you can, follow the instructions in the “Installation” atom of the book sample (above). If you can’t, we’ll handle it at the seminar.

Fee and Registration

The fee for this 3-day seminar is $1700, but we have 10 early-bird passes at $1450. The maximum number of attendees is 32.

If we sell all the early-bird passes, that tells us we should hold the seminar. We give a big discount for these passes to encourage you to register as early as possible — that helps us plan. We’ve set the price and number of early-bird passes to match what we need to fund the seminar. Our deadline for deciding to hold the seminar is 30 days before any seminar starts. If we don’t sell all the early-bird passes by that date, we’ll cancel the seminar and give you a full ticket refund.

You can see how many early-bird passes are still available any time we have a registration site online at Eventbrite. Once the early-bird passes sell (even if that happens before the early bird deadline), we’ll commit to holding the seminar, and there will only be full-price passes available.

We will also update this site when a seminar is fully-funded to let you know it’s a go!

Register here to get updates about public seminars:

Your Name (required)

Your Email (required)

 Notify about upcoming seminars

 Notify about book updates

Print Friendly
Bookmark and Share