Intermediate Data Structures and Algorithms with Python in Uganda

Duration
4 weeks
Investment
UGX 450,000
Teaching
Live online
Program Introduction
This Intermediate Data Structures and Algorithms with Python course helps learners move from implementing basic data structures to designing efficient solutions for more demanding software problems.
Learners explore recursion, trees, binary search trees, heaps, priority queues, graphs, shortest paths, divide and conquer, greedy algorithms, backtracking and dynamic programming. Every major concept is implemented in Python and reinforced through algorithm analysis, testing and practical problem-solving.
The course is designed for aspiring software engineers, computer science students, working developers and coding-interview candidates in Uganda, East Africa and across Africa. Its applied projects connect algorithm theory to digital payments, healthcare, education, agribusiness, e-commerce, transport and logistics.
By the end of the course, learners will be able to choose appropriate data structures, evaluate performance trade-offs and build efficient software solutions that respond to real African business and community needs.
Key Features & Benefits
• Intermediate Python implementations of essential algorithms. • Detailed time and space complexity analysis. • Visual exploration of trees, heaps and graphs. • Practical Ugandan and African technology scenarios. • Guided coding problems and independent challenges. • Reusable problem-solving patterns. • Testing and performance-measurement practice. • Technical interview and competitive-programming preparation. • Applied software-engineering decisions. • Portfolio-ready algorithm capstone. • Projects connected to health, finance, education, agriculture, e-commerce and logistics. • Preparation for advanced software engineering, data science and machine learning.
Real-World Applications
• Learners can use these skills to: • Optimise delivery and transport routes. • Design priority systems for clinics and customer-support services. • Build fast product, customer and transaction lookup systems. • Model relationships in social, education and business networks. • Organise task and course dependencies. • Improve marketplace search and recommendation systems. • Allocate limited budgets, storage or transport capacity. • Process large collections of records more efficiently. • Develop scalable back-end services for African startups and SMEs. • Prepare for intermediate software engineering interviews. • Participate in competitive-programming challenges. • Strengthen applications for software-development opportunities. • Build foundations for system design, data engineering, artificial intelligence and machine learning.
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
- After completing this intermediate Data Structures and Algorithms with Python course, learners will be able to:
- Analyse the time and space complexity of multi-step algorithms.
- Design and implement recursive algorithms.
- Build and traverse binary trees and binary search trees.
- Use heaps and priority queues to process high-priority tasks efficiently.
- Represent real-world networks using graphs.
- Implement breadth-first search and depth-first search.
- Find efficient paths through weighted networks.
- Apply divide-and-conquer, greedy and backtracking strategies.
- Solve suitable optimisation problems using dynamic programming.
- Compare algorithmic solutions and justify design decisions.
- Write testable, maintainable and efficient Python implementations.
- Solve intermediate coding interview and competitive-programming problems.
- Build an applied algorithm project for an African business or public-service scenario.
Modules
- 1
Algorithm Analysis and Recursion
Reviewing time and space complexity.Analysing nested loops and multi-stage algorithms.Recursive thinking and recursive functions.Base cases and recursive cases.Understanding the call stack.Recursion versus iteration.Introduction to recurrence relations.Memoisation.Practical task: Implement and analyse recursive search and calculation problems. - 2
Trees and Binary Search Trees
Tree terminology and structure.Root, parent, child, leaf, height and depth.Binary trees.Binary search tree properties.Insertion, search and deletion.Preorder, inorder and postorder traversal.Recursive and iterative traversal.Balanced and unbalanced trees.Practical task: Build a searchable product or learner-record index. - 3
Heaps and Priority Queues
Complete binary trees.Min-heaps and max-heaps.Heap insertion and removal.Heapify operations.Python’s heapq module.Heap sort.Priority queue design.Selecting the highest-priority task efficiently.Practical task: Create a clinic, delivery or customer-support priority system. - 4
Graphs and Network Modelling
Vertices, edges and weights.Directed and undirected graphs.Weighted and unweighted graphs.Adjacency lists and adjacency matrices.Graph construction in Python.Breadth-first search.Depth-first search.Connected components and cycle detection.Practical task: Model connections between towns, services or delivery points. - 5
Shortest Paths and Graph Applications
Pathfinding problems.Dijkstra’s shortest-path algorithm.Limitations of shortest-path methods.Topological sorting.Dependency graphs.Introduction to disjoint sets and union-find.Comparing graph algorithms.Testing graph solutions.Practical task: Find efficient delivery routes or model course prerequisites. - 6
Divide and Conquer, Greedy Algorithms and Backtracking
Recognising algorithm-design patterns.Divide-and-conquer strategy.Merge sort review and quicksort.Greedy-choice strategy.Interval scheduling and resource selection.Backtracking and decision trees.Constraint-based search.Pruning impossible solutions.Practical task: Solve scheduling, allocation or route-selection challenges. - 7
Dynamic Programming
Recognising overlapping subproblems.Optimal substructure.Memoisation and tabulation.One-dimensional dynamic programming.Two-dimensional dynamic programming.Knapsack-style problems.Sequence and grid problems.Comparing recursion, greedy methods and dynamic programming.Practical task: Optimise a limited budget, loading plan or resource allocation. - 8
Applied Algorithm Engineering and Capstone
Selecting the right data structure.Combining trees, heaps, graphs and hash tables.Measuring algorithm performance.Generating test cases.Handling edge cases.Refactoring inefficient code.Explaining technical decisions.Intermediate coding interview strategies.delivery-route optimiser, clinic priority manager, produce-distribution planner or marketplace search engine.
Before you enroll
- Learners should be able to:
- Write Python programs using variables, conditions, loops, functions and classes.
- Work confidently with Python lists, dictionaries, sets and tuples.
- Explain basic Big-O notation.
- Implement stacks, queues and linked lists.
- Use linear search and binary search.
- Understand basic sorting algorithms.
- Use Git and a code editor to manage programming projects.
- Test and debug small Python programs.
- Completion of Ellipkom’s beginner Data Structures and Algorithms course or equivalent knowledge is strongly recommended.
What you need
- A Windows, macOS or Linux laptop or desktop computer.
- Python 3.
- Visual Studio Code with the Python extension, or an equivalent development environment.
- Git and a GitHub account.
- Python’s built-in unittest framework or pytest.
- A modern web browser.
- A diagramming tool for drawing trees, graphs and algorithm flows.
- A notebook for manually tracing recursive calls and algorithm states.
- Internet access for Ellipkom learning resources and coding exercises.
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!