We may earn an affiliate commission when you visit our partners.
Dick Wall

After taking Scala Applied part 1, you will be able to:

Read more

After taking Scala Applied part 1, you will be able to:

  • Use the REPL (the Scala Interactive Shell) for experimentation and fun

  • Understand the basics of Scala syntax, including val, var, def, if, while, try, for and more

  • Create classes, objects and instances

  • Define and use function literals and higher order functions

  • Understand the basics of Scala's type inference and how to use it

  • Write custom control structures to augment those built into the language

  • Start down the path of a more functional style of programming

  • Be ready for Part 2 of Stairway to Scala Applied, which will dig into some of the differences between Scala and other languages

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.

Enroll now

What's inside

Syllabus

Understand the goals of Part 1 of this course, and have the coding exercises downloaded

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 when the time comes.

Thanks and enjoy the course. This is only part one of three, the second and third parts go further into using Scala on a daily basis for your programming.

Read more
Download Slides and Exercises
Use the Scala REPL, understand some basic language features
01 - Introduction
02 - Module Agenda
07 - Expressions and Statements
03 - The Scala REPL
04 - Using SBT
05 - First time in the REPL
06 - Vals and Vars
07 - Hiding a val with another val
08 - Scala and Types
09 - Defining a Method
10 - If Expressions
11 - If Expressions continued
12 - Functional Style and try...catch...finally
13 - Simple Loops
14 - Do...While
15 - Scala Scripts

Let's see how you did on your first steps in Scala module.

16 - Module 1 exercises
Use Scala worksheets, understand method parameters and return types, the difference between expressions and statements, use tuples, how Scala re-writes code, collection basics, extension methods
03 - Scala projects in IntelliJ
04 - IntelliJ Worksheets
05 - Method Parameters and Return Types
06 - Methods with no return types
08 - Assignments and Unit
09 - Tuples
10 - Tuples continued
11 - Re-writing Rules: Infix
12 - Re-writing Rules: Apply
13 - Re-writing Rules: Update
14 - General Notes on Re-writing
15 - Collections Intro
16 - List Initialization and Cons
17 - Sequences
18 - Sets
19 - Mutable vs Immutable
20 - Maps
21 - The -> Extension Method
22 - Simple Map Iteration
23 - More Functional Style
24 - Opening and Reading a File

Impress us with your retention of the Next Steps material!

25 - Module 2 Exercises (and how to run them in IntelliJ)
Define classes and objects, run applications, use fields, constructor parameters and parametric fields, check preconditions, use primary and auxiliary constructors, define companion objects, private
03 - Define a Scala Class
04 - Constructors and Parameters
05 - Parameters, Fields and Parametric Fields
06 - A Rational Class
07 - Checking Preconditions
08 - Referencing Self
09 - Infix Style and Symbolic Methods
10 - Symbolic Methods continued
11 - Auxiliary Constructors
12 - Companion Objects
13 - Companions and private
14 - Method Overloading
15 - Implicit Conversion
16 - Implicit Rules
Classes and Objects Quiz
17 - Module 3 exercises
Understand all of the built-in Scala control structures, use for expressions, pattern match using match expressions, use guards, interpolate strings
03 - Expressions and Statements Recap
04 - Unit and Side Effects
05 - Alternatives to Returning Unit
06 - Return this instead of Unit
07 - If, ternary and types
08 - val and var, IDE tricks
09 - Try...catch...finally and type inference
10 - While loop statement, and @tailrec
11 - For Statements and Expressions
12 - For...Yield
13 - The Four Gs of For
14 - For - more than just loops
15 - Match expressions
16 - Match Guards
17 - More Matching
18 - String Interpolation
Built In Control Structures
19 - Module 4 Exercises
Use nested methods, define and pass function literals, understand how functions work, higher order functions, partially apply functions, use closures, define methods with var args, use default params
03 - Private Methods
04 - Nested Methods
05 - Scoping of Nested Methods
06 - Function Literals
07 - Passing Function Literals
08 - How Functions Work
09 - Other Methods on Function
10 - Higher Order Functions
11 - Writing a Higher Order Function

Save this course

Save Scala Applied, Part 1 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Scala Applied, Part 1 with these activities:
Review Java Fundamentals
Solidify your understanding of Java fundamentals, as Scala builds upon many of the same concepts. Refreshing your knowledge will make the transition to Scala smoother.
Show steps
  • Review basic syntax and data types in Java.
  • Practice writing simple Java programs.
  • Study object-oriented programming principles in Java.
Review 'Programming in Scala'
Supplement your learning with a comprehensive guide to the Scala language. This book provides a deeper understanding of the concepts covered in the course.
View Programming in Scala on Amazon
Show steps
  • Obtain a copy of 'Programming in Scala'.
  • Read the chapters relevant to the course topics.
  • Work through the examples and exercises in the book.
REPL Exercises
Practice using the Scala REPL to experiment with different language features. This will help you become more comfortable with the syntax and quickly test out ideas.
Show steps
  • Start the Scala REPL.
  • Experiment with variable declarations (val and var).
  • Define simple functions and call them.
  • Try out different control structures (if, while, for).
Four other activities
Expand to see all activities and additional details
Show all seven activities
Review 'Scala Cookbook'
Explore practical solutions to common Scala programming problems. This cookbook provides a wealth of code examples and explanations.
Show steps
  • Obtain a copy of 'Scala Cookbook'.
  • Browse the table of contents to find relevant recipes.
  • Study the code examples and explanations.
Pair Programming Session
Collaborate with a classmate on coding exercises. This will help you learn from each other and improve your problem-solving skills.
Show steps
  • Find a classmate to pair program with.
  • Choose a coding exercise from the course.
  • Take turns writing code and reviewing each other's work.
  • Discuss different approaches to solving the problem.
Blog Post: Scala vs. Java
Write a blog post comparing and contrasting Scala with Java. This will help you solidify your understanding of the differences between the two languages and their respective strengths and weaknesses.
Show steps
  • Research the key differences between Scala and Java.
  • Outline the structure of your blog post.
  • Write the blog post, providing clear examples.
  • Edit and proofread your post.
Simple Calculator in Scala
Build a simple calculator application in Scala to apply the concepts learned in the course. This project will reinforce your understanding of classes, objects, methods, and control structures.
Show steps
  • Define a class for calculator operations.
  • Implement methods for addition, subtraction, multiplication, and division.
  • Create a main method to take user input and perform calculations.
  • Add error handling for invalid input.

Career center

Learners who complete Scala Applied, Part 1 will develop knowledge and skills that may be useful to these careers:
Software Engineer
A software engineer designs, develops, tests, and maintains software applications. This Scala course helps build a foundation in Scala syntax, classes, objects, and functional programming concepts. Software engineers use these skills to write efficient, maintainable Scala code. The course's practical, hands-on coding exercises, built around test-driven development, prove invaluable for success in software engineering projects. By learning to use Scala productively, a software engineer can implement and understand key language libraries, like Actors and Collections.
Data Engineer
A data engineer designs, builds, and maintains data pipelines and infrastructure that transform data into a usable format for analysis. This Scala course helps build a foundation in the language, which is often used for big data processing frameworks such as Apache Spark. Knowing Scala syntax equips data engineers to write efficient data transformation jobs and custom control structures. Hands-on exercises enable them to use Scala effectively for real-world data engineering tasks. It is an acceleration of the Scala learning curve.
Backend Developer
A backend developer is responsible for server-side logic, databases, and application programming interfaces that power web and mobile applications. This Scala course helps build a foundation in Scala, offering practical, hands-on coding exercises that translate directly to backend development tasks. Understanding Scala syntax, classes, and objects helps developers build robust, scalable backend systems. The course delves into functional programming concepts, which are increasingly relevant in modern backend architectures. It helps accelerate your Scala learning curve.
Application Developer
An application developer creates software applications for various platforms, including desktop, web, and mobile. This Scala course helps build a foundation in Scala, which can be used to develop efficient and scalable applications. Understanding Scala syntax, classes, and objects enables application developers to write clean, maintainable code. The course's coverage of function literals and higher-order functions helps craft sophisticated application logic. You will be ready to use Scala productively.
Machine Learning Engineer
A machine learning engineer develops and deploys machine learning models. This Scala course helps build a foundation for machine learning engineers who want to use Scala for building and deploying scalable machine learning systems. Scala is frequently used with Apache Spark. Understanding Scala helps you implement custom machine learning algorithms and data preprocessing pipelines. This can accelerate your learning curve and enables you to use Scala productively.
Technical Lead
A technical lead guides a team of developers, providing technical expertise and direction on software projects. This Scala course helps build a foundation in Scala, which can be beneficial for technical leads who oversee Scala-based projects. A technical lead understands Scala syntax, classes, and objects and is able to guide team members in writing clean, maintainable code. The course accelerates your Scala learning curve.
Data Scientist
A data scientist analyzes data to extract meaningful insights and build predictive models. This Scala course helps build a foundation for data scientists who want to leverage Scala for data processing and analysis tasks. Scala is often used with big data tools like Apache Spark. Knowing Scala syntax, classes, and objects may be helpful as it allows data scientists to write custom data transformation functions and analysis pipelines. The course accelerates your Scala learning curve.
Software Architect
A software architect designs the high-level structure of software systems. A software architect uses Scala to define custom control structures and augment those already built into the language. Understanding Scala's type inference and functional programming concepts help ensure robustness and maintainability. This Scala course provides a balanced and thorough introduction to the whole language and its concepts, including libraries like Actors and Collections.
Full-Stack Developer
A full stack developer works on both the front end and back end of web applications. This Scala course helps build a foundation for full stack developers who want to use Scala for backend development. A full stack developer understands Scala syntax, classes, and objects and is able to write server-side logic and APIs. This course accelerates your Scala learning curve, and enables you to use Scala productively, making it a valuable asset for building scalable web applications.
Systems Architect
A systems architect designs and oversees the implementation of complex software systems. This Scala course helps build a foundation in understanding the Scala language and its underlying concepts, which may be useful when designing systems that incorporate Scala-based components. The ability to define custom control structures helps architects tailor systems to specific performance requirements. Understanding Scala's type inference helps ensure the robustness and maintainability of the overall system architecture. This course provides a balanced and thorough introduction to the whole language and its concepts.
Data Analyst
A data analyst analyzes data to identify trends, patterns, and insights that help organizations make better decisions. This Scala course may be useful for data analysts who want to leverage Scala for data manipulation and analysis tasks. Scala is often used with big data tools like Apache Spark, and understanding Scala syntax enables data analysts to write custom data transformation and analysis scripts. In particular, this course gives learners a more functional style of programming.
Cloud Engineer
A cloud engineer designs, implements, and manages cloud computing infrastructure and services. This Scala course may be useful for cloud engineers who work with Scala-based cloud applications and services. A cloud engineer understands Scala syntax and is able to write custom control structures to automate cloud management tasks. The course can accelerate your Scala learning curve, and it enables you to implement cloud tasks more quickly and efficiently.
DevOps Engineer
A DevOps engineer automates and streamlines software development and deployment processes. This Scala course may be useful for DevOps engineers because it provides a foundation in Scala. Scala is used in some configuration management and automation tools. Understanding Scala syntax and being able to write custom control structures may help DevOps engineers customize and extend these tools. The use of implicit conversions is also an element of DevOps work when automating software processes.
Quality Assurance Engineer
A quality assurance engineer tests software to ensure it meets quality standards and functional requirements. This Scala course may be useful because it provides a foundation in Scala, which can be used to write automated tests and test frameworks. Understanding Scala syntax and control structures helps quality assurance engineers create comprehensive and effective test suites. In particular, the fact that the exercises are built around test driven development examples is of particular help.
Database Administrator
A database administrator manages and maintains databases, ensuring their performance, security, and availability. This Scala course may be useful because it provides a foundation in Scala, which can be used to develop tools and scripts for database management tasks. Understanding Scala syntax and being able to write custom control structures can assist in automating database administration tasks. This course provides a balanced and thorough introduction to the whole language and its concepts.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Scala Applied, Part 1.
Comprehensive guide to the Scala language, written by the creator of Scala, Martin Odersky, and others. It covers all aspects of the language in detail, from basic syntax to advanced features. It is commonly used as a textbook in academic institutions and by industry professionals. This book provides additional depth to the course material and useful reference tool.
Offers practical solutions to common programming problems in Scala. It provides a wealth of code examples and explanations that can help you quickly learn how to use Scala in real-world projects. It is more valuable as additional reading than as a current reference. The book adds breadth to the existing course by covering a wide range of practical topics.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser