This course is a workshop, not a book you race through.
You will read short explanations. More importantly, you will predict, run, change, and repair small examples. Those actions turn an idea you recognise into a skill you can use.
Lesson details
- Module
- AI engineering foundations
- Lesson
- 0 · How to use this course
- Difficulty
- Beginner
- Learning time
- 28 minutes
Before you start
- A web browser
- No programming or AI experience required
Skills you will gain
- Choose an appropriate depth for each lesson
- Use the run–break–tune learning loop
- Read a traceback as useful feedback
- Create a realistic weekly study plan
Why this matters
Watching someone code can feel like learning. The real test comes later: can you explain the idea, change the code, and recover when it fails?
This lesson gives you a repeatable study method. It also helps you spend your time where depth matters most.
Think of the course as a guided expedition
A course layer is a group of lessons that builds one part of your AI engineering knowledge. Foundations sit underneath later application topics.
A depth tier tells you how far a lesson expects you to go:
- Build: create the idea yourself and explain its moving parts.
- Use: apply it correctly and compare its trade-offs.
- Know: recognise it, explain its purpose, and know when to revisit it.
See the whole course
The lower layers introduce language and tools used later. If a later lesson feels as though it skipped a step, follow its prerequisite link and return when the missing idea feels clear.
Follow the learning loop
Step 1: predict
Before running code, say what you expect. A prediction gives you something concrete to compare with the result.
Step 2: run
Select Run. The interactive Python cells use PyodidePyodideA build of the CPython interpreter compiled to WebAssembly, so real Python — numpy, pandas, scikit-learn and more — runs entirely inside your browser tab with no server. It is what executes the runnable cells in this course., which runs Python inside your browser.
Step 3: break
Change one value or remove one line. This is deliberate practice: focused practice designed to expose what you do and do not yet know.
Step 4: read the feedback
When Python cannot continue, it produces a traceback. A traceback is an error report that shows where execution stopped and names the type of error.
Step 5: tune and explain
Repair the example. Then explain the cause in one sentence. If you cannot explain it yet, compare your code with the worked example and try again.
Worked example
Suppose you want to study for six hours each week:
hours_per_week = 6
weeks = 4
practice_hours = hours_per_week * weeks
print(practice_hours)
Predict the result first. Python multiplies 6 by 4, stores 24 in practice_hours, and prints:
24
Now break the code by changing weeks to "four". Quotation marks turn it into text. Multiplying text by 6 repeats it rather than performing the calculation. The unexpected output teaches you that the shape of data matters.
Tune the program by changing the value back to the number 4. Then explain the lesson: numbers and text behave differently, even when they describe the same idea.
Run the code
def study_action(minutes):
if minutes >= 20:
return (
"Run, break, and "
"repair the example."
)
return "Review six flashcards."
print(study_action(25))
print(study_action(10))Important lines
def study_action(minutes):- Creates a reusable function that receives the available minutes.
if minutes >= 20:- Checks whether there are at least twenty minutes for practical work.
return "Run, break, and repair the example."- Sends back the practical study action when the check is true.
return "Review six flashcards."- Provides a smaller revision task when fewer than twenty minutes are available.
Run the example below. Change minutes_today, predict the new message, and run it again.
Real-world AI engineering use
Common mistakes
Reading every example without changing it.
Fix — Predict first, then change one value and run the code again. The comparison reveals how the idea behaves.
Starting a different tutorial whenever a lesson becomes uncomfortable.
Fix — Write down the exact confusing term, revisit its prerequisite, and complete one small exercise before changing resources.
Treating an error message as failure.
Fix — Read the final traceback line first. Find the error type and line number, then test one repair.
Trying to complete every lesson at build depth.
Fix — Use the published depth tag. Save build-level effort for skills you need to create and debug yourself.
Knowledge check
Choose an answer. Feedback appears immediately and explains why.
Knowledge check
Practice activity
Practice · 10–20 minutes
Create your run–break–tune study card
Goal: Plan one focused study session that produces visible evidence of learning.
- Choose one lesson you will study next.
- Write one prediction you can make before running its example.
- Choose one safe change that should alter the output.
- Write what evidence will show that you repaired the example.
- Choose a realistic day and duration for the session.
Expected result: A five-line study card with a lesson, prediction, deliberate change, repair check, and scheduled time.
Optional challenge: Add a fallback five-minute revision action for a busy day.
Reveal solution
Starter template:
Lesson:
My prediction:
Change I will make:
How I will check the repair:
When I will practise:Lesson:
Python foundations
for AI applications
My prediction:
Blank messages will be removed.
Change I will make:
Move return inside the loop.
How I will check the repair:
Every useful message appears
after the fix.
When I will practise:
Tuesday, 19:00–19:20.
Fallback:
Review the six lesson flashcards.Key takeaways
- Learning is demonstrated by what you can explain, change, and repair.
- Build, use, and know tags help you spend study time deliberately.
- Predict before running so the result teaches you something specific.
- A traceback is feedback about where and why Python stopped.
- Short, regular practice is more useful than rushing for completion.
Flashcards
Flashcards
1 of 6Revision and interview questions
- Compare build, use, and know depth using one example topic.
- Why is predicting an output useful before you run code?
- How would you use a traceback to begin debugging an unfamiliar error?
- Design a twenty-minute run–break–tune session for a lesson you want to learn.
One-page sketchnote summary
Print me · one-page revision sheet
How to use this course
Main idea
This course is an interactive workshop. Use each lesson’s depth tag, then turn explanations into durable skill with the run–break–tune loop.
Core terms
- Layer — related lessons that build one part of the course
- Depth tier — the expected level of learning
- Deliberate practice — focused work on a specific skill
- Traceback — Python's error report
One picture
Code pattern
predict()
run()
change_one_thing()
observe()
repair()
explain()Watch out
- Do not only read runnable examples
- Do not tutorial-hop when work becomes difficult
- Do not treat every topic as build depth
Remember
- Predict before running
- Change one thing at a time
- Read errors as feedback
- Repair and explain
- Study at a sustainable pace
Three quick questions
- Which depth tier fits your goal?
- What will you deliberately change?
- What evidence proves you learned it?
Lesson checklist
0 of 6 completeResources
- blogTeach Yourself Programming in Ten Years — Peter NorvigThe case for depth over speed, from someone who would know. Read it before your first shortcut.
- courseNeural Networks: Zero to Hero — Andrej KarpathyThe build-it-from-scratch spirit this course shares, for the deep-learning layers specifically.
- docsPyodide documentationThe runtime that executes Python in your browser here — worth a skim so the magic feels less like magic.