Scala and functional programming

In this workshop, you will learn Scala as a new programming language.

This is an intense, comprehensive training that covers almost all of the most powerful and commonly used Scala features.
You will learn from scratch - from basic OO and functional primitives, to pattern matching, to implicits, type system magic and other advanced topics.
Lots of coding practice.

When and where

June 27 - July 9
Monday-Friday 18:00 - 20:00

Further details to be announced after registration.

Audience

You should be comfortable with Java and OO principles; some functional programming concepts are an asset and will speed up your learning.

If you

  • are comfortable with Java and OO principles
  • are willing to think a bit differently so you could write better code, faster
  • have some functional programming concepts (not a prerequisite but just so you could speed up your learning)

then this workshop is designed for you.

Contents

Scala is based on the JVM, so we'll naturally make comparisons to Java (while showing why to choose it over Java).
It'll be sweet - we'll taste lots of Scala syntactic sugars throughout the course as we understand their chemistry.

The course will be split more or less in two weeks. We'll explore the basic functionalities and syntax in the first week, we'll get rid of a lot of Java boilerplate. The second week will focus on the more advanced functionalities the language has to offer which give you great power.

An overview:

  • A gentle intro to Scala - basic syntax, the REPL, vars, vals, functions, calls
  • OOP - classes, singletons, methods, operators, case classes and why Scala is more OO than Java (wut?!)
  • Functional programming basics - functions and primitives on collections, lambdas, currying, HOFs, comprehensions
  • Inheritance and traits - an introduction to Scala's type system
  • Pattern matching - probably the most powerful Scala feature
  • Monads and idiomatic types - Option[T], Try[T], Future[T]
  • Advanced functional programming - partial functions, partially applied functions + lots of practice
  • Implicits - a powerful tool for giving and taking things for granted
  • Type system mastery - variance, type members, static duck typing and some Scala black magic

Registration

Registration has ended.

Participants will receive a confirmation email in the week prior to the workshop.
We will send you further details and some preparations steps - programming setup etc.

About us

Daniel Ciocîrlan - Software engineer, teaching assistant, Scala lover - daniel.ciocirlan@gmail.com
Andrei Tăleanu - Scala enthusiast & Akka zealot - andrei.taleanu@gmail.com

Labs

sesiuni/scala.txt · Last modified: 2016/07/24 16:31 by dciocirlan