A Gentle Introduction to Scala:
A Hands-on Seminar given by Bruce Eckel and Dianne Marsh
October 15-19, 2012
Need to learn Scala but find the language intimidating?
This 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:
- The Shell
- Values and Data Types
- Type Inference
- Conditional Expressions
- For Loops
- Compound Expressions
- More Conditionals
- Match Expressions
- Class Arguments
- Named and Default Arguments
- Case Classes
- Parameterized Types
- Anonymous Functions
- map and reduce
- For Expressions
- Match Expressions with Types
- Match Expressions with Case Classes
- A Bit of Style
- Defining Operators
- Idiomatic Scala
- Automatic String Conversion
- Companion Objects
- Base Class Initialization
- Overriding Methods
- Abstract Classes
- Using Traits
- Reaching into Java
- Packages and Applications
- Initialization with Traits
- 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
We’re not covering everything in the language — that’s too much for a week. 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.
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.
The seminar will be held at:
Boulder Digital Arts
1600 Range, Suite 100
Boulder, CO 80301
Boulder is an easy shuttle ride from the Denver Airport, centrally located in the US right next to the magnificent Rocky Mountains.
Boulder is a beautiful place that is both a tech center and university town. Once you’re there you can walk to just about anything you’d like (you probably won’t need to rent a car). The Denver Airport is a hub to many airlines (including discount airlines like Frontier and Southwest) so you’ll almost always be able to book a nonstop flight from anywhere in the US.
You can find out about travel and lodging here.
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.
The fee for this 5-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 the seminar starts: September 15. 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 at the registration site. Once the early-bird passes sell (even if that happens before September 15), we’ll commit to holding the seminar, and there will only be full-price passes available.
We will also update this site when the seminar is fully-funded to let you know it’s a go!
To register, go to http://atomicscala.eventbrite.com/