Course Organiser: Udemy

Stairway to Scala Applied Part 3

Scala Applied, part 3 is the final part of this Scala programming language course. The course in its entirety is aimed at giving you a full, day-to-day working knowledge of Scala programming, including some of the most common core library APIs.

This part starts with a final language feature for Scala (continuing from the other language features covered in parts 1 and 2). Pattern matching, partial functions and case classes are examined, how they can be used together, and how partial functions can help you avoid certain runtime errors by validating input to a function before you call it.

Then we delve into the collections API in the core libraries (a very in-depth 2 module examination of the capabilities and performance tradeoffs of the various collection options), and finish up with a look at using Scala on Java projects, using Java libraries from Scala and how to harness build tools (particularly SBT) to build your project and even write custom settings and tasks. Following that we look at the Futures API in the core libraries.

This course is also a good lead-in to the Stairway to Scala Advanced 3 part course which concentrates on in-depth language features, higher level functional abstractions, common patterns and idioms, type theory and other more advanced Scala concepts that will be particularly helpful for anyone writing their own libraries and APIs in Scala.


Stairway to Scala Applied Part 2

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 this course is for:

  • 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 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

Stairway to Scala Applied Part 1

The course is half theory, half practice with hands on coding exercises built around test driven development examples. If you complete all three parts, with all the exercises, you will find that in addition to a strong grounding in the language theory, you will have the practical skills and comfort to code in Scala, as well as having the tools necessary to do so.

Unlike many other courses that teach a specific aspect of the Scala language, for example reactive programming or functional concepts, Stairway to Scala Applied provides a balanced and thorough introduction to the whole language and its concepts, including libraries like Actors and Collections. It is intended to accelerate your Scala learning curve and make you able to use Scala productively by the end of the course.

The course is taught by two highly experienced Scala developers who use Scala on a daily basis for real world commercial projects, and have done so for several years each.

Most of the lectures are practical demonstrations accompanied by a slide. You can download the slide deck and follow along on your computer, but the lectures are also presented using Udemy mashups, so the slide and practical demo can be switched between at will. If you hear typing, it’s best to bring up the practical demo screencast instead of the slide in order to follow along.

Who this course is for:

  • Anyone interested in programming using the Scala programming language
  • Students should have some programming experience in another language, but no prior Scala language knowledge is assumed.
  • Developers wanting to get to a good working knowledge of Scala as quickly as possible

The Rust Programming Language – Introduction

This course will teach you the fundamentals of Rust, a modern programming language that has the both the power of native code as well as the safety of some managed languages. In this course you will learn the following:

  • How to download and install Rust; how to compile programs and (optionally) work with an IDE.
  • Learn about fundamental data types and how to use them to declare variables.
  • Undersand arrays, vectors and strings, the concept of slices.
  • Learn to create functions, methods, closures, higher-order functions.
  • Understand how to create various data structures such as structs and enums; also traits.
  • Master Rust’s explicit take on the concept of lifetime with ownership, borrowing, lifetime specifiers, lifetime elision.
  • Learn how to safely share data around your (possibly multithreaded) application with Rc, Arc and Mutex.
  • Use Rust’s package managent using Cargo.
  • Learn about other useful topics: documentation, conditional compilation, testing.

This course, like all my other courses, will be supplemented with additional lectures based on participants’ requests.

Fixed Income Analytics: Pricing and Risk Management

The fixed income markets are central to the modern economy, and are arguably the most central and influential markets in the entire financial system. Indeed, interest rates, the most important prices in the entire economy, are set in the bond and money markets. A famous and colorful lament from then President-Elect Bill Clinton in 1993 lead his aide, James Carville, to declare that in his next life he wanted to come back as something really influential: the bond market.

This course, which assumes no knowledge of finance, and with minimal math requirements (business school calculus is more than enough) will be useful for financial professionals who wish to go to the next level with their understanding of the fixed income markets, and for quantitative professionals from other fields who are interested in learning something about finance. If you’re looking for one segment of the capital markets to start an exploration of finance, you can’t go wrong with the fixed income markets.

What you’ll learn

  • The general structure of global bond and money markets
  • Pricing, yield, accrued interest and day count conventions
  • Arbitrage and the time value of money as the core principles underlying security valuation, and how to use them to price fixed income securities
  • The term structure of interest rates, its applications, and the accepted theories of the forces that shape it
  • The classic risk measures of fixed income securities: duration, DV01, and convexity, and their applications to risk management
  • Trading applications: riding the yield curve and rate level trading
  • Immunization and applications in asset/liability management