Week 1 — Welcome: NorthPeak and the lab kit

5 min

This course follows one company from the first lesson to the final project. NorthPeak Manufacturing is a fictional Canadian firm that runs 40 machines on three sites: Montreal, Quebec City and Toronto. Each machine sends one sensor reading per day, and a technician writes a short note after every incident. All the data is synthetic and lives in one Git repository, the lab kit, which you will install in Exercise 1. This page presents the company, the repository and the files you will open again and again, so that every later lesson can name a file and you know where it is.

The company

NorthPeak Manufacturing runs four kinds of machines: pumps, compressors, conveyors and chillers. Each machine has an identifier from M001 to M040, a site, an installation year and a rated power. The machines run all year. When one of them fails, a technician opens an incident, repairs the machine, and writes a two-sentence description of what was found.

The question the company asks is the thread of the whole course: which machine will fail in the next seven days, and why? Weeks 2 to 7 answer it with tables and models. Weeks 8 to 13 add the technician notes, the maintenance manuals and a local language model. Weeks 14 and 15 put everything on one page for the technicians.

The lab kit

The lab kit is a public Git repository:

https://github.com/hrhouma2/aiopsatlas-ml-data-diagnostics-labs-en

You clone it once, in Exercise 1. It contains the script that builds the data, the six maintenance manuals, and one folder per week with the solution of every exercise. Nothing runs in the cloud. Everything runs on your laptop with Python and, from Exercise 2, a local language model served by Ollama.

Path in the kitWhat it holds
data/make_dataset.pyThe script that generates every data file below. Same data on every laptop.
data/clean/The three clean CSV files used from Week 2 on.
data/raw/The same three files with duplicates, gaps and typos left in. Used in Week 2 to practise cleaning.
data/diagnostics.sqliteThe same data as an SQLite database with three tables: machines, readings, incidents.
data/json/incidents.jsonThe incidents as JSON documents, for Week 3.
data/graph/nodes.csv, data/graph/edges.csvMachines, sites, technicians and incidents as a graph, for Week 3.
docs/manuals/Six short maintenance manuals in Markdown. They become the knowledge base for retrieval in Weeks 9 to 11.
week01/ to week15/The solution scripts of each exercise. Look at them after you tried, not before.
common/Small helper modules shared by several weeks.

The tools

Every tool in this course is free and runs on your own laptop. Exercise 1 installs them step by step.

ToolWhat it isFirst used
Python 3The programming language of the course. Every exercise is a short Python script.Week 1
GitThe program that copies the kit repository to your laptop, with git clone.Week 1
pandasA Python library that opens a CSV file as a table and lets you filter, count and group its rows.Week 1
numpyA Python library for fast arithmetic on columns of numbers. pandas is built on it.Week 1
scikit-learnA Python library that trains models: it learns from the rows of a table and predicts a column.Week 1 install, Week 4 first model
matplotlibA Python library that draws charts and saves them as PNG images.Week 5
OllamaA program that runs a language model on your laptop. llama3.2 writes text; nomic-embed-text turns text into numbers.Week 1

The three clean files

Every exercise starts from one of these three files. Learn their names and their columns now.

data/clean/machines.csv, 40 rows, one per machine.

ColumnMeaningExample
machine_idIdentifier of the machineM001
machine_typepump, compressor, conveyor or chillerpump
siteMontreal, Quebec City or TorontoToronto
install_yearYear the machine was installed2022
rated_power_kwPower the machine is built for, in kilowatts45.0

data/clean/readings.csv, 14,600 rows, one per machine per day of 2025 (40 machines times 365 days).

ColumnMeaningExample
reading_idRow number1
machine_idWhich machineM001
dateWhich day2025-01-01
load_pctHow hard the machine worked that day, in percent33.9
ambient_cOutside temperature, in degrees Celsius-3.9
temperature_cCasing temperature of the machine26.1
vibration_mm_sVibration, in millimetres per second3.25
pressure_barPressure, in bar6.52
power_kwPower drawn that day, in kilowatts18.3
fault_next_7d1 if a fault followed within seven days, else 00

The last column is the answer the course tries to predict. It is 1 on 1,085 of the 14,600 rows.

data/clean/incidents.csv, 155 rows, one per failure.

ColumnMeaningExample
incident_idIdentifier of the incidentINC-0001
machine_idWhich machine failedM001
dateDay of the failure2025-02-20
categoryoverheating, bearing_wear, leak, electrical or sensor_faultoverheating
severitylow, medium or highhigh
downtime_hoursHours the machine was stopped29.9
repair_cost_cadCost of the repair, in Canadian dollars3465.33
technicianWho repaired itL. Fortin
descriptionThe technician's note, two sentencesOverheating alarm on M001. Cooling fan running but airflow blocked by dust.

How the weeks use the kit

Each week has the same rhythm: a five-minute lesson, a quiz, another lesson, a quiz, then an exercise on the kit. The exercise tells you which file to open and which folder holds the solution. When a lesson says "on the NorthPeak readings", it means data/clean/readings.csv. When it says "the manuals", it means docs/manuals/. When it says "the database", it means data/diagnostics.sqlite.

You do not need the kit for the next four lessons of this week. You need it from Exercise 1 onward, and every week after that.