Intermediate Ruby Programming & OOP in East Africa

Duration
4 weeks
Investment
UGX 450,000
Teaching
Live online
Program Introduction
Strengthen your Ruby programming skills with an intermediate, language-focused course for developers in Uganda and across East Africa. You will move beyond standalone scripts and learn how Ruby objects collaborate to represent customers, products, payments, stock, records and other real business concepts. The course covers classes, encapsulation, composition, inheritance, polymorphism, modules, mixins, blocks, Procs, lambdas and exception handling. Practical exercises show you how to turn changing requirements into organised code that is easier to understand, test and maintain. Your final command-line application will model an East African business or community workflow using object-oriented Ruby. The focus remains on the Ruby language; Android development and Ruby on Rails are outside the course scope.
Key Features & Benefits
• Intermediate Ruby training centred on object-oriented programming. • Practical domain modelling for Ugandan and East African business scenarios. • Clear guidance on composition, inheritance, modules and reusable code. • Hands-on work with Ruby-specific features such as mixins, blocks, Procs and lambdas. • Defensive programming and exception-handling practice. • Refactoring exercises that improve readability and maintainability. • A multi-class command-line capstone suitable for a developer portfolio. • No dependency on Android development or Ruby on Rails.
Real-World Applications
Learners can use the skills from this course to:
• Model SACCO members, accounts, deposits, withdrawals and transaction rules. • Build inventory logic for shops, pharmacies, farms or distributors. • Organise student, patient or community-program records as collaborating objects. • Create reusable pricing, tax, fee or discount rules for regional businesses. • Refactor growing Ruby scripts into maintainable classes and modules. • Add reliable validation and error handling to command-line applications. • Read and contribute to object-oriented Ruby codebases. • Prepare for professional software engineering projects and further Ruby specialisation.
Course outline and learning expectations
This is a tutor-led course. The outline shows what your tutor will cover; teaching materials and examinations are provided directly to enrolled students.
Live online
English (Uganda)
Intermediate
Lower Secondary · Upper Secondary · University · General Public
What you will learn
- By the end of this intermediate Ruby programming course, the learner will be able to:
- Explain Ruby’s object model and apply object-oriented programming principles.
- Design classes with clear responsibilities, state and behaviour.
- Create and use constructors, instance methods, class methods and constants.
- Protect object state through encapsulation, validation and method visibility.
- Choose appropriately between composition and inheritance.
- Organise reusable code with modules, namespaces and mixins.
- Use blocks, `yield`, Procs and lambdas to write flexible Ruby code.
- Handle expected failures with built-in and custom exceptions.
- Model real business rules with collaborating Ruby objects.
- Refactor procedural code into clean, maintainable object-oriented Ruby.
- Build and document an intermediate Ruby command-line application for an East African use case.
Modules
- 1
Thinking in Ruby Objects
Reviewing methods, collections and program structure.Understanding that values in Ruby are objects.Classes, instances, messages and method calls.Inspecting object class, identity and behaviour.Identifying objects and responsibilities from a problem statement.Moving from procedural scripts to object-oriented design. - 2
Classes, State and Behaviour
Defining classes and creating objects.Initialising objects with `initialize`.Instance variables and instance methods.Readers, writers and accessors.Class methods, class-level state and constants.Coding exercise: model a product, customer and order. - 3
Encapsulation and Reliable Business Rules
Public, private and protected methods.Validating data at object boundaries.Keeping state consistent.Query methods and command methods.Value objects and meaningful domain names.Coding exercise: validate payments, balances or stock movements. - 4
Composition, Inheritance and Polymorphism
“Has-a” and “is-a” relationships.Building objects through composition.Creating subclasses and using `super`.Method overriding and polymorphic behaviour.Recognising fragile or unnecessary inheritance.Refactoring a class hierarchy toward clearer design. - 5
Modules, Namespaces and Mixins
Defining and using modules.Organising classes with namespaces.Sharing behaviour through `include`, `extend` and `prepend`.Working with `Enumerable` and `Comparable`.Avoiding naming conflicts.Coding exercise: reusable formatting and validation modules. - 6
Blocks, Procs and Lambdas
Reviewing blocks and block parameters.Passing behaviour with `yield`.Checking for a block with `block_given?`.Creating and calling Procs and lambdas.Understanding return and argument-handling differences.Using closures in practical programs.Coding exercise: configurable report generation. - 7
Exceptions and Defensive Ruby
Understanding Ruby’s exception hierarchy.Using `begin`, `rescue`, `else` and `ensure`.Raising meaningful errors.Creating custom exception classes.Recovering from file, input and business-rule failures.Avoiding overly broad exception handling.Producing useful messages for users and developers. - 8
Object-Oriented Ruby Application
Turning requirements into classes and responsibilities.Separating input/output from business logic.Coordinating multiple objects.Refactoring duplication and long methods.Documenting setup and usage in a README.Capstone options: SACCO member ledger, SME inventory manager, produce-order processor or training-centre records system.
Before you enroll
- Completion of Ruby Programming for Beginners in Uganda or equivalent knowledge.
- Ability to write and run Ruby programs without step-by-step assistance.
- Working knowledge of variables, strings, numbers, arrays, hashes and symbols.
- Ability to use conditionals, loops, iterators and methods.
- Basic experience reading and writing local files.
- Familiarity with a terminal, code editor and simple Git commands.
- No Android, Rails or web development experience is required.
What you need
- A Windows, macOS or Linux computer.
- The latest stable version of Ruby.
- Visual Studio Code or another code editor.
- A terminal and Interactive Ruby (IRB).
- Git for version control.
- Bundler, included with modern Ruby installations or installed as a Ruby gem.
- A modern web browser and access to official Ruby documentation.
- No paid software, Android Studio or Ruby on Rails is required.
Frequently asked questions
More in Computer Programming

Introduction to Object-Oriented Programming Concepts

Advanced Rust Systems Programming Course in Uganda & Africa

Intermediate Dart Programming in Uganda & East Africa

Intermediate Rust Programming Course in East Africa: Traits, Lifetimes & Concurrency

Advanced PHP Programming – Professional Course in Uganda

Data Structures and Algorithms with Python for Beginners in Uganda
More for Lower Secondary · Upper Secondary · University · General Public

Dart Programming for Beginners in Uganda & East Africa

Advanced Dart Programming & Concurrency for Africa

Advanced iOS Engineering: Secure, Offline-First Apps for Africa

Advanced NumPy for High-Performance Data Science in Africa

Advanced Pandas Course for Scalable Data Pipelines in Africa

Advanced Python Programming Course in Africa
Quick Actions
Need Help?
Have questions about this program? Our team is here to help!