Python Programming Fundamentals Training Course

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

Before you join: Participants should be comfortable using a computer, managing files and folders, and working with basic tables in spreadsheets.

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 and service data into reliable analysis, repeatable reports and small automation tools. Many analysts still depend on manual spreadsheet steps, copied extracts and undocumented calculations that are difficult to check or rerun. A sound foundation in Python allows staff to inspect data systematically, apply consistent rules and produce work that colleagues can review.

This 10-day instructor-led course teaches Python programming from core syntax through practical data analysis. Participants work with variables, control flow, functions, collections, files, CSV and JSON data, pandas DataFrames, charts, APIs, SQL queries, testing and package management. They learn to write readable scripts, diagnose errors, clean inconsistent datasets, calculate measures, group and summarise records, and present findings with appropriate visualisations.

Teaching combines short technical briefings with guided coding, case-based analysis, peer review and structured troubleshooting. Cases can be adapted to banking transactions, programme monitoring data, procurement records, HR datasets, service performance or customer data. Participants progressively build an analysis project and leave with a documented Python data-analysis workflow, including reusable functions, data-quality checks, charts and a management-ready findings summary.

The course suits professionals who need to analyse data or automate recurring tasks but do not yet require advanced software engineering or machine-learning expertise. It is appropriate for analysts, reporting staff, business professionals, digital teams and technical specialists moving into data-focused work.

What you will be able to do

  • Write readable Python scripts using variables, control flow, functions and collections
  • Inspect and correct common syntax, runtime and logical errors using debugging techniques
  • Import, clean and validate CSV and JSON datasets with pandas
  • Transform tabular data using filtering, joins, grouping, aggregation and pivot tables
  • Create clear analytical charts with matplotlib and seaborn
  • Retrieve structured data from REST APIs and process JSON responses
  • Query relational data with SQL and combine query outputs with Python analysis
  • Produce a documented end-to-end Python analysis project with tested reusable code

Benefits of attending

For you

  • Replace repetitive spreadsheet preparation with reusable Python scripts
  • Build confidence reading, writing and correcting practical Python code
  • Produce auditable data transformations that colleagues can inspect and rerun
  • Create charts and summaries directly from structured source data
  • Develop a portfolio-ready Python analysis project with documentation

For your organisation

  • Reduce manual effort in recurring data preparation and reporting processes
  • Improve consistency of data-cleaning rules across analyst teams
  • Create traceable calculations that support review and audit requirements
  • Shorten the path from raw extracts to management-ready analysis
  • Build internal capability to use APIs, databases and structured data sources

Course modules

19 modules over 10 days

Participants can configure a Python workspace and apply basic code organisation conventions.

  • Python installation, interpreter selection, and version checks using python --version
  • JupyterLab notebooks, kernels, cells, and Markdown documentation conventions
  • VS Code workspace configuration, interpreter selection, and integrated terminal use
  • Script execution from command line with arguments and exit codes
  • Filesystem orientation: directories, paths, extensions, and hidden files
  • PEP 8 naming conventions for files, variables, functions, and classes

Participants can create, inspect and transform common Python values using clear expressions.

  • Variables, literals, and assignment semantics for numeric, text, and Boolean values
  • Arithmetic, comparison, and Boolean operators with precedence and parentheses
  • Formatted string literals using f-strings, format specifiers, and expressions
  • Type conversion with int(), float(), str(), and bool() functions
  • Inspecting values and types through print(), type(), and repr()
  • Comments, docstrings, and readable expressions that communicate programmer intent

Participants can control program execution using conditions, iteration and loop-management statements.

  • if, elif, and else branches for rule-based decision logic
  • Boolean conditions combining comparison operators, membership tests, and logical operators
  • for loops processing sequences, ranges, dictionaries, and DataFrame columns
  • while loops with termination conditions and defensive loop design
  • break, continue, and pass statements for controlled iteration behaviour
  • Enumerate and zip functions for indexed parallel iteration
  • List comprehensions for concise filtering and transformation of sequences

Participants can write reusable functions with parameters, return values and clear documentation.

  • Function definitions using def, parameters, arguments, and return statements
  • Positional, keyword, default, and variable-length function arguments
  • Local and global scope rules for variables and names
  • Docstrings describing function purpose, inputs, outputs, and assumptions
  • Input validation using conditional checks and informative error messages
  • Refactoring repeated calculation steps into focused reusable functions

Participants can select and manipulate appropriate Python collections for analytical tasks.

  • Lists for ordered records, indexing, slicing, appending, and sorting
  • Tuples for fixed collections and multi-value function returns
  • Dictionaries for key-value mappings, lookups, updates, and iteration
  • Sets for unique values, membership testing, and duplicate detection
  • Nested collections representing records, categories, and hierarchical source data
  • Choosing list, dictionary, set, or tuple structures for requirements

Participants can identify common program failures and apply structured debugging methods.

  • SyntaxError, NameError, TypeError, KeyError, and IndexError diagnosis
  • Reading traceback messages from final exception to source line
  • try, except, else, and finally blocks for anticipated failures
  • Raising ValueError exceptions when inputs breach stated rules
  • Debugger breakpoints, variable inspection, and step-through execution in VS Code
  • Assertions for checking assumptions during calculations and data transformation

Participants can read, write and validate local text-based data files safely.

  • pathlib Path objects for portable file and directory handling
  • Reading text files with encoding, newline, and context-manager controls
  • Writing output files with explicit paths and overwrite safeguards
  • String methods for trimming whitespace, splitting fields, and replacing values
  • Regular expressions for structured pattern matching and text validation
  • File existence checks and informative handling of missing source files

Participants can import and export common structured data formats with appropriate checks.

  • CSV parsing with headers, delimiters, quoted fields, and missing values
  • JSON objects and arrays mapped to Python dictionaries and lists
  • json.load(), json.loads(), json.dump(), and json.dumps() usage
  • Schema inspection for nested JSON records and optional fields
  • Encoding dates, identifiers, and null values during data exchange
  • Exporting cleaned datasets with documented filenames and version dates

Participants can create, inspect and select data in pandas DataFrames.

  • Creating DataFrames from CSV files, dictionaries, and Excel worksheets
  • DataFrame dimensions, column names, dtypes, and memory-use inspection
  • head(), tail(), sample(), info(), and describe() for initial profiling
  • Selecting columns with brackets, loc[], iloc[], and boolean masks
  • Sorting records with sort_values() and stable multi-column sort keys
  • Renaming columns and standardising field names for downstream analysis
  • Copying DataFrames safely to avoid unintended assignment behaviour

Participants can clean inconsistent tabular data and document quality-control decisions.

  • Missing-value profiling with isna(), notna(), and missingness percentages
  • Handling nulls through deletion, imputation, flags, and business rules
  • Duplicate detection using duplicated() and defined record-key combinations
  • Converting text dates, currencies, percentages, and categorical fields
  • String normalisation using strip(), case conversion, and replacement dictionaries
  • Outlier screening with descriptive statistics, thresholds, and distribution plots
  • Data-quality checks for ranges, permitted values, and cross-field consistency

Participants can transform datasets and combine sources using reproducible pandas operations.

  • Derived columns built with vectorised arithmetic and conditional logic
  • apply() use cases, limitations, and vectorised alternatives
  • merge() joins using keys, join types, cardinality, and validation
  • concat() for stacking compatible datasets by rows or columns
  • pivot(), pivot_table(), melt(), and stack() for reshaping tabular data
  • Datetime accessors for periods, weekdays, elapsed time, and reporting months
  • Method chaining for readable multi-step DataFrame transformation pipelines

Participants can calculate grouped measures and interpret tabular analytical summaries.

  • groupby() aggregation using count, sum, mean, median, minimum, and maximum
  • Named aggregation syntax for clearly labelled summary measures
  • Cross-tabulations with crosstab() for category and frequency analysis
  • Percentages, rates, shares, and denominators for performance measures
  • Ranking records with rank() and defined tie-handling methods
  • Rolling averages and cumulative totals for time-series reporting
  • Validating aggregated totals against source records and control figures

Participants can create and refine charts that answer defined analytical questions.

  • Chart selection based on comparison, distribution, composition, and trend questions
  • matplotlib figure, axes, labels, titles, legends, and annotation controls
  • seaborn bar, line, scatter, box, and histogram chart patterns
  • Sorting categories and limiting labels for readable comparison charts
  • Colour choices, reference lines, and scales that avoid misleading interpretation
  • Exporting publication-ready charts with dimensions, resolution, and filenames
  • Writing concise chart captions that state finding, measure, and timeframe

Participants can organise Python code into modules and simple classes for maintainability.

  • Import statements, module namespaces, aliases, and import-path behaviour
  • Creating utility modules for shared functions and configuration values
  • The __name__ == '__main__' pattern for executable scripts
  • Classes, objects, attributes, methods, and constructors using __init__
  • dataclass definitions for structured records with typed fields
  • Separating data access, transformation, analysis, and presentation code
  • Project folder conventions for source code, data, outputs, and documentation

Participants can manage project dependencies and test critical Python functions.

  • Virtual environments created with venv for isolated project dependencies
  • pip install, upgrade, freeze, and requirements.txt dependency management
  • Semantic versioning principles for package and project release decisions
  • pytest test functions using arrange, act, and assert structure
  • Boundary, normal, and invalid input cases for calculation functions
  • Fixtures and temporary files for repeatable data-processing tests
  • Code review checks covering readability, duplication, exceptions, and test coverage

Participants can retrieve, validate and process data from REST API endpoints.

  • REST API concepts: endpoints, resources, methods, headers, and status codes
  • GET requests using requests with parameters, timeouts, and response checks
  • Authentication patterns using API keys, tokens, and environment variables
  • Parsing JSON responses into DataFrames and normalised tables
  • Pagination handling for multi-page API result sets
  • Rate limits, retries, and error logging for reliable data retrieval
  • Documenting source URLs, retrieval dates, parameters, and data limitations

Participants can query relational data with SQL and analyse results in Python.

  • Relational tables, primary keys, foreign keys, and normalised database structures
  • SELECT, WHERE, ORDER BY, LIMIT, and DISTINCT query clauses
  • INNER JOIN and LEFT JOIN queries for combining related tables
  • GROUP BY, HAVING, and aggregate functions for database summaries
  • Parameterized SQL queries to prevent injection and preserve data types
  • sqlite3 connections, cursors, transactions, and connection closure
  • Loading SQL query results into pandas with read_sql_query()

Participants can prepare a documented, reviewable workflow for recurring analytical work.

  • Analytical question framing, source inventory, assumptions, and acceptance criteria
  • Configuration files for paths, reporting periods, thresholds, and parameters
  • Logging events, warnings, record counts, and processing outcomes
  • Git commits, branches, pull requests, and meaningful change messages
  • README files covering setup, data inputs, execution steps, and outputs
  • Output validation checklist for totals, charts, labels, and confidentiality
  • Stakeholder-ready findings summaries with evidence, caveats, and recommended actions

Participants can build, review and present a complete documented Python analysis project addressing a defined business question.

  • Problem statement defining decisions, users, measures, and analytical boundaries
  • Source-data assessment covering completeness, quality risks, and field definitions
  • Python pipeline integrating import, cleaning, transformation, and validation functions
  • Pandas analysis calculating agreed measures, segments, trends, and exceptions
  • Visual evidence selected and formatted for stated stakeholder questions
  • pytest checks covering critical calculations, transformations, and expected outputs
  • Peer code review against PEP 8, documentation, and reproducibility criteria
  • Presentation of findings, limitations, recommendations, and next analytical steps

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

What you take back to work

  1. Python data-analysis project template
  2. Pandas data-cleaning checklist
  3. Reusable function and test suite
  4. Data-quality validation ruleset
  5. Analytical chart selection guide
  6. Reproducible reporting workflow plan

Who should attend

  • Data Analyst — needs repeatable methods for cleaning, analysing and reporting data
  • Business Analyst — requires Python to investigate operational and customer datasets
  • Financial Analyst — wants auditable calculations beyond spreadsheet-only models
  • Monitoring and Evaluation Officer — needs reproducible analysis of programme indicators
  • Reporting Specialist — automates recurring extracts, checks and management reports
  • IT Professional — builds practical Python skills for data-focused technical work

Skills and tools covered

Python scriptingData cleaningPandas analysisData visualisationAPI integrationCode testing

Tools and standards

Python, JupyterLab, Visual Studio Code, pytest

How the course runs

Training methodology

Each module combines short instructor briefings with live code walkthroughs and guided application. Participants work through realistic datasets, diagnose deliberately introduced data and code issues, and compare alternative approaches during peer review. Group tasks focus on reading requirements, selecting appropriate Python methods and explaining analytical choices. Simulated stakeholder requests build experience of translating questions into reproducible analysis. Participants maintain an individual project throughout the course and complete an application plan for their own reporting or data-processing work.

Requirements and prerequisites

Participants should be comfortable using a computer, managing files and folders, and working with basic tables in spreadsheets. Familiarity with simple formulas, percentages and charts is useful because examples involve data analysis. No previous programming experience is required. Participants do not need prior knowledge of statistics beyond common descriptive measures, databases, command-line tools or software development methods. Those who have written small scripts can still benefit by strengthening core techniques, coding discipline and pandas-based data analysis.

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

No prior programming experience is required. You should be comfortable using files and folders and working with basic spreadsheet tables, formulas and charts.

Bring a laptop that permits installation of Python, JupyterLab and VS Code, or request your organisation's approved setup instructions before the course. Participants may also bring a non-sensitive work dataset or reporting problem for application planning.

It is designed for analysts, reporting professionals, finance staff, monitoring specialists, business analysts and IT professionals. It suits people who need practical programming for data work rather than advanced software engineering.

This course establishes the programming, data handling and analytical workflow skills needed before machine learning. It focuses on writing reliable Python code, cleaning data, analysis, charts, APIs, SQL and reproducible reporting.

Participants can automate repeatable data preparation, validate incoming files, calculate recurring measures and generate charts from source data. The capstone structure can be adapted to a monthly report, service-performance review, financial analysis or programme dataset.

Training runs from 08:30 to 16:30 each day, providing about 6.5 contact hours daily. The first part establishes Python foundations and file handling, while later modules focus on pandas, visualisation, APIs, SQL, testing and the capstone project.

Questions about this course?

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