Engineering of AI Systems · HIT

Prerequisites   Review & self-check before Week 1

Prerequisites: Review & Self-check

Confirm the background below before the course begins.

The course assumes a prior machine-learning course and the three areas below. Each section lists the background topics, a short refresher to review, and a set of self-check questions at the foot of the page. If a self-check question is hard, follow the refresher before Week 1; the course moves quickly past these on day one.

🔧Programming & version control

Production engineering is mostly code and collaboration. You should be comfortable writing and reading Python, working in Git with branches and pull requests, and reasoning about a failing test or a stack trace.

Refresher. Git & GitHub learning resources · The Python tutorial.

⚙️Operating systems & networking

Everything you operate runs on an operating system and talks over a network. You need a working mental model of processes, the shell, and how an HTTP request travels.

Refresher. MDN: an overview of HTTP · Docker: get started.

🧮Machine learning

This is not an ML course; it is about operating ML. You should already understand how a model is trained and evaluated, and treat a trained model as an artifact to be versioned, served, and monitored.

Refresher. Google Machine Learning Crash Course.

Self-check

Try to answer each before revealing it. If several are hard, work the refreshers above before Week 1.

You change one file and want it reviewed without touching main. What Git steps do you take?
Create a branch, commit the change, push the branch, and open a pull request against main for review; merge only after approval and a green check.
A service "works on my machine" but fails on a teammate's. What is the most likely cause and the fix?
Unpinned dependencies or environment differences. Pin versions and ship the same environment, for example a container image that bundles the dependencies, so every machine runs the same thing.
What is the difference between a port and a process, and how do they relate?
A process is a running program; a port is a numbered network endpoint the process can listen on. One process can listen on a port to receive requests; two processes cannot bind the same port at once.
A client gets HTTP 500 from your API. Is the problem on the client or the server, and what does 500 mean?
On the server: 5xx are server-side errors (500 is a generic internal error). 4xx would indicate a client-side problem such as a bad request or missing auth.
Why split data into train and test sets, and what goes wrong if you evaluate on the training set?
To estimate how the model performs on unseen data. Evaluating on the training set measures memorization, not generalization, and hides overfitting, so the number is optimistic and misleading.
What is the difference between a loss and a metric?
The loss is the differentiable objective the model optimizes during training; a metric is a (often non-differentiable) quantity you care about for evaluation, such as accuracy or F1. They can move in different directions.
BackCourse home