Programming & Development

Python

Practical Python programming for automation, data work and back-end development — from first scripts to a deployed, tested application.

Level: Beginner–Advanced Beginner: 4 weeks • Intermediate: 8 weeks • Advanced: 12 weeks Contact for pricing

Prerequisites

No programming experience needed for the Beginner level. Comfortable basic computer use and access to a laptop or desktop for practice. Later levels require the previous level or an equivalent entry task.

Certificate

Awarded by Rescue Academy on successful completion of the program's assessments and final project.

Learn Online — Live Classes

Register, receive your schedule, and join live instructor-led Python classes on Zoom. Assignments, instructor feedback, and a certificate on completion.

Learn In Person

Attend Python classes in person in Juba with hands-on labs, instructor mentorship, and a certificate on completion.

What You'll Learn

  • Python setup, variables, decisions, loops and functions
  • Lists, dictionaries, strings and real data records
  • Files, CSV, JSON and Excel automation
  • Error handling, modules, virtual environments and Git
  • Web APIs, SQL databases and Flask back ends
  • Testing with pytest, data analysis with pandas, and deployment

Program Objectives

  • Write correct, readable Python programs that solve real tasks for businesses, schools and NGOs
  • Automate repetitive file, spreadsheet and reporting work
  • Build data-driven applications with files, databases and web APIs
  • Work like a professional developer: version control, testing, documentation and deployment

Who It's For

  • School leavers and university students starting a technology career
  • Office, finance and M&E staff who want to automate spreadsheet and reporting work
  • Aspiring freelance developers and junior back-end developers
  • Learners preparing for data science, machine learning or AI programs

Where You'll Use It

  • Office and reporting automation in businesses, NGOs and government
  • Data cleaning and analysis for monitoring & evaluation
  • Back-end services for websites and mobile apps
  • Scripting for IT support and system administration
  • Foundation for data science, machine learning and AI work

Curriculum

Instructor-led, practical training. Each level is a block of 4, 8 or 12 weeks; every module ends with a practical activity and an assessment, and every level with a project.

Beginner

4 weeks · 50 guided hours · 5 modules Free taster lessons available Level overview

Module 1: Python Setup and First Programs 8 h

Set up a working Python environment and write first scripts that read input, store values in variables and print clear results. 3 lessons

Module 2: Decisions and Loops 10 h

Make programs choose between actions and repeat work automatically, the core of every automation script. 3 lessons

Module 3: Working with Lists, Dictionaries and Strings 12 h

Store and process collections of real data, such as a price list, a class register or customer records. 3 lessons

Module 4: Writing Reusable Functions 10 h

Package logic into named, testable functions so programs are easier to read, reuse and fix. 3 lessons

Module 5: Python Beginner Project Studio 10 h

Apply everything from the level to plan, build, test and present the level project under instructor guidance. 3 lessons

Level project: Shop Sales Calculator

Intermediate

8 weeks · 100 guided hours · 6 modules Level overview

Module 1: Files and Structured Data in Python 16 h

Work with the file formats organisations actually use: plain text, CSV and JSON. 3 lessons

Module 2: Error Handling and Defensive Programming 14 h

Make programs robust against bad input, missing files and unexpected data, and record what went wrong. 3 lessons

Module 3: Modules, Packages and Virtual Environments 14 h

Structure larger programs across several files and manage third-party packages reproducibly. 3 lessons

Module 4: Working with Web APIs 18 h

Retrieve live data from web services, process the JSON responses and cope with unreliable connections. 3 lessons

Module 5: Automating Everyday Office Tasks with Python 20 h

Use Python to remove repetitive office work: organising files, producing Excel reports and generating standard documents. 4 lessons

Module 6: Python Intermediate Project Studio 18 h

Build and deliver the level project using professional tools: Git, GitHub, code review and clear documentation. 3 lessons

Level project: Beneficiary Data Cleaner and Report Generator

Advanced

12 weeks · 150 guided hours · 6 modules Level overview

Module 1: Object-Oriented Programming in Python 24 h

Model real-world entities with classes and choose between inheritance and composition sensibly. 4 lessons

Module 2: Testing and Code Quality 20 h

Prove code works with automated tests and keep it maintainable with style tools and type checking. 4 lessons

Module 3: Python and SQL Databases 24 h

Store application data reliably in a relational database and access it safely from Python. 4 lessons

Module 4: Building Web APIs with Flask 30 h

Expose application features as a JSON web API that mobile apps, websites and other systems can use. 5 lessons

Module 5: Data Analysis with pandas 24 h

Use pandas to clean, combine, summarise and chart tabular data for reports. 4 lessons

Module 6: Python Capstone: Deploying a Real Application 28 h

Plan, build, deploy and hand over a complete Python application for a realistic client brief. 5 lessons

Level project: Tested Inventory API

Final practical project

Deployed Python Application for a Client Brief

Each learner scopes, builds, tests, deploys and hands over a Python application that solves a realistic problem for a local organisation — for example a clinic appointment API, a school fees tracker or a cooperative's sales reporting service — using the skills from all three levels.

Deliverables

  • Approved scope document with user stories and acceptance criteria
  • Source code on GitHub with tests, a requirements file and clean commit history
  • A live deployment or a documented offline installation
  • User guide and maintainer README
  • A 10-minute presentation and live demonstration to a panel

Assessed on

  • Meets the agreed acceptance criteria
  • Correctness and robustness, demonstrated by automated tests and handling of bad input
  • Code quality: structure, readability, typing and linting
  • Security and data protection: no secrets in code, validated input, parameterised SQL
  • Quality of documentation and clarity of the presentation

Worked Examples

A selection of the visual, practical examples used in this program's lessons — each teaches a different skill.

Free Course: Python Starter

A free introduction to programming with Python: variables and input, decisions and loops, functions, lists and dictionaries, and solving a small real problem. Free, self-study, about 6 hours — no certificate. The full program above is taught live by an instructor, with practical assignments, assessments and a certificate.

  1. 1Free lesson 1Python Syntax & Setup
  2. 2Free lesson 2Control Flow: Conditions & Loops
  3. 3Free lesson 3Functions & Scope
  4. 4Free lesson 4Data Structures: Lists, Dicts & Sets
  5. 5Free lesson 5Problem Solving with Python
  6. Final checkQuick Quiz — Python Basics
Open the free course

Tools & Technologies

Primary Tools

  • Python 3 — The language itself — the current Python 3 release from python.org Practice: Everything from first scripts to deployed applications
  • VS Code or Thonny — VS Code for most learners; Thonny for older laptops and fully offline labs Practice: Writing, running and debugging Python code
  • Git and GitHub — Version control and a public portfolio of work Practice: Commits, repositories, READMEs and code review

Supporting Tools

  • pip and venv — Installing packages in isolated, reproducible environments Practice: requirements.txt, offline package caches
  • openpyxl, requests and pandas — Excel automation, web API access and data analysis Practice: Office automation, API clients, data cleaning and summaries
  • SQLite and DB Browser for SQLite — A serverless SQL database ideal for training and small offline-first apps Practice: Table design, SQL queries, transactions

Professional / Industry Tools

  • pytest, ruff and mypy — Automated testing, linting and type checking used in professional teams Practice: Test-first bug fixing and clean, typed code
  • Flask — A lightweight web framework for JSON APIs and small web back ends Practice: Routing, validation, configuration and API security basics
  • Jupyter / Google Colab — Notebooks for data analysis; Colab when bandwidth allows Practice: Exploratory analysis and charting

Career Opportunities

  • Junior Python / backend developer
  • Automation or data-processing specialist for a business or NGO
  • Freelance script developer for local organizations
  • Foundation for further study in data science or AI

Practical Projects

  • Shop Sales Calculator — a console program with SSP/USD totals (Beginner level project)
  • Beneficiary Data Cleaner and Report Generator — CSV validation, de-duplication and an Excel summary (Intermediate level project)
  • Tested Inventory API — a Flask + SQLite API with a pytest suite (Advanced level project)
  • Deployed Python application for a real client brief (final project)

Problem-Solving Focus

Problem: A script that worked fine on small test data crashes or runs very slowly on a larger, real dataset

Approach: Profile the code to find the actual bottleneck rather than guessing, and reach for the right data structure (e.g. a set for membership checks instead of a list) or a library built for the task.

Problem: A function silently produces wrong results because a mutable default argument is being modified unexpectedly across calls

Approach: Understand Python's argument-passing and mutability rules explicitly, and use immutable defaults or explicit copies to avoid this classic, easy-to-miss bug.

Problem: Multiple people work on the same Python project and keep breaking each other's environment with conflicting package versions

Approach: Use a virtual environment (venv) and a requirements file per project, so each project's dependencies stay isolated and reproducible.

Problem: A working script needs to be handed off to someone else, and it's unclear whether it still works correctly after changes

Approach: Write tests with pytest for the script's core logic, so future changes can be verified automatically instead of manually re-checking by hand.