Understand computing and solve programming problems
Explain, write, trace, debug and test code; investigate problems with documentation and experiments.
We teach you to understand a user’s problem, decide what to build and work with a team to release a product to the market. You’ll learn the programming, design and data skills to run and improve it after launch.
Curriculum developed by Samuel Owino.
Prepare for junior software-development work in a product team. Learn to take a task from brief to reviewed release, connecting technical decisions to user needs and costs.
Explain, write, trace, debug and test code; investigate problems with documentation and experiments.
Research user needs, choose what belongs in the first release and work out the costs of building and running it.
Design relational databases, query and validate data, and keep records correct when requests fail or arrive at the same time.
Connect an accessible interface, server and database, and handle errors or interrupted tasks clearly.
Write meaningful tests, enforce permissions, protect sensitive information and check AI-assisted work.
Release a product, investigate failures, restore a backup and maintain its code.
Check product measurements, produce analysis another person can reproduce and use the findings to decide what to improve.
Clarify requirements, estimate work, explain your assumptions, raise risks early, respond to reviews and hand over work others can continue.
Take a product from research and a first prototype through development, launch and improvement. Each project gives you more responsibility for the technical work and the product decisions.
Write a program, such as a booking tool, organise its code, add file storage and test its behaviour. Extend it as you learn new concepts.
Turn a user need into a working application. Design the interface, build the API and database, and track how people use the product.
Spend two weeks on each contribution to an existing project, with a host team or in a teaching codebase. A mentor reviews your work from the first task through to handover.
Work in a small team to build a product, complete a release review and launch to its first users. Use the final two weeks to act on feedback, improve the product and prepare its handover.
24 two-week phases, from computing foundations to the final project.
Weeks 1–6
Explore computing, use developer tools and turn user research into a product brief.
Build a computing map, trace a familiar task through a computer and demonstrate a logic operation. Complete practical setup checks.
Repair a broken development setup and submit a reviewed documentation change. Demonstrate the repair, explain local and remote work, and recover a mistaken edit.
Submit a product brief linking research, persona, prototype, scope, costs and KPIs. Explain and revise a recommendation when the budget, user needs or measurement assumptions change.
Weeks 7–16
Write, organise, test and debug JavaScript and TypeScript programs.
Trace, modify and write short programs, then explain their behaviour with changed input. Use Git to record clear changes and recover an edit.
Build a tested program and exchange it for a maintenance task. Submit code and run instructions, explain a design choice, repair a fault and respond to a changed requirement.
Add persistent data to your program, refactor it and compare two designs. Explain an object-oriented example, repair a data defect and show another person how to run the project.
Investigate a slow or incorrect program and test a justified change on different inputs. Complete an asynchronous exercise and explain a new debugging task.
Use diagnostics and workshops to revise earlier work. Individually trace, write, test and repair a program, and demonstrate Git and setup skills.
Weeks 17–30
Build a complete application with PostgreSQL, HTML, CSS, Node.js and React.
Model a product domain, import data and submit a schema, setup scripts, data dictionary and queries. Correct an inaccurate query result and explain the error.
Publish a static preview of your product’s main flow and test it on a small screen and with a keyboard. Revise it after a usability session, explain a design choice and repair an interaction barrier.
Connect your interface to a supplied API and investigate delays, failures and malformed responses. Trace a request, repair a fault and demonstrate useful user feedback.
Implement one flow across browser, API and database, review its contract and add integration tests to continuous integration. Implement or repair a route and explain its query.
Protect the service and investigate a double booking or repeated callback. Demonstrate a denied action, a concurrent-request test and the repair.
Rebuild a familiar browser feature in React, compare the implementations and release it to staging. Change a requirement and verify the behaviour with tests.
Complete and check the application’s core flow. In a different example, explain a query, make a full-stack change and verify a failure or permission case.
Weeks 31–42
Contribute to unfamiliar code, maintain software, analyse data and evaluate an AI feature.
Onboard, complete a small change and take it through review, testing and handover. Submit your contribution record and explain the changed code.
Deploy your application, exercise a failure and demonstrate recovery. Submit an operating guide, cost estimate and diagnostic report.
Submit a reproducible analysis with a question, data dictionary, calculations, chart and recommendation. Have a peer reproduce it, then diagnose an unfamiliar data error.
Submit metric definitions, an event contract, tracking tests, a reconciled report and a recommendation. Verify PostHog results with samples and SQL, and explain an inconsistent metric.
Build a small AI feature and record its prompts, configuration and evaluation results. Investigate errors, prompt injection, disclosure risks and service failure, then change a control and measure the effect.
Submit and explain a reviewed contribution, decision record and handover from a second unfamiliar context. Use the work to refine your CV, portfolio case study and interview explanation.
Weeks 43–48
Research a problem, build a product and launch it to its first users. Improve it using their feedback.
Submit a brief, prototype, design and working end-to-end flow. Explain your contribution and respond to a changed-condition question.
Complete the release checks with an independent reviewer. Demonstrate your implementation and complete an individual change or investigation task.
Submit the project’s brief, reviewed code, tests, release, analysis, improvement and handover. Demonstrate your contribution, explain decisions and complete an unfamiliar task.
Learn JavaScript, then TypeScript. Use Git, the terminal and automated tests throughout your development work.
HTML, CSS and React
Node.js, Express and PostgreSQL
SQL, spreadsheets and PostHog
See how teaching, practice and feedback fit together. Online and onsite students follow the same curriculum and assessment standards.
A manageable idea, a chance to try it, then time to put it to work. Support is part of the day.
Your day combines live interaction, independent work and small-group work. You won’t spend the whole day on video.
Bring back earlier learning, attempt a focused challenge and compare approaches.
Break
Interactive teaching and worked examples make the reasoning visible.
Break
Apply what you’ve learned, with checks for understanding along the way.
Lunch
Project work, practice and scheduled individual support.
Break
Develop your solution, review the work and make revisions.
Get targeted help, document your work, review progress and prepare for the next learning day.
Required preparation fits within scheduled learning time; challenges are shared in advance where useful. During project-intensive phases, targeted teaching replaces whole-class sessions you no longer need.
Your instructor introduces a manageable idea and demonstrates the reasoning. You explain, predict, investigate or modify an example before creating your own solution. Guidance reduces as your understanding grows.
In programming, that can look like this
Explain what you think the code will do.
Try it and observe what actually happens.
Work through the result and the reasoning.
Change the example and test your understanding.
Create a solution of your own.
In product or data work, you might inspect a claim, identify its assumptions, reproduce a calculation and decide what additional evidence is needed.
Short activities bring back earlier learning. You plan an approach, compare the result with what you expected and identify your next learning need. Temporary support groups address particular gaps; students are not assigned fixed ability or personality labels.
This approach draws on research on active learning, worked examples and programming instruction.
Each phase gives you space to explore the ideas, develop your work and act on feedback.
Explore the main ideas, complete small tasks, compare approaches and get early feedback.
90 minutes for communication. Use the phase’s actual work: explain a bug, interview a user, present a chart or write a delivery update.
Day 8: review-ready work is due. The last two days are for demonstrations, individual questions, practical checks and revisions.
Every student explains their own work and receives separate feedback on subject understanding and communication. Smaller practice tasks don’t all need presentations.
Routine corrections continue in the next phase’s opening practice block and are checked by its second teaching day. A prerequisite needed immediately is checked before the dependent task begins. The final phase reserves its own correction and reassessment time.
A scheduled individual meeting with your instructor, alongside help during practical work.
A guest session with a leading Kenyan engineer. Guest sessions and career workshops replace normal learning blocks, without compulsory evening work.
Learn what you can produce with assistance—and what you understand for yourself.
Use approved AI tools for explanation, exploration, feedback and development assistance. Check the output, protect confidential information and disclose assistance that materially shaped assessed work.
Follow the stated conditions, including tasks without solution-generating AI or another person’s answers. Documentation and accessibility tools remain available when the assessment permits them.
The purpose is to establish what you understand alongside what you can produce with assistance. Research on AI tutoring illustrates why these are different questions.
See the fees, requirements and application process for your preferred study option.
Join scheduled teaching, work with other students and receive instructor feedback from your own workspace.
Online fees and requirementsLearn at our Nyamarambe campus, with instructors nearby and other students working alongside you.
Onsite fees and requirements