Python Programming Training Course

Duration 10 days 19 modules · 65 contact hours
Level Intermediate Certificate on completion
Who attends Data Analyst, Business Intelligence Analyst and others
Fee from USD 2,200 KSh 190,000 for Kenyan organisations
Where 52 cities + online See dates by city
Next start 9 Nov 2026 Course code SD-DA-060

Before you join: Participants should already understand basic programming concepts: variables, conditions, loops and simple functions in Python or another language.

Dates & prices

Two start dates a month in every city, and live online on weekdays or weekends. Fees are per participant; classroom fees include tuition, materials, lunch and refreshments, and the certificate.

Suggest a date or city

Showing the next six months. Later dates, other cities and private deliveries for your team are available on request.

Course overview

Python is widely used to turn operational, financial, customer, service and research data into repeatable analysis. Yet many professionals inherit manual spreadsheets, fragile scripts or disconnected data extracts that are difficult to check, reuse or explain. This course addresses the practical gap between knowing basic Python syntax and producing maintainable programs that retrieve, clean, analyse, test and present business data.

Participants develop intermediate Python programming capability through structured work with functions, data structures, files, exceptions, object-oriented design, testing, databases, APIs and analytical libraries. They learn to write readable code using PEP 8 conventions, organise work into modules and packages, manage dependencies, inspect data quality, build pandas transformations and create reproducible analytical outputs. The course also covers SQL integration, JSON APIs, logging, debugging and selected performance techniques.

Teaching combines short instructor briefings with guided coding, case work, code reviews, group problem-solving and individual application planning. Cases can be adapted to banking transactions, public-sector service records, NGO programme monitoring, supply-chain data or customer operations. Participants leave with a tested Python analytics project containing documented source code, data validation steps, analytical outputs, visualisations and a handover guide suitable for further development.

The course suits analysts, technical specialists and professionals who already understand basic programming concepts and need to use Python confidently for data analysis, automation and reporting. It is also suitable for teams moving recurring spreadsheet-based processes into controlled, reviewable Python workflows.

What you will be able to do

  • Write maintainable Python programs using PEP 8, functions, modules and packages
  • Select and manipulate Python collections using appropriate iteration and comprehension techniques
  • Handle files, exceptions and logs to create traceable data-processing scripts
  • Build reusable classes and data models using object-oriented programming principles
  • Test Python code with pytest fixtures, assertions and boundary-case scenarios
  • Transform, validate and analyse tabular data using pandas and NumPy
  • Retrieve and combine data from SQL databases and JSON REST APIs
  • Present a documented Python analytics project with reproducible outputs and review evidence

Benefits of attending

For you

  • Produce repeatable Python analyses instead of manual spreadsheet processing
  • Diagnose errors using tracebacks, logging and structured debugging methods
  • Build a portfolio-ready analytics project with documented source code
  • Review colleagues' Python code against PEP 8 and testing criteria
  • Apply for analyst and technical roles requiring Python data skills

For your organisation

  • Reduce manual effort in recurring data extraction, cleaning and reporting tasks
  • Create auditable analytical scripts with validation checks and documented assumptions
  • Improve consistency between analysts working from shared data sources
  • Identify data-quality issues before figures enter management reports
  • Build internal capability to connect databases, APIs and analytical outputs

Course modules

19 modules over 10 days

Participants can configure a Python workspace and produce readable code using agreed conventions.

  • Python interpreter workflow, scripts, notebooks, REPL, and virtual environments
  • PEP 8 naming, imports, whitespace, docstrings, and module layout
  • Variables, built-in types, identity, mutability, and assignment semantics
  • Formatted strings, numeric operators, comparisons, and Boolean expression evaluation
  • Inspecting objects with type(), dir(), help(), and interactive documentation
  • Installing packages with pip and recording dependencies in requirements files

Participants can express business rules through clear conditional and iterative program logic.

  • Conditional branches using if, elif, else, and guard clauses
  • for loops, while loops, break, continue, and loop else clauses
  • Truthiness, short-circuit evaluation, and compound Boolean decision rules
  • Enumerate, zip, range, and reversed for indexed iteration
  • Match statements for structured classification and dispatch logic
  • Tracing execution paths with print statements and debugger breakpoints

Participants can select and manipulate Python collection types for analytical tasks.

  • Lists, tuples, sets, and dictionaries matched to data requirements
  • List comprehensions with filters, expressions, and nested iteration
  • Dictionary methods for grouping, lookup, counting, and accumulation
  • Set operations for duplicate detection, membership, and data comparison
  • Sorting records with key functions, lambda expressions, and stability
  • Unpacking sequences and dictionaries for clearer assignment statements

Participants can design reusable functions with clear inputs, outputs and responsibilities.

  • Function signatures, positional arguments, keyword arguments, and default values
  • Return values, side effects, and single-responsibility function design
  • Type hints for parameters, return values, collections, and optional values
  • Input validation using assertions, explicit checks, and meaningful errors
  • Scope rules, closures, global variables, and dependency passing
  • Refactoring repeated code into small testable business-rule functions

Participants can organise Python code into importable modules and manageable project structures.

  • Module imports, aliases, namespaces, and the __main__ execution guard
  • Package directories, __init__.py files, and relative import rules
  • Project structures separating source code, tests, data, and documentation
  • requirements.txt files, version pinning, and reproducible package installation
  • Standard library modules including pathlib, datetime, collections, and statistics
  • Configuration values separated from source code using environment variables

Participants can read, write and validate common business data file formats.

  • Pathlib paths for portable file discovery, creation, and directory traversal
  • Context managers for safe file opening, closing, and encoding control
  • CSV reading and writing with csv.DictReader and csv.DictWriter
  • JSON serialisation, deserialisation, nested objects, and schema inspection
  • Date parsing with datetime, strptime, timezone awareness, and ISO 8601
  • Data validation checks for missing fields, formats, ranges, and duplicates

Participants can diagnose failures and build traceable error-handling into Python scripts.

  • Traceback reading to locate exception types, files, lines, and causes
  • try, except, else, and finally blocks for controlled recovery
  • Raising ValueError, TypeError, and custom exceptions for invalid inputs
  • Logging levels, handlers, formatters, and persistent execution records
  • Breakpoint debugging with pdb, variable inspection, and step execution
  • Defensive programming for missing files, malformed records, and failed connections

Participants can model related data and behaviour using classes and dataclasses.

  • Classes, instances, attributes, methods, and constructor responsibilities
  • Dataclasses for concise records, default values, and type annotations
  • Encapsulation through properties, validation methods, and controlled state
  • Inheritance, composition, and protocol selection for related behaviours
  • Special methods including __repr__, __str__, __eq__, and ordering
  • Domain models for transactions, customers, cases, and service records

Participants can create automated tests and review Python code against maintainability criteria.

  • pytest test discovery, test naming, assertions, and failure interpretation
  • Fixtures for repeatable test data, setup, teardown, and dependencies
  • Parametrized tests covering valid inputs, boundaries, and error conditions
  • Mocking external services, files, and time-dependent behaviour
  • Code review criteria covering readability, duplication, exceptions, and documentation
  • Static checks with ruff formatting, linting, and import validation

Participants can perform efficient numerical operations using NumPy arrays and vectorisation.

  • NumPy arrays, dtypes, shapes, dimensions, and broadcasting rules
  • Vectorised arithmetic replacing repeated Python loops over numeric data
  • Boolean masks for filtering values, flags, and conditional calculations
  • Aggregation functions for totals, averages, percentiles, and missing values
  • Indexing, slicing, reshaping, stacking, and array dimension management
  • Random number generation for sampling, simulation, and test datasets

Participants can load, inspect and prepare tabular data with pandas DataFrames.

  • DataFrame creation from CSV, Excel, dictionaries, and SQL query results
  • Data types, indexes, column selection, and row filtering methods
  • Missing-value treatment using isna, fillna, dropna, and documented rules
  • String cleaning with str methods, regular expressions, and normalisation
  • Datetime conversion, period grouping, and time-based filtering operations
  • Duplicate identification using duplicated, drop_duplicates, and business keys

Participants can transform raw records into analysis-ready tables and measures.

  • assign and pipe methods for readable multi-step transformation workflows
  • Groupby aggregations for counts, sums, means, and custom measures
  • merge operations using keys, join types, validation, and mismatch checks
  • Pivot tables for cross-tabulated metrics, subtotals, and reporting views
  • Melt and explode operations for normalising wide and nested datasets
  • Window calculations using shift, rolling, rank, and cumulative methods

Participants can investigate patterns and communicate findings through appropriate visualisations.

  • Descriptive statistics for distribution, central tendency, spread, and outliers
  • Correlation analysis, confounding cautions, and appropriate interpretation limits
  • Matplotlib charts for trends, comparisons, distributions, and category rankings
  • Chart labelling, scales, annotations, and colour choices for readable reporting
  • Outlier investigation using quantiles, IQR rules, and source-record checks
  • Analytical narrative linking question, method, evidence, limitations, and action

Participants can retrieve and combine relational data through parameterised SQL queries.

  • Relational tables, primary keys, foreign keys, and normalised structures
  • SELECT queries with WHERE, ORDER BY, LIMIT, and calculated columns
  • INNER JOIN, LEFT JOIN, aggregation, HAVING, and duplicate diagnosis
  • Parameterised queries preventing SQL injection and preserving data types
  • sqlite3 connections, cursors, transactions, and context-managed database access
  • Loading query results directly into pandas DataFrames for analysis

Participants can request, validate and process data from JSON REST APIs.

  • HTTP methods, status codes, headers, query parameters, and request bodies
  • requests library calls with timeouts, retries, and error handling
  • Authentication patterns using API keys, bearer tokens, and environment variables
  • JSON response traversal, pagination, nested records, and schema changes
  • Rate-limit handling with backoff, caching, and request logging
  • API data validation before merging with internal analytical datasets

Participants can identify common performance bottlenecks and improve data-processing efficiency.

  • Profiling functions with timeit, cProfile, and focused performance measurements
  • Algorithmic complexity expressed through Big O time and space costs
  • Generator expressions and yield for memory-efficient sequential processing
  • Chunked CSV processing for files exceeding available memory capacity
  • Vectorisation choices compared with apply, iterrows, and Python loops
  • Caching repeated calculations with functools.lru_cache and controlled invalidation

Participants can structure an analytical workflow that others can rerun and review.

  • Analysis folders separating raw data, processed data, code, outputs, and notes
  • README documentation covering purpose, setup, inputs, assumptions, and execution
  • Data dictionaries defining fields, types, permitted values, and ownership
  • Version control concepts: commits, branches, diffs, merges, and review history
  • Configuration files for paths, dates, thresholds, and environment-specific settings
  • Reproducibility checks confirming identical inputs produce expected output files

Participants can plan an end-to-end Python solution for a defined analytical requirement.

  • Problem framing with stakeholders, decisions, users, metrics, and acceptance criteria
  • Source-data assessment covering provenance, quality, access, and refresh frequency
  • Transformation plan mapping raw fields to validated analytical measures
  • Function and module design for ingestion, validation, analysis, and reporting
  • Test plan covering business rules, boundary conditions, and exception paths
  • Output specification for tables, charts, files, logs, and user documentation

Participants can build, review and present a complete documented Python analytics project from source data to decision-ready outputs.

  • Build a Python project importing, validating, transforming, and analysing source data
  • Apply functions, classes, pandas workflows, and exception handling appropriately
  • Create pytest tests for calculations, data rules, and failure conditions
  • Generate tables and visualisations answering defined stakeholder questions clearly
  • Conduct peer code review using PEP 8, documentation, and test evidence
  • Present findings, limitations, assumptions, and handover instructions to reviewers

Exercises and examples are adapted to each cohort's sectors and roles.

What you take back to work

  1. Python analytics project template
  2. PEP 8 code review checklist
  3. Data validation rule catalogue
  4. pytest test suite template
  5. pandas transformation pattern library
  6. Analytics project handover guide

Who should attend

  • Data Analyst — needs repeatable analysis beyond spreadsheet formulas and manual extracts
  • Business Intelligence Analyst — needs Python for data preparation and reporting automation
  • Financial Analyst — needs controlled processing of transactions, budgets and forecast data
  • Operations Analyst — needs scripts for recurring service, supply-chain or performance data
  • Research Officer — needs reproducible methods for cleaning and analysing research datasets
  • Software Developer — needs stronger Python practices for data-oriented applications

Skills and tools covered

Python program designData transformationAutomated testingSQL and API integrationData visualisationCode review

Tools and standards

Python, JupyterLab, pandas, pytest

How the course runs

Training methodology

The course uses short technical briefings followed by guided coding, case-based tasks and structured code reviews. Participants work with realistic CSV files, database extracts and API responses, progressing from small functions to a complete analytics project. Group exercises focus on diagnosing defects, selecting data structures and reviewing code against stated criteria. Instructor demonstrations show alternative implementations and debugging methods. Application planning helps participants identify a recurring workplace process suitable for a controlled Python solution after the course.

Requirements and prerequisites

Participants should already understand basic programming concepts: variables, conditions, loops and simple functions in Python or another language. They should be comfortable working with files and tabular data in a business setting, and able to install approved software on their course device or use the supplied online environment. Prior Python project experience is helpful but not required. No advanced mathematics, statistics, software engineering degree, database administration experience or prior use of pandas is assumed. The course does not begin as a first introduction to programming.

A typical training day

08:30 – 10:30First session
10:30 – 10:45Refreshment break
10:45 – 12:30Second session
12:30 – 13:30Lunch and networking
13:30 – 15:00Third session
15:00 – 15:15Refreshment break
15:15 – 16:30Workshop and daily review

Live online deliveries follow the same structure in East Africa Time, with shorter screen blocks and longer breaks.

What the fee includes

  • Instruction by a practitioner facilitator
  • Full course workbook and materials
  • Exercise files, templates and case studies
  • Refreshments and lunch on classroom deliveries
  • Certificate of completion
  • Post-course application plan

Frequently asked questions

You should understand variables, conditions, loops and simple functions, whether learned in Python or another language. This course develops those foundations into maintainable programs and data-analysis workflows rather than teaching programming from first principles.

Bring a laptop capable of running Python and installing approved packages, unless your organisation provides a managed training environment. Participants should also bring examples of recurring data tasks or reporting problems they would like to improve.

It is suited to analysts, technical specialists, researchers and developers who need Python for data preparation, automation and analysis. It is particularly useful for people moving from spreadsheet-based processing to documented scripts.

This course concentrates on professional Python programming and practical analytics workflows: code structure, testing, files, databases, APIs, pandas and visualisation. It does not focus on predictive modelling, statistical inference or machine learning algorithms.

You can automate recurring extracts, validate incoming files, combine database and API data, and produce repeatable reports. The project structure, test template and handover guide can be adapted to a workplace reporting process.

Each training day runs from 08:30 to 16:30 and provides about 6.5 contact hours. The first part establishes programming and data-handling foundations; the later modules focus on analytics, integration, testing, reproducibility and a final project presentation.

Questions about this course?

Ask about dates, fees, group bookings or running it for your team. Our training team replies by email.