ProgrammingLower Secondary · Upper Secondary · University · General PublicIntermediate Kotlin Programming Online – Uganda & East Africa
Computer Programming
Lower Secondary · Upper Secondary · University · General Public

Intermediate Kotlin Programming Online – Uganda & East Africa

Intermediate Kotlin Programming Online – Uganda & East Africa

Duration

4 weeks

Investment

UGX 450,000

Teaching

Live online

Program Introduction

Advance beyond basic Kotlin syntax and learn how to design structured, reusable and testable programs.

This intermediate Kotlin programming course is designed for learners in Uganda, East Africa and across Africa who already understand Kotlin fundamentals and want to develop stronger software-development skills.

The course explores object-oriented programming, functional programming, lambda expressions, collections, sequences, generics, scope functions, file processing, testing, Gradle and Java interoperability. Learners will work on practical applications inspired by SACCO operations, tourism, transport, agriculture, education, health services and small-business management.

By the end of the program, learners will be able to organise larger Kotlin projects, write automated tests, process information efficiently and build applications that are easier to maintain.

This course focuses exclusively on Kotlin language and Kotlin/JVM development. It does not include Android development or mobile application design.

Key Features & Benefits

• Intermediate Kotlin language training without Android development. • Structured Kotlin/JVM and Gradle projects. • Practical object-oriented programming. • Functional programming with lambdas and higher-order functions. • Collection and sequence-processing exercises. • File-processing and local data-storage activities. • Unit testing with Kotlin testing tools. • Git and GitHub project workflow. • Java and Kotlin interoperability. • Code-review and refactoring exercises. • Uganda, East Africa and Africa-focused application scenarios. • Practical capstone application. • Portfolio-building opportunities. • Preparation for advanced Kotlin programming. • Suitable for learners pursuing software-development careers.

Real-World Applications

• Learners can use these skills to: • Build structured Kotlin console applications. • Develop business-rule engines. • Create record-management applications. • Process school, sales, tourism and agricultural data. • Develop reusable Kotlin/JVM components. • Work with projects containing Java and Kotlin. • Write automated tests for software applications. • Refactor poorly organised programs. • Create internal tools for organisations and small businesses. • Build portfolio projects for internships and junior developer roles. • Support technology startup prototypes. • Prepare for server-side Kotlin development. • Prepare for advanced Kotlin programming. • Mentor beginner Kotlin learners. • Contribute to collaborative software projects.

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.

Intermediate KotlinKotlin programming UgandaKotlin course East AfricaKotlin course AfricaKotlin object-oriented programmingKotlin functional programmingKotlin collectionsKotlin lambdasKotlin testingKotlin GradleKotlin JVMJava Kotlin interoperabilitycoding course Kampalasoftware development UgandaAfrican programming courseslearn Kotlin onlineEllipkom programming courseKotlin project course
Teaching format

Live online

Teaching language

English (Uganda)

Course difficulty

Intermediate

Intended learners

Lower Secondary · Upper Secondary · University · General Public

What you will learn

  • By the end of this course, the learner will be able to:
  • Organise medium-sized Kotlin programs into packages and modules.
  • Configure Kotlin/JVM projects using Gradle.
  • Apply object-oriented programming principles in Kotlin.
  • Use inheritance, interfaces, abstract classes and composition appropriately.
  • Model program information using data, enum, object and sealed classes.
  • Write lambda expressions and higher-order functions.
  • Process collections using functional operations.
  • Use sequences for efficient data processing.
  • Create extension functions and extension properties.
  • Apply Kotlin scope functions correctly.
  • Create reusable components using generic classes and functions.
  • Handle errors using exceptions and result-oriented programming.
  • Read information from and write information to files.
  • Write automated unit tests for Kotlin programs.
  • Integrate Kotlin code with Java libraries and classes.
  • Apply Git and GitHub in a structured programming project.
  • Design and build a complete intermediate Kotlin application.

Modules

  1. 1

    Kotlin Fundamentals Review

    Review of variables and data types.Review of conditions and loops.Review of functions.Review of collections.Review of null safety.Review of classes and objects.Identifying knowledge gaps before intermediate programming.
  2. 2

    Structuring Kotlin Projects

    Creating structured Kotlin/JVM projects.Understanding source and test directories.Organising programs into files.Creating and using packages.Imports and package visibility.Separating program responsibilities.Developing consistent project structures.
  3. 3

    Introduction to Gradle

    Meaning and purpose of build tools.Introduction to Gradle.Understanding build.gradle.kts.Configuring Kotlin/JVM projects.Adding external dependencies.Running build tasks.Running tests with Gradle.Managing project versions.Solving common Gradle configuration problems.
  4. 4

    Advanced Functions

    Function overloading.Local functions.Infix functions.Variable numbers of arguments.Tail-recursive functions.Function types.Function references.Passing functions as arguments.Returning functions from functions.Closures.Higher-order functions.
  5. 5

    Lambda Expressions

    Introduction to lambda expressions.Lambda syntax.Passing lambdas into functions.Lambdas with multiple parameters.The implicit it parameter.Returning values from lambdas.Lambdas and collections.Writing readable functional code.
  6. 6

    Object-Oriented Programming in Kotlin

    Encapsulation.Abstraction.Inheritance.Polymorphism.Primary and secondary constructors.Initialisation order.Visibility modifiers.Custom getters and setters.The openfinal and override keywords.Composition versus inheritance.
  7. 7

    Interfaces and Abstract Classes

    Declaring interfaces.Interface properties.Default interface implementations.Implementing multiple interfaces.Declaring abstract classes.Abstract properties and functions.Choosing between interfaces and abstract classes.Designing flexible and replaceable components.
  8. 8

    Delegation

    Meaning of delegation.Class delegation using by.Delegating responsibilities to another object.Reducing repeated code.Delegation compared with inheritance.Practical uses of delegation in application design.
  9. 9

    Data, Enum, Object and Sealed Classes

    Data classes.Generated data-class functions.Copying data objects.Destructuring declarations.Enum classes.Object declarations.Companion objects.Anonymous objects.Sealed classes and sealed interfaces.Exhaustive when expressions.Modelling successfailure and application states.
  10. 10

    Functional Collection Processing

    Using map.Using filter.Using forEach.Finding collection elements.Using anyall and none.Grouping collection data.Associating keys and values.Using fold and reduce.Sorting and comparison.Flattening nested collections.Chaining collection operations.
  11. 11

    Sequences and Efficient Processing

    Collections compared with sequences.Eager and lazy evaluation.Creating sequences.Sequence transformations.Terminal operations.Avoiding unnecessary intermediate collections.Processing larger sets of data.Identifying situations where sequences are unnecessary.
  12. 12

    Extension Functions and Properties

    Meaning of extension functions.Creating extension functions.Creating extension properties.Member functions compared with extensions.Extensions with nullable receivers.Generic extension functions.Organising extension functions.Avoiding inappropriate use of extensions.
  13. 13

    Kotlin Scope Functions

    Using let.Using run.Using with.Using apply.Using also.Choosing the correct scope function.Avoiding confusing scope-function chains.Improving code readability with scope functions.
  14. 14

    Intermediate Generics

    Generic classes.Generic functions.Type parameters.Type constraints.Multiple constraints using where.Nullable generic types.Generic utility functions.Introduction to variance.Designing reusable repositories and services.
  15. 15

    Exception Handling and Result-Oriented Programming

    Using trycatch and finally.Throwing exceptions.Creating custom exceptions.Preconditions with require.State checks with check.Using error.Using runCatching.Working with Result.Representing expected failures with sealed classes.Choosing between exceptions and explicit results.
  16. 16

    File Input and Output

    Understanding files and paths.Reading text files.Writing text files.Appending information to files.Processing line-based information.Handling missing files.Handling inaccessible files.Converting file data into Kotlin objects.Saving program records locally.
  17. 17

    Kotlin Unit Testing

    Purpose of automated testing.Structure of a unit test.Assertions.Testing functions.Testing classes.Testing expected exceptions.Testing edge cases.Test fixtures.Naming tests clearly.Organising test code.Understanding test coverage.Building confidence through automated tests.
  18. 18

    Git and GitHub for Kotlin Projects

    Initialising a Git repository.Tracking project changes.Writing meaningful commit messages.Creating branches.Merging changes.Managing merge conflicts.Pushing projects to GitHub.Writing a project README.Organising a professional coding portfolio.
  19. 19

    Intermediate Application Architecture

    Separating user input from business logic.Separating business logic from data storage.Layered program organisation.Designing reusable services.Using interfaces for replaceable components.Introduction to dependency injection principles.Validation and error reporting.Refactoring growing Kotlin projects.Testing business rules independently.
  20. 20

    Intermediate Capstone Project

    Suggested projects include:SACCO member and savings-management system.Tour booking and quotation engine.School records-processing application.Small-business inventory and sales system.Transport fare and route-management program.Employee payroll-processing application.Agricultural produce record system.Hotel reservation-management application.Clinic appointment and records system.

Before you enroll

  • Learners enrolling in this course should have completed Kotlin Programming for Beginners on Ellipkom or possess equivalent knowledge.
  • Learners should be able to:
  • Create and run Kotlin/JVM console projects.
  • Declare variables and use common Kotlin data types.
  • Work with operators and expressions.
  • Use conditions, loops and ranges.
  • Create functions with parameters and return values.
  • Apply basic Kotlin null-safety features.
  • Work with arrays, lists, sets and maps.
  • Create basic classes, objects and constructors.
  • Identify and correct basic programming errors.
  • Organise small programs into functions and files.
  • Basic Git knowledge is recommended but not compulsory.
  • Android-development experience is not required.

What you need

  • Laptop or desktop computer.
  • IntelliJ IDEA Community Edition.
  • Java Development Kit, preferably JDK 17 or later.
  • Kotlin/JVM.
  • Gradle using Kotlin DSL.
  • Git.
  • GitHub or another Git repository platform.
  • kotlin.test or JUnit.
  • Kotlin Playground for short demonstrations.
  • Terminal or command-line access.
  • Stable internet connection.
  • Active Ellipkom learner account.

Frequently asked questions

More in Computer Programming

Introduction to Object-Oriented Programming Concepts
Lower Secondary

Introduction to Object-Oriented Programming Concepts

4 weeksUGX 450,000
Advanced Rust Systems Programming Course in Uganda & Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Rust Systems Programming Course in Uganda & Africa

4 weeksUGX 450,000
Intermediate Dart Programming in Uganda & East Africa
Lower Secondary · Upper Secondary · University · General Public

Intermediate Dart Programming in Uganda & East Africa

4 weeksUGX 450,000
Intermediate Rust Programming Course in East Africa: Traits, Lifetimes & Concurrency
Lower Secondary · Upper Secondary · University · General Public

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

4 weeksUGX 450,000
Advanced PHP Programming – Professional Course in Uganda
Upper Secondary · University · General Public

Advanced PHP Programming – Professional Course in Uganda

4 weeksUGX 500,000
Data Structures and Algorithms with Python for Beginners in Uganda
Lower Secondary · Upper Secondary · University · General Public

Data Structures and Algorithms with Python for Beginners in Uganda

4 weeksUGX 450,000

More for Lower Secondary · Upper Secondary · University · General Public

 Dart Programming for Beginners in Uganda & East Africa
Lower Secondary · Upper Secondary · University · General Public

Dart Programming for Beginners in Uganda & East Africa

4 weeksUGX 450,000
Advanced Dart Programming & Concurrency for Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Dart Programming & Concurrency for Africa

4 weeksUGX 500,000
Advanced iOS Engineering: Secure, Offline-First Apps for Africa
Lower Secondary · Upper Secondary · University · General Public

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

4 weeksUGX 450,000
Advanced NumPy for High-Performance Data Science in Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced NumPy for High-Performance Data Science in Africa

4 weeksUGX 450,000
Advanced Pandas Course for Scalable Data Pipelines in Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Pandas Course for Scalable Data Pipelines in Africa

4 weeksUGX 450,000
Advanced Python Programming Course in Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Python Programming Course in Africa

4 weeksUGX 500,000

Quick Actions

Enroll Now

Need Help?

Have questions about this program? Our team is here to help!