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

Intermediate Java Programming Online – Uganda & East Africa

Intermediate Java Programming Online – Uganda & East Africa

Duration

4 weeks

Investment

UGX 450,000

Teaching

Live online

Program Introduction

Advance beyond Java fundamentals and learn how to design structured, reusable and testable software.

This intermediate Java programming course is designed for learners in Uganda, East Africa and across Africa who already understand basic Java syntax and object-oriented programming.

The course develops practical skills in packages, advanced object-oriented design, records, sealed types, generics, collections, lambda expressions, functional interfaces, streams, file handling, build tools and automated testing.

Learners will apply these concepts to projects inspired by tourism, SACCOs, education, agriculture, transport, healthcare and small-business management. By the end of the course, they will be able to organise larger Java projects, process data efficiently and write code that is easier to test and maintain.

This program focuses on the Java language, Java Standard Edition and core JDK tools. It does not include Android development or framework-based web development.

Key Features & Benefits

• Intermediate Java language training. • No Android-development content. • Modern object-oriented Java. • Records, enums and sealed-type modelling. • Practical generic programming. • Comprehensive Java Collections Framework coverage. • Lambda expressions and functional interfaces. • Stream API and collector exercises. • Modern file processing with NIO. • Maven and Gradle project structures. • Automated testing with JUnit. • Git and GitHub workflow. • Clean-code and refactoring activities. • Uganda, East Africa and Africa-focused projects. • Practical intermediate capstone application. • Portfolio development. • Preparation for advanced Java programming.

Real-World Applications

• Learners can use these skills to: • Develop structured Java console applications. • Build internal business-management tools. • Create school and institutional record systems. • Process tourism and booking information. • Develop SACCO and financial record tools. • Build agricultural data-processing applications. • Design reusable Java components. • Write automated tests. • Process collections of business data. • Maintain medium-sized Java projects. • Refactor poorly organised Java applications. • Contribute to Java development teams. • Create projects for internships and junior developer roles. • Prepare for backend-development frameworks. • Prepare for data structures and algorithms. • Progress to advanced Java programming.

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 JavaJava programming UgandaJava course East AfricaJava course AfricaJava object-oriented programmingJava collectionsJava genericsJava streamsJava lambda expressionsJava testingJUnit courseMaven JavaGradle JavaJava NIOcoding course Kampalasoftware development UgandaAfrican programming coursesEllipkom Java course
Teaching format

Live online

Teaching language

English (Uganda)

Course difficulty

Intermediate

Intended learners

Upper Secondary · University · General Public

What you will learn

  • By the end of this course, the learner will be able to:
  • Organise medium-sized Java projects into packages.
  • Apply access control and encapsulation effectively.
  • Design object-oriented programs using composition, inheritance and polymorphism.
  • Use interfaces, abstract classes and nested classes.
  • Model data using records, enums and sealed types.
  • Create reusable components using Java generics.
  • Select and apply appropriate Java collection types.
  • Write lambda expressions and use functional interfaces.
  • Process collections with the Java Stream API.
  • Apply Optional appropriately.
  • Work with dates and times using the Java Date-Time API.
  • Design and use custom exceptions.
  • Read and write files using modern Java I/O.
  • Serialise and parse structured program data using appropriate designs.
  • Configure Java projects using Maven or Gradle.
  • Write automated tests using JUnit.
  • Use annotations and introductory reflection.
  • apply Git and GitHub in a Java project.
  • Refactor Java code using clean-code principles.
  • Build a complete intermediate-level Java application.

Modules

  1. 1

    Java Fundamentals Review

    Variables and data types.Conditions and loops.Arrays and strings.Methods.Classes and objects.Inheritance and interfaces.Exceptions.Collections.File handling.Identifying knowledge gaps before intermediate programming.
  2. 2

    Packages and Project Organisation

    Meaning and purpose of packages.Creating packages.Importing classes.Package naming conventions.Organising source files.Separating application responsibilities.Source and test directories.Avoiding unnecessary dependencies.Structuring medium-sized Java projects.
  3. 3

    Access Control and Encapsulation

    Public access.Private access.Protected access.Package-private access.Fields and methods.Immutable object design.Defensive copying.Validating object state.Reducing unnecessary exposure.Designing maintainable class APIs.
  4. 4

    Advanced Object-Oriented Programming

    Reviewing inheritance and polymorphism.Composition versus inheritance.Method overriding.Covariant return types.The Object class.Overriding equals.Overriding hashCode.Overriding toString.Object identity and equality.Designing class relationships.Avoiding fragile inheritance structures.
  5. 5

    Interfaces and Abstract Design

    Interface contracts.Default interface methods.Static interface methods.Private interface methods.Abstract classes.Template-method concepts.Multiple interface implementation.Dependency inversion principles.Creating replaceable components.Selecting interfaces or abstract classes.
  6. 6

    Nested and Inner Classes

    Static nested classes.Inner classes.Local classes.Anonymous classes.Accessing enclosing members.Appropriate uses of nested classes.Replacing some anonymous classes with lambdas.Maintaining readability.
  7. 7

    Records, Enums and Sealed Types

    Creating records.Record components.Compact constructors.Record validation.Enum constants.Enum fields and methods.Sealed classes.Sealed interfaces.Permitted subclasses.Modelling controlled hierarchies.Using records and sealed types for data-oriented programming.
  8. 8

    Java Generics

    Generic classes.Generic interfaces.Generic methods.Type parameters.Bounded type parameters.Multiple bounds.Wildcards.Upper-bounded wildcards.Lower-bounded wildcards.Generic type inference.Type erasure.Designing reusable generic components.
  9. 9

    The Java Collections Framework

    Collection interfaces and implementations.Lists.Sets.Queues.Deques.Maps.Iterators.Comparable.Comparator.Sorting collections.Immutable and unmodifiable collections.Choosing the correct collection type.Understanding collection performance.
  10. 10

    Lambda Expressions

    Functional-programming concepts.Lambda syntax.Parameters and return values.Variable capture.Effectively final variables.Method references.Constructor references.Replacing anonymous classes with lambdas.Writing readable lambda expressions.
  11. 11

    Functional Interfaces

    Meaning of a functional interface.The @FunctionalInterface annotation.Predicate.Function.Consumer.Supplier.Unary and binary operators.Combining functional interfaces.Creating custom functional interfaces.Using functions as behaviour.
  12. 12

    Java Stream API

    Meaning and purpose of streams.Creating streams from collections.Intermediate operations.Terminal operations.Using filter.Using map.Using flatMap.Sorting stream elements.Removing duplicates.Matching and finding elements.Reducing values.Collecting results.Stream pipelines.Avoiding common Stream API mistakes.
  13. 13

    Collectors and Data Aggregation

    Collecting into lists and sets.Joining strings.Counting values.Summing and averaging.Grouping data.Partitioning data.Mapping collected values.Creating summary statistics.Multi-level grouping.Designing business reports with collectors.
  14. 14

    Optional and Null Handling

    Problems caused by null references.Creating Optional values.Empty and present values.Retrieving optional data.Transforming optional values.Filtering optional values.Providing default values.Throwing exceptions for missing values.Situations where Optional should not be used.Designing clearer return values.
  15. 15

    Date and Time API

    Working with dates.Working with times.Date and time combinations.Time zones.Durations.Periods.Parsing dates and times.Formatting dates and times.Comparing temporal values.Calculating schedules and deadlines.Avoiding common date-handling errors.
  16. 16

    Advanced Exception Handling

    Checked exceptions.Unchecked exceptions.Creating custom exceptions.Exception propagation.Multi-catch blocks.Try-with-resources.Exception chaining.Designing clear error messages.Recoverable and unrecoverable failures.Avoiding exception misuse.Creating domain-specific error models.
  17. 17

    Modern File Handling with NIO

    The Path interface.The Files class.Creating and deleting files.Creating directories.Reading complete files.Reading files line by line.Writing and appending data.Copying and moving files.Listing directory contents.Walking directory trees.File attributes.Safe resource handling.
  18. 18

    Intermediate Capstone Project

    Learners will designimplementtest and document a complete Java application.Suggested projects include:SACCO member and savings-management system.Tour booking and quotation engine.School records-processing system.Small-business inventory application.Employee payroll-processing system.Agricultural produce record system.Hotel reservation-management program.Transport route and fare-management system.Clinic appointment-record system.Library lending-management system.

Before you enroll

  • Learners enrolling in this course should have completed Java Programming for Beginners on Ellipkom or possess equivalent practical knowledge.
  • Learners should be able to:
  • Create, compile and run Java programs.
  • Use variables, data types and operators.
  • Read input and produce formatted output.
  • Use conditional statements and loops.
  • Create and process arrays.
  • Work with strings.
  • Create methods with parameters and return values.
  • Create classes, objects and constructors.
  • Apply basic encapsulation and inheritance.
  • Use introductory interfaces and abstract classes.
  • Handle basic exceptions.
  • Use an ArrayList.
  • Read and write basic text files.
  • Debug small Java console applications.
  • Basic Git knowledge is recommended but not required.
  • Android-development experience is not required.

What you need

  • Laptop or desktop computer.
  • Java Development Kit 25 LTS or a compatible current JDK.
  • IntelliJ IDEA Community Edition, recommended.
  • Eclipse IDE or Visual Studio Code with Java extensions, optional.
  • Maven or Gradle.
  • JUnit.
  • JShell.
  • Git.
  • GitHub or another Git repository service.
  • Terminal or command-line access.
  • Modern web browser.
  • 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!