Stairway to Scala Applied, Part 2
4.6 (24 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.
194 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Stairway to Scala Applied, Part 2 to your Wishlist.

Add to Wishlist

Stairway to Scala Applied, Part 2

Introduction to programming in the Scala language. Scala language features.
4.6 (24 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.
194 students enrolled
Created by Dick Wall
Last updated 11/2016
English
Price: $20
30-Day Money-Back Guarantee
Includes:
  • 3.5 hours on-demand video
  • 110 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • 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
View Curriculum
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
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


Who 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
Students Who Viewed This Course Also Viewed
Curriculum For This Course
109 Lectures
05:24:51
+
Course Introduction and Exercises
1 Lecture 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.

Preview 02:51
+
Composition and Inheritance
20 Lectures 30:34









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
+
Scala's Type Hierarchy
26 Lectures 50:19
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
+
Traits
17 Lectures 46:01
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
+
Packages and Imports
20 Lectures 43:03
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
+
Assertions and Unit Testing
25 Lectures 44:03
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

Scala testing tools
00:53

ScalaTest's lifecycle methods
02:50

1. Pick core Suite traits for your project
00:36

2. Select other traits to mix in
00:27

3. Define base classes for your project
00:37

4. Enjoy
00:37

FunSuite
04:44

FunSuite filled in
00:55

FunSuite with Matchers
03:06

ScalaTest matchers Part 1
01:42

ScalaTest matchers Part 2
01:01

Test-driven development (TDD)
02:14

Behavior-driven development (BDD)
02:11

FunSpec
00:31

FunSpec Output
00:38

FeatureSpec
01:57

FeatureSpec Output
00:56

Using property checks
02:47

Exercises for Flight 11
00:12

Assertions and Unit Testing
5 questions
About the Instructor
Dick Wall
4.4 Average rating
343 Reviews
3,394 Students
4 Courses
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.