The Scala Programming Language Training in Bahrain

  • Delivery Method: Online Instructor-Led / Classroom Based / Onsite
  • Participation Model: Public Training / Private / In-House Training
  • Duration: 5 Days
  • Price: Please contact for booking options
  • Upcoming Date:
  • UK & Türkiye Based Global Training Provider

The Scala Programming Language was invented in 2004 in an attempt to bring functional programming to the jvm, and the java development community. It has risen to prominence in recent years as the de-facto language to compliment and replace java in existing teams, and as an advanced and capable language on greenfield projects.

Scala combines advanced techniques long established in the functional programming community with the best practices of object-orientation, allowing developers to pick and chose a style and an approach that suits their team and their problems.

By the end of this course delegates will have a clear understanding of object orientation and functional programming, and in particular, all the major features of scala which enable these styles of programming to be used and combined.

The course is divided in to 15 modules (listed in the overview) delivered over five days with an attention to an interactive Q&A-style approach to teaching and exercise practice.


Prerequisites

Delegates must have prior programming experience in java or a related object-oriented language.

Training Outline

Day 1

1 Introduction 

  • Why scala?
  • Libraries
  • Static typing
  • Compositional syntax
  • OO
  • Functional
  • Powerful
  • Paradigms
  • OO
  • Functional
  • Running scala
  • Anatomy of scala programs
  • Try the repl
  • Scalac
  • Scala interpreter
  • Sbt

1 Fundamentals

  • Language
  • Objects
  • Calling methods
  • Operators as methods
  • Values and variables
  • Types
  • Basic types
  • Boolean
  • Numeric types
  • Unit
  • Strings
  • String methods
  • Introduction to collections
  • Type arguments
  • Tuples, Lists, Maps

1 Flow

  • Branching, matching & selecting
  • Conditionals
  • Intro to pattern matching
  • Destructuring
  • For comprehensions
  • Yield vs Unit
  • Comprehensions over lists
  • Comprehensions over maps
  • Comprehensions over ranges
  • Option
  • Multiple extraction
  • Guards
  • Ranges
  • Let expressions
  • While loops

Day 2

2 Methods

  • Code blocks
  • Methods
  • Method bodies
  • Returning unit
  • Passing arguments
  • Variadics
  • Def vs val
  • Lazy vals
  • Lazy arguments
  • Recursion

2 Functions

  • What Is Functional Programming?
  • Pure Functions
  • Functions
  • The Function Type
  • ‘Function’ vs Method
  • Higher Order Functions
  • Functions as Data
  • Currying
  • Aside: Type Aliases

2 Collections

  • Review: types
  • Collections heirachy
  • Creating collections
  • Range
  • Array & array buffer
  • List & list buffer
  • Vector
  • Maps
  • Sets
  • Empty
  • Idioms
  • Pattern matching
  • For comprehnsions review
  • Zipping
  • Traits

Day 3

3 Transformation

  • Streams
  • Combinators
  • .map & .flatMap
  • Folding & Reducing
  • .exists and .forall
  • Option
  • For comprehensions
  • Foreach & Flatmap
  • Pattern matching
  • Review
  • Casting
  • Sequences
  • For-yield-match
  • Regex
  • Guards
  • Option

3 OO

  • Classes
  • Reading class definitions
  • Defining classes
  • Constructors
  • Properties
  • Method overloading
  • Java inspection of scala classes
  • Getters and setters
  • Operator methods
  • Objects
  • The object keyword
  • Companions
  • The mechanism of pattern matching
  • Case classes
  • Pattern matching with case classes
  • Aside: case objects

3 Inheritance

  • Inheritance: a type relation
  • Inheritance: class relationship
  • Overriding methods
  • Overriding tostring
  • Calling the parent method
  • Abstracts
  • Traits
  • Trait inheritance
  • Composing objects with traits
  • The meaning of super
  • Traits as mixins
  • Self types
  • Cake pattern
  • Aside: type members

Day 4

4 Design

  • Imports
  • Package objects
  • Algebra
  • Algebraic data types: defining
  • Algebraic data types
  • Example: document store
  • Tuples types
  • Generics
  • Type arguments
  • Variance
  • Special types
  • Option
  • Example: user data
  • Bad: exceptions
  • Try
  • Either

4 SBTest

  • Simple build tool
  • Build files
  • Creating a project
  • Dependencies
  • Project structure
  • Running tests
  • Sbt task runner
  • Testing
  • Type systems as tests
  • Using type systems
  • Assertions
  • Scala test
  • Flatspec
  • Featurespec
  • Matchers

4 Implicits

  • Implicit conversions
  • Implicit conversions: def
  • Implicit conversions: implicit classes
  • Implicit parameters
  • Contexts
  • Scoping
  • Type classes
  • Typeclasses with implicit classes
  • Without typeclasses
  • Typeclasses: generalizing
  • Typeclasses: implicit objects
  • Typeclasses: multiple instances

Day 5

5 HigherKinds

  • Review: Polymorphism
  • Review: Typeclasseses: Monoid
  • Scalaz
  • Sbt for Scalaz
  • Simple Typeclass: Equal
  • Simple Typeclass: Order
  • Simple Typeclass: Implementing Equal
  • Kinds
  • Higher-kinded Types: Functor
  • Generalizing Functor
  • Higher-kinded Types: Applicative
  • Monads

5 Appendix

  • Concurrency
  • Libraries



Why Choose Us

Experience The Scala Programming Language in Bahrain through Bilginç IT Academy's live and interactive virtual classroom environment. Join a Public course as an individual delegate or arrange a dedicated Private / In-house online training program exclusively for your organization.

  • Delivery Method: Online Instructor-Led
  • Participation Model: Public / Private (In-house)
  • Live and Interactive Training: Connect with your instructor in real time and actively participate through discussions, Q&A sessions, practical exercises, and group activities.
  • Flexible Participation: Join the training from your home, office, or any location with a suitable internet connection.
  • Expert Trainer Network: Learn from experienced trainers with strong industry backgrounds and practical field expertise.
  • Over 30 Years of Training Expertise: Benefit from Bilginç IT Academy's professional training experience since 1995.
  • Worldwide Access: Join our live virtual classrooms from Bahrain or anywhere else in the world, or arrange a dedicated online training program for your organization.

Experience The Scala Programming Language through face-to-face Classroom Based training in Bahrain. Training can be delivered as a Public course open to individual delegates or as a dedicated Private / In-house class for your organization.

  • Delivery Method: Classroom Based
  • Participation Model: Public / Private (In-house)
  • Face-to-Face Learning: Interact directly with your instructor and fellow delegates in an engaging classroom environment.
  • Experienced Trainers: Learn from specialists with extensive industry experience and practical real-world knowledge.
  • Professional Training Environment: Attend training in comfortable, well-equipped classrooms designed to support effective learning.
  • Practical Learning: Depending on the course, reinforce your knowledge through hands-on exercises, scenarios, case studies, and instructor-led activities.

Arrange The Scala Programming Language in Bahrain as a dedicated Onsite training program for your organization. Bilginç IT Academy trainers can deliver the training at your office or another location of your choice, with the program planned around your team's requirements and business objectives.

  • Delivery Method: Onsite
  • Participation Model: Private (In-house)
  • Training at Your Preferred Location: Organize the training at your company's office or another location selected by your organization.
  • Tailored Course Content: Adapt the training program to your projects, team structure, existing skill levels, and specific business requirements.
  • Team-Focused Learning: Develop your team around a shared knowledge base while strengthening internal collaboration and knowledge transfer.
  • Flexible Scheduling: Plan the training dates, location, and program according to your organization's operational requirements.
  • Worldwide Onsite Delivery: Arrange the training in Bahrain or at another preferred location worldwide. Bilginç IT Academy trainers can travel to your selected location to deliver the dedicated training program.


Contact us for more detail about our trainings and for all other enquiries!

The Scala Programming Language Training Course in Bahrain Schedule

Join our public courses in our Bahrain facilities. Private class trainings will be organized at the location of your preference, according to your schedule.

We can organize this training at your preferred date and location.
04 October 2026 (5 Days)
Manama
14 October 2026 (5 Days)
Manama
22 October 2026 (5 Days)
Manama
01 November 2026 (5 Days)
Manama
04 November 2026 (5 Days)
Manama
14 November 2026 (5 Days)
Manama
15 November 2026 (5 Days)
Manama
18 November 2026 (5 Days)
Manama

Bahrain has positioned itself as the pioneering fintech and cloud capital of the Middle East, with Manama hosting the region’s first dedicated fintech hub, Bahrain FinTech Bay. As the first country in the region to adopt a 'Cloud First' policy, Bahrain has attracted global giants like AWS to establish massive data center infrastructures on its shores. The University of Bahrain and various national initiatives are focused on cultivating a workforce that is highly proficient in blockchain, open banking, and cybersecurity. Our IT education services in Bahrain are tailored to this innovation-driven market, offering advanced curriculum in Cloud Engineering, DevOps, and Information Security. We empower professionals in the Kingdom to take the lead in a digital-first economy that consistently sets the benchmark for regulatory technology and financial innovation across the Gulf.

By using this website you agree to let us use cookies. For further information about our use of cookies, check out our Cookie Policy.