| Module | Lesson Dates | Lesson Description | Syntax | Delivery | Sumission Deadline Where Applicable |
| M001: Database Theory Essentials for SQL Users | SQL AMA Cohort 2 Onboarding Session 23/02/2026 7:30PM - 9:00PM | Program Onboarding Session - Align Expectations and Assesment rules. Discuss SQL Engines and Clients. Install Dbeaver and Explore the Dbeaver Interface. | N/A | Virtual - Training Session Mandatory | N/A |
| M001: Database Theory Essentials for SQL Users | Lesson 1 24/02/2026 7:30PM - 9:00PM | Introduction to Relational Databases - Introduction to Key relational DB theories and the relational model. Evolving from Spreadsheets to SQL. | DDL - CREATE, ALTER, DROP, TRUNCATE DML - INSERT, UPDATE, DELETE, MERGE DQL - SELECT | Virtual - Training Session Recommended | N/A |
| M001: Database Theory Essentials for SQL Users | Lesson 2 26/02/2026 7:30PM - 9:00PM | Database Keys, Constraints, Normalization & SQL Data Types | DB THEORY: PRIMARY KEY, FOREIGN KEY, REFERENCES, UNIQUE, NOT NULL DATA TYPES: INTEGER, BIGINT, VARCHAR(n), TEXT, DATE, TIMESTAMP, BOOLEAN, DECIMAL(precision, scale), NUMERIC(precision, scale), :: | Virtual - Training Session Recommended | N/A |
| M001: Database Theory Essentials for SQL Users | Lesson 3 28/02/2026 7:30PM - 9:00PM | M001 Lab - Define a relational entity and enforce integrity with keys and constraints. Explore normalization concepts discussed in Training Sessions. Experiment with various SQL Data Types and DML|DDL syntax. | N/A | Virtual - Code Along Recommended | 5/03/2026 5:00PM |
| M002: SQL Queries - Building Blocks | Lesson 4 03/03/2026 7:30PM - 9:00PM | Anatomy of an SQL Query | FROM, JOIN, WHERE, GROUP BY, HAVING, SELECT, ORDER BY | Virtual - Training Session Recommended | N/A |
| M002: SQL Queries - Building Blocks | Lesson 5 05/03/2026 7:30PM - 9:00PM | SQL Logical Processing Order - Deconstructing Order of Appearance VS Execution of SQL Queries | EXPLAIN, EXPLAIN ANALYZE | Virtual - Training Session Recommended | N/A |
| M002: SQL Queries - Building Blocks | Lesson 6 07/03/2026 7:30PM - 9:00PM | M002 Lab - Writing SQL queries and exploring query anatomy and schema-level querying extensivey (how tables live within schemas and how queries reference them. Illustrating SQL’s logical execution order, showing how each clause transforms the intermediate result set and why queries that look correct can still produce incorrect results. | N/A | Virtual - Code Along Mandatory | 12/03/2026 5:00PM |
| M003: Filtering, Aggregation, & Metrics | Lesson 7 10/03/2026 7:30PM - 9:00PM | Filtering Correctly - Apply Row-Level filters before aggregation. Valid and Invalid filtering conditions. Handling Missing or Empty fields. | WHERE...AND|OR, IN, BETWEEN, IS NULL, IS NOT NULL | Virtual - Training Session Recommended | N/A |
| M003: Filtering, Aggregation, & Metrics | Lesson 8 12/03/2026 7:30PM - 9:00PM | Defining the SQL Aggregation Grain | COUNT, SUM, AVG, MIN, MAX, GROUP BY, HAVING | Virtual - Training Session Recommended | N/A |
| M003: Filtering, Aggregation, & Metrics | Lesson 9 14/03/2026 7:30PM - 9:00PM | M003 Lab - Designing KPIs that are aggregated on different levels of detail. Controlling aggregation and handling edge cases. Introduce Mandatory Scored Task 001. | N/A | Virtual - Code Along Recommended | 21/03/2026 5:00PM |
| CATCH UP WEEK | Lesson 10 17/03/2026 7:30PM - 9:00PM | Review Syntax so Far Session 001 | N/A | Virtual - Support Session Optional | N/A |
| CATCH UP WEEK | Lesson 11 19/03/2026 7:30PM - 9:00PM | Review Syntax so Far Session 002 | N/A | Virtual - Support Session Optional | N/A |
| CATCH UP WEEK | Lesson 12 21/03/2026 7:30PM - 9:00PM | CUW Lab - Respond to the queries in Mandatory Scored Task 001. Publishing work so far on Github. | N/A | Virtual - Training Session Mandatory | N/A |
| M004: Core SQL Constructs For Data Preparation; Date, String & Numeric Functions | Lesson 13 24/03/2026 7:30PM - 9:00PM | Core SQL Constructs - Date Functions. Extracting meaningful date/time fields. Date Calcuations. Preparing time-based dimensions. | DATE, TIMESTAMP, EXTRACT(field FROM date_expression), DATE_TRUNC(unit, date_expression), date_expression +- INTERVAL 'naming_string', CURRENT_DATE, CURRENT_TIMESTAMP, CAST(value AS DATE), CAST(value AS TIMESTAMP), value::DATE, value::TIMESTAMP | Virtual - Training Session Recommended | N/A |
| M004: Core SQL Constructs For Data Preparation; Date, String & Numeric Functions | Lesson 14 26/03/2026 7:30PM - 9:00PM | Core SQL Constructs - String Functions. Cleaning and Standardizing textual data. Manipulating and deriving values from strings. | TRIM(string), LTRIM(string), RTRIM(string), LOWER(string), UPPER(string), SUBSTRING(string FROM start FOR length), SUBSTRING(string, start, length), CONCAT(string1, string2 [, ...]), LENGTH(string), LPAD(string, length, pad_string), RPAD(string, length, pad_string), CAST(value AS VARCHAR), CAST(value AS TEXT), value::VARCHAR, value::TEXT | Virtual - Training Session Recommended | N/A |
| M004: Core SQL Constructs For Data Preparation; Date, String & Numeric Functions | Lesson 15 28/03/2026 7:30PM - 9:00PM | Core SQL Constructs - SQL Operators and Numeric Functions. Peforming safe, predictable arithmetics. NULL-related erros. | Logical and Comparison Operators. + - * / % ^, COALESCE(value1, value2 [, ...]), NULLIF(value1, value2), CAST(value AS NUMERIC_TYPE), value::NUMERIC_TYPE, ROUND(number [, precision]), ABS(number), CEILING(number), FLOOR(number), MOD(number, divisor), POWER(number, exponent) | Virtual - Training Session Recommended | N/A |
| M005: Working with Multiple Tables using JOINs | Lesson 16 31/03/2026 7:30PM - 9:00PM | Fundamentals of Joining Logic. Join Conditions VS Filters. | JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, ON | Virtual - Training Session Recommended | N/A |
| M005: Working with Multiple Tables using JOINs | Lesson 17 02/04/2026 7:30PM - 9:00PM | Nested JOINs, Chained JOINs. Row Loss and Data Duplication. | N/A | Virtual - Training Session Recommended | N/A |
| M005: Working with Multiple Tables using JOINs | Lesson 18 04/04/2026 7:30PM - 9:00PM | M005 Lab - Working with JOINs on normalized tables CORRECTLY. Identifying join related logical Errors. Validating the choice in different JOIN TYPES. Introducing Mandatory Scored Task 002. | N/A | Virtual - Code Along Mandatory | 09/04/2026 5:00PM | Mandatory Scored Task 002 - 14/04/2026 5:00PM |
| M006: Writing Readable Queries | Lesson 19 07/04/2026 7:30PM - 9:00PM | Introduction to Subqueries; Structuring and Expressing complex logic in clear, correct, mainatinable order. When and Where Subqueries can be used. | SELECT (subquery), FROM (subquery) AS alias, WHERE column IN (subquery), WHERE EXISTS (subquery)... | Virtual - Training Session Recommended | N/A |
| M006: Writing Readable Queries | Lesson 20 09/04/2026 7:30PM - 9:00PM | Introduction to Common Table Expressions - Improving query readability using named query blocks. Replacing nested query logic with cleaner logic. | WITH cte_name AS ( SELECT ...) SELECT ... FROM cte_name; | Virtual - Training Session Recommended | N/A |
| M006: Writing Readable Queries | Lesson 21 11/04/2026 7:30PM - 9:00PM | Review Syntax so Far Session 003 | N/A | Virtual - Support Session Optional | N/A |
| M007: Window Functions | Lesson 22 14/04/2026 7:30PM - 9:00PM | Introduction to Window Functions Syntax. Differentiating WFs from Aggregation Functions. Partitioning and ordering result sets. Aggregate Window Functions. | OVER ()... PARTITION BY... ORDER BY ROW_NUMBER(), RANK(), DENSE_RANK() COUNT(*) OVER (...) SUM(expression) OVER (...) AVG(expression) OVER (...) MIN(expression) OVER (...) MAX(expression) OVER (...) | Virtual - Training Session Recommended | N/A |
| M007: Window Functions | Lesson 23 16/04/2026 7:30PM - 9:00PM | Conducting Cummulative and Comparative Analyses with WFs. Navigating Rows and Creating Frames. | LAG(expression [, offset [, default]]) LEAD(expression [, offset [, default]]) FIRST_VALUE(expression) LAST_VALUE(expression) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ROWS BETWEEN n PRECEDING AND CURRENT ROW ROWS BETWEEN CURRENT ROW AND n FOLLOWING ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING | Virtual - Training Session Recommended | N/A |
| M007: Window Functions | Lesson 24 18/04/2026 7:30PM - 9:00PM | M006 Lab - Writing Analytical Queries with Window Functions while producing Rankings, Running Metrics, and Comparison Metrics. Introducing Mandatory Scored Task 003. | N/A | Virtual - Code Along Mandatory | 23/04/2026 5:00PM | Mandatory Scored Task 003 - 25/04/2026 5:00PM |
| CATCH UP WEEK | Lesson 25 21/04/2026 7:30PM - 9:00PM | Review Syntax so Far Session 004 | N/A | Virtual - Support Session Optional | N/A |
| CATCH UP WEEK | Lesson 26 23/04/2026 7:30PM - 9:00PM | CUW Lab -Review of Mandatory Scored Task 002 | N/A | Virtual - Training Session Optional | N/A |
| CATCH UP WEEK | Lesson 2 25/04/2026 7:30PM - 9:00PM | CUW Lab - Review Mandatory Scored Task 003. Introducing Mandatory Scored Task 004 as Capstone Project | N/A | Virtual - Training Session Optional | Mandatory Scored Task 004 - 30/04/2026 5:00PM |
| PROJECT WEEK | Lesson 28 26/04/2026 7:30PM - 9:00PM | Project Support | N/A | Virtual - Support Session Optional | N/A |
| PROJECT WEEK | Lesson 29 27/04/2026 7:30PM - 9:00PM | Project Support | N/A | Virtual - Support Session Optional | N/A |
| PROJECT WEEK | Lesson 30 28/04/2026 7:30PM - 9:00PM | CUW Lab -Review of Mandatory Scored Task 004. Publishing on Github. | N/A | Virtual - Support Session Optional | N/A |
| Closing Ceremony | 04/05/2026 7:30PM - 9:00PM | Closing Ceremony and Showcases | N/A | Virtual Closing Ceremony | N/A |