We may earn an affiliate commission when you visit our partners.
Infinite Skills

This Scala training course from Infinite Skills teaches you everything you need to know about the Scala programming language. This course is designed for users that already have some programming experience.

Read more

This Scala training course from Infinite Skills teaches you everything you need to know about the Scala programming language. This course is designed for users that already have some programming experience.

You will start by learning the language basics of Scala, including sequences, recursion, and nesting functions. The course will then teach you about the object-oriented aspects of Scala, linearization of trait methods, and building and writing with XML. This video tutorial also covers text processing, parallelism and actors, and libraries for unit testing. Once you have completed this computer based training course, you will have developed a solid working knowledge of the Scala programming language, and be able to start your own Scala-based project. Working files are included, allowing you to follow along with the author throughout the lessons.

Enroll now

What's inside

Syllabus

Introduction
Important - Download These First - Working Files
0101 Overview And About The Author
0102 Tools - Eclipse With Scala Plug-In
Read more
0103 How To Access Your Working Files
Language Basics
0201 Nature Of Scala And Our First Worksheet
0202 Overall Type Hierarchy
0203 Memory Model, No Primitives, Val Versus Var And Tuples
0204 If Expressions
0205 Match Expressions
0206 Recursion, Tail Recursion, And Nesting Functions - Part 1
0207 Recursion, Tail Recursion, And Nesting Functions - Part 2
0208 Recursion, Tail Recursion, And Nesting Functions - Part 3
0209 Collections Overview
0210 Sequences - Array, List, Vector, And Buffer - Part 1
0211 Sequences - Array, List, Vector, And Buffer - Part 2
0212 Sequences - Array, List, Vector, And Buffer - Part 3
0213 Looking At The API - Implicit Conversions
0214 Significant Regular Methods - Part 1
0215 Significant Regular Methods - Part 2
0216 Significant Regular Methods - Part 3
0217 Higher-Order Methods And Lambda Expressions - Part 1
0218 Higher-Order Methods And Lambda Expressions - Part 2
0219 Find And Option
0220 Pattern Matching And Case Classes
0221 Iterators And Scala - Part 1
0222 Iterators And Scala - Part 2
0223 Sets And Maps
0224 Loops - While, Do-While, And Basics Of For
0225 For Comprehensions
0226 Partial Functions
0227 Syntactic Sugar
Object-Oriented Scala And Our MUD Project
0301 Building An Application
0302 Imperative Text Adventure - Part 1
0303 Imperative Text Adventure - Part 2
0304 Functional Solution
0305 Special Methods And Names - Part 1
0306 Special Methods And Names - Part 2
0307 Implicit Conversions And Arguments
0308 Linearization Of Trait Methods
0309 Self Types
Unit Testing
0401 Using JUnit
0402 Scala Test
XML
0501 Reading And Parsing XML
0502 Building And Writing XML
Text Processing
0601 Regular Expressions
0602 Regular Expressions As Patterns
0603 Parser Combinators - Part 1
0604 Parser Combinators - Part 2
0605 Text Adventure Parser
Parallelism And Actors
0701 Parallelism In Scala
0702 Actor Parallelism
0703 Simple Akka Examples - Part 1
0704 Simple Akka Examples - Part 2
0705 Ask Pattern And Futures
0706 The Actor Hierarchy
0707 The Actor Lifecycle
0708 Routers
0709 Actor Based MUD
Conclusion
0801 Wrap-Up

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers object-oriented aspects of Scala, including linearization of trait methods, which is essential for building robust and maintainable applications
Explores parallelism and actors, enabling learners to develop concurrent and distributed systems using Scala's powerful concurrency features
Includes libraries for unit testing, which helps learners write reliable and maintainable code by applying testing methodologies
Requires familiarity with programming concepts, so learners without prior experience may find the pace and content challenging
Uses Eclipse with Scala plug-in, so learners will need to install and configure this IDE, which may require some initial setup

Save this course

Save Beginning Scala Programming to your list so you can find it easily later:
Save

Reviews summary

Beginner scala with object-oriented focus

According to students, this course provides a largely positive introduction to Scala programming, especially for those with prior coding experience. Learners praise the instructor's clarity and the course's coverage of object-oriented concepts and some advanced topics like basic Akka actors. However, some reviewers found the pace fast and noted a potential lack of challenging exercises. There are also mentions that some covered libraries or tools might be slightly outdated.
Covers core Scala & key topics.
"Good coverage of Scala's object-oriented features and functional basics."
"Introduces important concepts like pattern matching, collections, and traits."
"Includes useful sections on Akka actors and basic XML handling."
Instructor explains concepts clearly.
"The instructor explains the concepts very well and provides good examples."
"Really appreciate the clarity of the explanations throughout the lectures."
"Complex ideas were broken down effectively, making them easy to grasp."
Some sections potentially outdated.
"Noticed some of the libraries or tools used seemed a bit older versions."
"While core Scala is covered, some ecosystem parts might not be current."
"Might need supplementary material for the latest practices in certain areas."
Could use more challenging problems.
"Wish there were more challenging exercises to practice the concepts."
"The examples are helpful, but more varied assignments would solidify learning."
"Practice problems were sometimes too simple after the lecture material."
Assumes prior coding; pace can be fast.
"Definitely need some prior programming experience, it's not for absolute beginners."
"Found the pace a bit too fast in places, especially when new topics were introduced."
"While it says 'Beginning', it assumes comfort with programming fundamentals before diving into Scala specifics."

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 Beginning Scala Programming with these activities:
Review Object-Oriented Programming Concepts
Solidify your understanding of object-oriented programming principles, as Scala heavily utilizes these concepts.
Show steps
  • Review the core principles of OOP: encapsulation, inheritance, and polymorphism.
  • Practice implementing classes and objects in a language you are familiar with.
  • Consider how these concepts might translate to Scala's syntax and features.
Read 'Programming in Scala'
Supplement your learning with a comprehensive guide to the Scala language.
View Programming in Scala on Amazon
Show steps
  • Obtain a copy of 'Programming in Scala'.
  • Read through the chapters relevant to the course syllabus.
  • Work through the examples and exercises provided in the book.
Practice with Scala Collections API
Gain proficiency with Scala's collections API, which is essential for data manipulation and processing.
Show steps
  • Explore the different types of collections available in Scala (Lists, Arrays, Sets, Maps).
  • Implement common operations like filtering, mapping, and reducing on these collections.
  • Experiment with different collection types to understand their performance characteristics.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'Scala Cookbook'
Explore practical solutions to common Scala programming problems.
Show steps
  • Obtain a copy of 'Scala Cookbook'.
  • Browse the table of contents to identify recipes relevant to your interests.
  • Work through the recipes and adapt them to your own projects.
Create a Cheat Sheet for Scala Syntax
Reinforce your understanding of Scala syntax by creating a cheat sheet that summarizes key language features.
Show steps
  • Identify the most important syntax elements in Scala (e.g., variable declarations, function definitions, control structures).
  • Organize the syntax elements into a clear and concise cheat sheet format.
  • Include examples of how to use each syntax element.
Build a Simple Command-Line Application
Apply your Scala knowledge by building a command-line application that interacts with the user and performs a specific task.
Show steps
  • Define the scope and functionality of your command-line application.
  • Design the user interface and input/output mechanisms.
  • Implement the core logic of the application using Scala's features.
  • Test and debug your application thoroughly.
Contribute to a Scala Open Source Project
Deepen your understanding of Scala by contributing to an open-source project and collaborating with other developers.
Show steps
  • Find a Scala open-source project that aligns with your interests and skill level.
  • Familiarize yourself with the project's codebase and contribution guidelines.
  • Identify a bug or feature that you can contribute to.
  • Submit a pull request with your changes.

Career center

Learners who complete Beginning Scala Programming will develop knowledge and skills that may be useful to these careers:
Software Engineer
A Software Engineer designs, develops, and tests software applications. This Beginning Scala Programming course helps build a foundation in Scala, a language often used in backend development and Big Data processing. By covering language basics like sequences, recursion, and object-oriented aspects, the course provides the fundamental knowledge needed to write Scala code. You may even be involved with unit testing, parallelism, and actors. In particular, the sections on collections, higher-order methods, and pattern matching will be useful in writing concise and efficient code, which is a valuable skill for any Software Engineer.
Backend Developer
A Backend Developer is responsible for the server-side logic and databases that power web and mobile applications. This Beginning Scala Programming course helps develop the skills required to build robust and scalable backend systems using Scala. The course covers essential topics such as object-oriented aspects, text processing, parallelism, and actors. The section on building an application is particularly relevant, as it provides practical experience. As a Backend Developer, the knowledge of Scala actor systems and concurrency helps in designing efficient and responsive server applications.
Big Data Engineer
A Big Data Engineer designs, builds, and maintains systems that process large volumes of data. This Beginning Scala Programming course helps build the foundational Scala skills necessary for working with big data technologies like Apache Spark and Apache Kafka, which are often written in Scala. The course covers key aspects such as collections, higher-order methods, parallelism, and actors, all crucial for writing efficient and scalable data processing applications. As a Big Data Engineer, this training in Scala helps create robust data pipelines.
Financial Software Developer
A Financial Software Developer creates software solutions for the financial industry. This Beginning Scala Programming course helps develop the necessary skills, as Scala is used in building high-performance and reliable financial systems. The course covers essential Scala concepts such as language basics, collections, and parallelism, which are critical for processing financial data and transactions efficiently. The section on unit testing is particularly relevant for ensuring the correctness and stability of financial applications. A Financial Software Developer can leverage Scala to create robust and scalable financial solutions.
Data Engineer
A Data Engineer builds and maintains data pipelines and infrastructure for data storage and processing. This Beginning Scala Programming course aids in this effort, as Scala is commonly used in data engineering for building scalable and efficient data processing systems. The course covers essential concepts such as collections, higher-order methods, parallelism, and actors, which are critical for working with big data technologies like Apache Spark. The understanding of functional programming principles gained from this Scala course allows a Data Engineer to develop robust and maintainable data pipelines.
Cloud Engineer
A Cloud Engineer designs, builds, and manages cloud-based infrastructure and services. This Beginning Scala Programming course can enable you to work with cloud technologies that are built or configured using Scala. This course teaches essential Scala concepts like object-oriented programming, concurrency, and building applications. A Cloud Engineer can use Scala to automate cloud resource provisioning, configuration, and management, leading to more efficient and scalable cloud solutions.
DevOps Engineer
A DevOps Engineer automates and streamlines software development and deployment processes. This Beginning Scala Programming course may be useful, as Scala can be used for writing scripting and automation tools within a DevOps environment. A strong understanding of the language basics of Scala, including sequences, recursion, and nesting functions can help in writing effective scripts. The course section on parallelism and actors will be especially useful when building concurrent and fault-tolerant DevOps tools. The material on unit testing is also relevant for ensuring the reliability of automation scripts.
Data Scientist
A Data Scientist analyzes and interprets complex data to identify trends and patterns. This Beginning Scala Programming course may be useful, as Scala is frequently used in data processing frameworks like Apache Spark. The course's coverage of collections, higher-order methods, and parallelism directly support the skills needed to manipulate and analyze large datasets. Moreover, understanding recursion and functional programming, as taught in this course, helps to write efficient data processing pipelines. A Data Scientist can use the knowledge gained to implement complex algorithms and models on large-scale data.
Software Architect
A Software Architect designs the overall structure and components of software systems. This Beginning Scala Programming course may be useful, as understanding Scala's architecture and capabilities can inform architectural decisions, especially in systems that use Scala-based frameworks. The course helps familiarize you with the nuances of object-oriented design and concurrency models in Scala, which are essential for designing scalable and maintainable systems. In the role of Software Architect, grasping the principles of actor systems and parallelism can aid in creating systems that handle high loads and complex interactions efficiently.
Quality Assurance Engineer
A Quality Assurance Engineer tests software to ensure it meets quality standards and performs as expected. This Beginning Scala Programming course may be useful in that it covers unit testing in Scala, which is essential for writing effective test suites. The course demonstrates how to use testing frameworks to verify the correctness of Scala code. As a Quality Assurance Engineer, the knowledge gained from this course enables one to contribute to building robust and reliable software by writing comprehensive unit tests.
Mobile Application Developer
A Mobile Application Developer creates applications for mobile devices. This Beginning Scala Programming course may be useful, as Scala can be used in cross-platform mobile development through frameworks like Scala Native. Understanding the language basics, object-oriented programming, and concurrency helps build robust and efficient mobile applications. The course's coverage of unit testing is valuable for ensuring the quality and reliability of mobile apps. A Mobile Application Developer can leverage Scala and the concepts from the course to create high-performance mobile solutions.
Game Developer
A Game Developer designs and develops video games. This Beginning Scala Programming course may be useful, as Scala can be used in game development, particularly for backend systems or specialized game engines. Understanding Scala's object-oriented features, text processing, and parallelism can contribute to building game logic and handling concurrent game events. The course's section on actors helps manage game entities and interactions in a concurrent environment. A Game Developer can use Scala to implement efficient and scalable game systems.
Compiler Engineer
A Compiler Engineer works on the design and implementation of compilers, interpreters, and related tools. This Beginning Scala Programming course may be useful, as understanding a language's semantics and implementation details, as covered in the course with topics such as language basics of Scala, including sequences, recursion, and nesting functions, will provide a basis for compiler development. The course's focus on language features and constructs provides a foundation for understanding how compilers process code. A Compiler Engineer will find the knowledge gained helpful in creating efficient and reliable compilers.
Database Administrator
A Database Administrator manages and maintains databases to ensure their availability and performance. This Beginning Scala Programming course may be useful because Scala can be used to develop tools for database management and automation. The course's coverage of language basics and collections can assist in writing scripts for database administration tasks. Additionally, understanding concurrency and parallelism, as taught in the course, aids in building efficient database management tools. A Database Administrator will find this knowledge useful to streamline database operations.
Academic Researcher
An Academic Researcher conducts research in computer science or related fields, often at a university or research institution; this often requires an advanced degree. This Beginning Scala Programming course may be useful, as Scala is used in certain areas of computer science research, such as functional programming and distributed systems. The course provides a foundation in Scala's language features, which helps to implement and test research ideas. The sections on parallelism and actors, as well as functional programming aspects like recursion, are particularly relevant to research in concurrent and distributed computing. An Academic Researcher can use Scala to prototype and evaluate new algorithms and systems.

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 Beginning Scala Programming .
This book, written by the creator of Scala, Martin Odersky, comprehensive guide to the language. It covers everything from the basics to advanced topics like actors and concurrency. It valuable resource for understanding the design principles behind Scala and its various features. is commonly used as a textbook in university courses.
The Scala Cookbook practical guide that provides solutions to common programming problems in Scala. It covers a wide range of topics, including collections, concurrency, and web development. is particularly useful for learning how to apply Scala's features to real-world scenarios. It serves as a useful reference tool for Scala developers.

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