Stairway to Scala Applied, Part 2

Introduction to programming in the Scala language. Scala language features.
4.2 (3 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
26 students enrolled
$50
Take This Course
  • Lectures 109
  • Length 9 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 4/2016 English

Course Description

Stairway to Scala Applied, Part 2 covers Scala features that are different from other languages or maybe unique to Scala. It is intended to follow on from Part 1, and dovetails nicely into that flow. In particular, by following this course you will:

  • Understand Scala's composition and inheritance features
  • Create abstract classes and pure abstract members (methods and fields)
  • Override and overload methods
  • Create primary and auxiliary constructors
  • Call superclass constructors and methods
  • Understand and use parametric fields
  • Create factory methods in companion objects
  • Construct simple DSLs (Domain Specific Languages)
  • Understand top and bottom types and how Scala uses them
  • Write correct equals and hashCode methods
  • Use traits to mix behavior into classes
  • Know the different styles of packages and visibility modifiers
  • Be able to import anything from anywhere
  • Write pre-conditions and post-conditions
  • Test your code with unit testing


What are the requirements?

  • Students should follow and complete the Stairway to Scala Setup instructions, available for free on Udemy, before starting this course
  • Students should have also completed Stairway to Scala Applied Part 1 or have equivalent skills before starting this course
  • Students will need a laptop or desktop computer with sufficient performance and resources to compile and run the coding exercises

What am I going to get from this course?

  • Understand Scala's composition and inheritance features
  • Create abstract classes and pure abstract members (methods and fields)
  • Override and overload methods
  • Create primary and auxiliary constructors
  • Call superclass constructors and methods
  • Understand and use parametric fields
  • Create factory methods in companion objects
  • Construct simple DSLs (Domain Specific Languages)
  • Understand top and bottom types and how Scala uses them
  • Write correct equals and hashCode methods
  • Use traits to mix behavior into classes
  • Know the different styles of packages and visibility modifiers
  • Be able to import anything from anywhere
  • Write pre-conditions and post-conditions
  • Test your code with unit testing

What is the target audience?

  • Anyone wanting to learn the Scala programming language
  • This is part 2 of a 3 part course, please check you have skills equivalent to part 1 before taking this course
  • We do assume the student has some programming knowledge in a modern programming language

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Course Introduction and Exercises
02:51

Please download the exercises attached to this lecture and unzip them somewhere on your machine where you can find them later. Also, if you have not already done so, please follow the free course instructions at https://www.udemy.com/stairway-to-scala-setup-instructions/learn/#/ so that you are ready to run both the Scala REPL and the exercises.


Thanks and enjoy the course. This is part two of a three part course, the first part covers converting to Scala from other programming languages, while part three will concentrate on the core libraries and APIs in Scala.

Section 2: Composition and Inheritance
Flight 07 Introduction
Preview
00:05
Flight 07 Goals
Preview
00:17
Where we're going
Preview
01:33
Abstract classes
Preview
01:33
Defining parameterless methods
Preview
03:15
Uniform access principle
Preview
01:21
Extending classes
Preview
01:52
ArrayElement class diagram
Preview
00:42
Using ArrayElement
Preview
00:41
Overriding methods and fields
01:22
Using parametric fields
02:30
Invoking superclass constructors
02:37
Using override modifers
02:44
Declaring final members
01:11
Added above, beside and toString
02:03
Factory methods in a companion object
02:33
Using the factory methods
01:22
Hiding the implementation classes
01:18
Hiding the implementation classes continued
01:10
Exercises for Flight 07- Make a Train
00:25
Composition and inheritance
5 questions
Section 3: Scala's Type Hierarchy
Flight 08 Introduction
00:05
Flight 08 Goals
00:24
Scala top classes
03:35
Any, AnyRef, AnyVal
03:32
Scala class hierarchy diagram
01:12
Implicit conversions
03:41
Scala primatives
02:13
== in Scala
01:31
Bottom types
09:52
Bottom types in use
01:29
Scala Negatives
01:31
Scala's Option type
04:13
String interpolation (Scala 2.10)
01:51
Value Classes (Scala 2.10)
03:40
Value class example (Scala 2.10)
01:30
Equality recipe (part 1)
03:12
Equality recipe (part 2)
00:42
Equality recipe (part 3)
00:37
Equality recipe (part 4)
01:22
Equality recipe (part 5)
00:14
Hashcode recipe
01:25
Hashcode recipe continued
00:10
equals/hashCode example (part 1)
00:24
equals/hashCode example (part 2)
00:09
equals/hashCode example (part 3)
01:22
Exercises for Flight 8
00:23
Scala's Type Hierarchy
6 questions
Section 4: Traits
Flight 09 Introduction
00:04
Flight 09 Goals
00:12
About traits
03:56
Defining a trait
00:58
Using a trait
01:51
Using traits in addition to a superclass
01:47
Overriding methods/fields from traits
02:02
Differences between traits and classes
10:08
Thin vs. rich interfaces
02:25
Free Stuff!
00:32
The ordered trait
02:27
An int queue
01:14
Modifying Behavior with a Trait
03:02
Stackable modifications
05:29
Linearization
06:44
Phantom Types
03:01
Exercises for Flight 09
00:09
Traits
7 questions
Section 5: Packages and Imports
Flight 10 Introduction
00:06
Flight 10 Goals
00:26
Packages
02:42
Another way of using packages
01:49
Slightly more compact
01:07
Nested packages
01:42
Going back to your roots
03:26
Imports
01:31
Importing Bob's delights
03:43
Just-in-time imports
03:13
Scala's importing King Fu
01:37
Selective, renaming, hiding
06:22
Implicit imports
03:13
Access modifiers
01:39
Protected members
01:08
Public members and scope of protection
02:54
private[this]
01:40
Visibility and companion objects
01:56
Package objects
02:32
Exercises for Flight 10
00:17
Packages and Imports
7 questions
Section 6: Assertions and Unit Testing
Flight 11 Introduction
00:05
Flight 11 Goals
00:22
Assertions
01:09
Design by contract
03:06
Checking preconditions
08:55
Ensuring postconditions
01:32

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Dick Wall, Scala Developer

Dick is a Scala Developer with over 8 years of Scala development experience, and over 6 years of Scala training experience. As well as consulting in Scala, Dick contributes to a number of open source Scala projects, libraries and tools, and is very active in the Scala developer community. He is also one of the Scalawags, a video podcast about the Scala language. Along with Bill Venners he runs Escalate Software which provides Scala training services.

Ready to start learning?
Take This Course