ProgrammingUpper Secondary · University · General PublicAdvanced Java Programming Online – Uganda & East Africa
Computer Programming
Upper Secondary · University · General Public

Advanced Java Programming Online – Uganda & East Africa

Advanced Java Programming Online – Uganda & East Africa

Duration

4 weeks

Investment

UGX 500,000

Teaching

Live online

Program Introduction

Master advanced Java programming and learn how to create efficient, concurrent, modular and maintainable software.

This course is designed for experienced Java learners and developers in Uganda, East Africa and across Africa who want to advance from application programming to professional Java and JVM engineering.

The program covers advanced generics, functional programming, Stream API design, concurrency, executors, asynchronous programming, virtual threads, modules, annotations, reflection, networking, JVM architecture, memory management, performance analysis and secure programming.

Learners will apply these skills to demanding projects inspired by financial services, SACCOs, tourism, agriculture, education, transport and data-processing requirements.

By completing the program, learners will be able to design reusable Java libraries, diagnose JVM applications, test concurrent programs and develop high-quality Java solutions.

The course focuses on advanced Java language, Java Standard Edition and JVM engineering. It does not include Android development or framework-specific application development.

Key Features & Benefits

• Advanced Java language training. • No Android-development content. • Modern Java data modelling. • Advanced generics and functional programming. • Stream API and custom collector development. • Comprehensive concurrency training. • Executors and CompletableFuture. • Practical virtual-thread programming. • Concurrent collections and synchronisation. • Java Module System. • Advanced reflection and annotations. • Java networking and NIO. • JVM architecture and memory management. • Java Flight Recorder and diagnostic tools. • Performance-analysis exercises. • Secure Java programming. • Advanced automated testing. • Static analysis and code-quality tools. • Professional Java API and library design. • Uganda, East Africa and Africa-focused capstone projects. • Preparation for senior Java and JVM-development pathways.

Real-World Applications

• Learners can use advanced Java skills to: • Develop reusable Java libraries. • Build concurrent business applications. • Create high-volume transaction-processing systems. • Design data-processing pipelines. • Develop modular Java applications. • Build networked Java programs. • Process large files and datasets. • Create financial and SACCO processing tools. • Develop tourism inventory and reporting systems. • Build agricultural data-processing applications. • Improve the performance of existing Java systems. • Diagnose JVM memory and concurrency problems. • Apply virtual threads to scalable workloads. • Test asynchronous and concurrent applications. • Integrate Java components into larger software systems. • Contribute to open-source Java projects. • Prepare for advanced backend-development frameworks. • Compete for local and remote Java-development roles. • Lead Java code reviews. • Mentor beginner and intermediate developers. • Prepare for software-architecture and technical-leadership roles.

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.

Advanced JavaJava course UgandaJava course East AfricaJava course AfricaJava concurrencyJava virtual threadsJava Stream APIadvanced Java genericsJava modulesJava reflectionJVM performanceJava Flight RecorderJava multithreadingJava library developmentsecure Java programmingsoftware engineering Ugandaadvanced coding KampalaAfrican software developersremote Java developer skillsEllipkom Java course
Teaching format

Live online

Teaching language

English (Uganda)

Course difficulty

Advanced

Intended learners

Upper Secondary · University · General Public

What you will learn

  • By the end of this course, the learner will be able to:
  • Apply advanced Java generics, wildcards and type-system concepts.
  • Design data-oriented models with records, sealed types and pattern matching.
  • Create advanced Stream API pipelines and custom collectors.
  • Apply functional-programming principles in Java.
  • Create safe concurrent programs using threads and executors.
  • Use futures and CompletableFuture for asynchronous operations.
  • Apply virtual threads to high-concurrency tasks.
  • Protect shared state using locks, atomic variables and concurrent collections.
  • Understand Java Memory Model principles.
  • Design modular Java applications.
  • Use advanced reflection, annotations and dynamic proxies responsibly.
  • Work with advanced NIO and network programming.
  • Apply Java serialisation and data-conversion principles safely.
  • Understand JVM memory management and garbage collection.
  • Diagnose Java applications using JDK monitoring tools.
  • Analyse and improve Java application performance.
  • Apply secure-coding principles.
  • Test concurrent and asynchronous Java programs.
  • Design stable and reusable Java APIs and libraries.
  • Package and distribute Java applications.
  • Build a production-style advanced Java project.

Modules

  1. 1

    Modern Java Review

    Object-oriented Java.Functional Java.Records.Sealed classes and interfaces.Pattern matching.Generics.Collections.Streams.Build tools.Automated testing.Establishing an advanced-course development environment.
  2. 2

    Advanced Type Modelling

    Classes versus records.Immutable data.Sealed type hierarchies.Exhaustive decision-making.Pattern matching with instanceof.Pattern matching in switch.Modelling valid program states.Reducing invalid object combinations.Data-oriented programming.Designing expressive domain models.
  3. 3

    Advanced Generics

    Reviewing generic type erasure.Multiple bounds.Recursive type bounds.Wildcard capture.Generic variance concepts.Producer and consumer principles.Designing generic APIs.Generic factory methods.Type-safe heterogeneous containers.Heap pollution.Safe use of variable arguments with generics.Limitations of Java generic types.
  4. 4

    Advanced Functional Programming

    Functions as values.Higher-order behaviour.Function composition.Predicate composition.Pure-function concepts.Immutability.Side effects.Lazy evaluation concepts.Functional error handling.Designing functional APIs.Balancing functional and object-oriented designs.
  5. 5

    Advanced Stream API

    Complex stream pipelines.Primitive streams.Custom sorting.Multi-stage transformations.Complex reductions.Grouping and downstream collectors.Parallel streams.Stream ordering.Stream short-circuiting.Spliterators.Resource-backed streams.Performance considerations.Recognising when streams should not be used.
  6. 6

    Custom Collectors and Data Processing

    Collector structure.Supplier functions.Accumulator functions.Combiner functions.Finisher functions.Collector characteristics.Building custom collectors.Parallel collector considerations.Creating reporting and aggregation tools.Testing custom collectors.
  7. 7

    Thread Fundamentals

    Processes and threads.Creating threads.Thread lifecycle.Starting and joining threads.Thread interruption.Sleeping and waiting.Daemon threads.Thread priorities.Thread-safety principles.Recognising concurrency problems.
  8. 8

    Executors and Thread Pools

    Executor framework.Executor services.Fixed thread pools.Cached thread pools.Scheduled executors.Callable tasks.Future results.Task cancellation.Graceful shutdown.Selecting pool sizes.Avoiding thread-pool exhaustion.
  9. 9

    CompletableFuture and Asynchronous Programming

    Creating completed and asynchronous futures.Transforming asynchronous results.Combining independent operations.Chaining dependent operations.Handling asynchronous errors.Applying timeouts.Selecting executors.Coordinating multiple asynchronous tasks.Testing asynchronous pipelines.Avoiding blocking operations
  10. 10

    Virtual Threads

    Platform threads and virtual threads.Creating virtual threads.Virtual-thread executors.Thread-per-task designs.Blocking operations with virtual threads.Virtual-thread lifecycle.Thread-local considerations.Pinning and performance limitations.Monitoring virtual threads.Choosing virtual threads appropriately.
  11. 11

    Synchronisation and Shared State

    Race conditions.Critical sections.The synchronized keyword.Intrinsic locks.Explicit locks.Read-write locks.Conditions.The volatile keyword.Atomic variables.Immutability.Thread confinement.Preventing deadlocks.Preventing starvation.
  12. 12

    Concurrent Collections and Coordination

    Concurrent maps.Copy-on-write collections.Blocking queues.Concurrent queues.Semaphores.Count-down latches.Cyclic barriers.Exchangers.Producer-consumer systems.Concurrent data aggregation.Selecting concurrency utilities.
  13. 13

    Advanced Java I/O and NIO

    Buffers.Channels.Byte buffers.File channels.Memory-mapped files.Character encoding.Non-blocking operations.File watching.Asynchronous file channels.Processing large files.Resource-management strategies.Comparing traditional I/O and NIO.
  14. 14

    Java Network Programming

    Networking fundamentals.IP addresses and ports.TCP communication.UDP communication.Client sockets.Server sockets.Sending and receiving data.Handling multiple clients.Timeouts and connection failures.Network resource cleanup.Secure network-programming principles.Testing local network applications.
  15. 15

    Serialisation and Data Persistence Principles

    Object serialisation concepts.Risks of native Java serialisation.The Serializable interface.Controlling serialised fields.Version compatibility.Custom serialisation.Safe data formats.Mapping objects to structured text.Validation during deserialisation.Avoiding insecure deserialisation.Selecting appropriate persistence approaches.
  16. 16

    Advanced Capstone Project

    Learners will build a production-style Java project demonstrating advanced language and JVM skills.Suggested projects include:Concurrent transaction-processing engine.Asynchronous tourism inventory aggregator.SACCO transaction-validation library.Multi-threaded school-results processor.Agricultural market-data processing pipeline.Transport scheduling engine.High-volume reporting application.Concurrent inventory synchronisation system.Modular Java business-rules library.Java network communication system.Large-file processing and reporting application.Java performance-monitoring demonstration system.

Before you enroll

  • Learners enrolling in this advanced course should have completed Intermediate Java Programming on Ellipkom or possess equivalent knowledge and experience.
  • Learners should be able to:
  • Create structured Java projects using packages.
  • Configure Maven or Gradle projects.
  • Apply encapsulation, inheritance, polymorphism and composition.
  • Work confidently with interfaces and abstract classes.
  • Use records, enums and sealed types.
  • Create generic classes and methods.
  • Work with collections, lambdas and streams.
  • Use Java file and NIO APIs.
  • Create and handle custom exceptions.
  • Write automated unit tests.
  • Use Git and GitHub for version control.
  • Read Java API documentation.
  • Investigate and solve unfamiliar programming problems.
  • Basic knowledge of threads is recommended but not compulsory.

What you need

  • Laptop or desktop computer suitable for professional software development.
  • Java Development Kit 25 LTS or a compatible current JDK.
  • IntelliJ IDEA Community or Ultimate Edition.
  • Eclipse IDE or Visual Studio Code with Java extensions, optional.
  • Maven or Gradle.
  • JUnit.
  • Git.
  • GitHub or another repository platform.
  • JShell.
  • Java Flight Recorder.
  • JDK Mission Control, where available.
  • Java benchmarking tools such as JMH, optional.
  • Static-analysis tools such as SpotBugs, PMD or Checkstyle.
  • Terminal or command-line environment.
  • 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 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 C Systems Programming Course – Africa
Upper Secondary · University · General Public

Advanced C Systems Programming Course – Africa

4 weeksUGX 500,000
Advanced C# Programming in Uganda: Async, Generics & Performance
Upper Secondary · University · General Public

Advanced C# Programming in Uganda: Async, Generics & Performance

4 weeksUGX 500,000
Advanced C++ Course Uganda – Performance and Concurrency
Upper Secondary · University · General Public

Advanced C++ Course Uganda – Performance and Concurrency

4 weeksUGX 500,000
Advanced Computer Vision & Image Recognition
Upper Secondary · University · General Public

Advanced Computer Vision & Image Recognition

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

Advanced Dart Programming & Concurrency for Africa

4 weeksUGX 500,000

Quick Actions

Enroll Now

Need Help?

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