- Scala Oficial Site
- Scala Standard Library API
- SCALA API DOCS
- Scala School!: A Scala tutorial by Twitter
The original assignments from the Scala course on Coursera. Inside some folders you'll find some more explanation about that specific assignment. I also provided a cheatsheet for most important aspects of the course.
This Specialization provides a hands-on introduction to functional programming using the widespread programming language, Scala. It begins from the basic building blocks of the functional paradigm, first showing how to use these blocks to solve small problems, before building up to combining these concepts to architect larger functional programs. You'll see how the functional paradigm facilitates parallel and distributed programming, and through a series of hands on examples and programming assignments, you'll learn how to analyze data sets small to large; from parallel programming on multicore architectures, to distributed programming on a cluster using Apache Spark. A final capstone project will allow you to apply the skills you learned by building a large data-intensive application using real-world data.
The goal of this assignment is to familiarize yourself with the infrastructure and the tools required during this class. Even though the grade in this assignment will be excluded from your final grade for the course, it is important that you work through this assignment carefully.
https://www.coursera.org/course/progfun
Get up and running with Scala on your computer.
In this section you'll learn the difference between two paradigms functional programming paradigm
and functional imperative programming
.
We are going to step through the basics of Scala; covering expressions, evaluation, conditionals,
functions, and recursion.
In this section, we'll learn about functions as first-class values, and higher order functions. We'll also learn about Scala's syntax and how it's formally defined. Finally, we'll learn about methods, classes, and data abstraction through the design of a data structure for rational numbers.
This section, we'll cover traits, and we'll learn how to organize classes into hierarchies. We'll cover the hierarchy of standard Scala types, and see how to organize classes and traits into packages. Finally, we'll touch upon the different sorts of polymorphism in Scala.
This session we'll learn about the relationship between functions and objects in Scala; Functions are objects! We'll go deep into Scala's type system, covering subtyping and generics, and moving on to more advanced aspects of Scala's type system like variance. Finally, we'll cover Scala's most widely used data structure, Lists, and one of Scala's most powerful tools, pattern matching.
This section we'll cover in more details the most commonly-used data structure in Scala - List.
After a deep-dive into Lists, this session we'll explore other data structures; vectors, maps, ranges, arrays, and more. We'll dive into Scala's powerful and flexible for-comprehensions for querying data.