← Back to Python

Python Glossary

Key terms from the Python course, linked to the lesson that introduces each one.

1,591 terms.

#

`.isdigit()`
returns `True` for standard digits (`0-9`) and some unicode digit-like characters (such as superscripts like `²`).
Lesson 160`.isnumeric()` vs `.isdigit()`Lesson 161`.isdecimal()`
`axis=0`
means "reduce down the *rows*" — collapse vertically, producing one result per *column*
Lesson 1028`axis` argumentLesson 1074`pd.concat`
`axis=1`
means "reduce across the *columns*" — collapse horizontally, producing one result per *row*
Lesson 1028`axis` argumentLesson 1074`pd.concat`
`optimizer.zero_grad()`
to clear old gradients.
Lesson 1182Optimizers in PyTorchLesson 1184Training loop
`pyproject.toml`
is the modern answer to this chaos—a single, declarative file using the TOML format (Tom's Obvious Minimal Language) that can hold nearly all your project's metadata and tool settings.
Lesson 993`pyproject.toml`Lesson 1256Pinning dependencies
`requirements.txt`
comes in—it's a simple text file that lists all the packages your project needs, along with their versions.
Lesson 713requirements.txtLesson 1256Pinning dependencies

A

ABC
Explicit inheritance, runtime checks
Lesson 651Protocols (typing)
Abstract methods
solve this by making the requirement explicit.
Lesson 649Forcing subclasses to override
Accessing undefined attributes
Lesson 551`AttributeError`
Activation
Pass the sum through an **activation function** to get the final output
Lesson 1168Perceptrons and neurons
Activation functions
Introduce non-linearity (typically ReLU)
Lesson 1188Convolutional networks (CNNs)
Adam
a smarter, adaptive optimizer that often works better with less tuning
Lesson 1182Optimizers in PyTorch
add
two `Counter` objects with `+`, Python combines their counts:
Lesson 468`Counter` arithmeticLesson 1252Sessions and transactions
add or subtract
a `timedelta` to shift a `datetime`:
Lesson 773`timedelta`Lesson 774Adding/subtracting timedeltas
Add visuals
Screenshots, GIFs, or charts make your work tangible
Lesson 1289Building a portfolio
Addition (`+`)
Combines two integers
Lesson 49Integer arithmetic
Admin panel
Automatically generated interface for managing data
Lesson 1234Why Django
Agglomerative (bottom-up)
is the most common approach:
Lesson 1164Hierarchical clustering
Alembic
is a migration tool for SQLAlchemy that solves this problem by treating schema changes as *version-controlled scripts*.
Lesson 1253Alembic migrations
AlexNet
(ImageNet breakthrough), **VGG** (uniform design), **ResNet** (skip connections), and **Inception** (multi-scale filters) each introduced innovations that shaped modern deep learning.
Lesson 1188Convolutional networks (CNNs)
Alignment
Operations automatically align on both row and column labels
Lesson 1040`pd.DataFrame` basics
All remaining characters
become lowercase
Lesson 129`.capitalize()`
All-in-one
Replaces flake8, black, isort, pyupgrade, and more—one config, one command.
Lesson 970`ruff` — the modern linter
Anonymous functions
you don't need to call again
Lesson 507Lambda vs def
Apache 2.0
Like MIT, but includes patent protection and contributor agreements.
Lesson 995LICENSE files
API consumption
Use `fetch('/api/tasks')` to load data, display in components
Lesson 1282Project: small SPA-backed web app
API design
– You're building a framework where declarative syntax hides complexity (like Django models or SQLAlchemy)
Lesson 679Custom metaclasses
API key
a unique string you include in a header or query parameter.
Lesson 1206Headers and authLesson 1231Authentication patterns
API responses
Help developers understand your data
Lesson 597Pretty-printing JSON
API style
Keras (the high-level API) often feels more concise and "batteries-included" than PyTorch
Lesson 1195TensorFlow / Keras preview
API tokens
for better security.
Lesson 998`twine` for publishing
APIView
classes handle HTTP requests (GET, POST, PUT, DELETE) and return JSON responses.
Lesson 1243Django REST framework
App Engine
(PaaS), **Cloud Run** (containerized apps), and **Cloud Functions** (serverless).
Lesson 1274Cloud deployment options
Append mode (`'a'`)
This *appends* to the file, meaning it **preserves all existing content** and positions the file pointer at the end.
Lesson 576Truncating vs appending
Append or extend
Tuples have no `.
Lesson 378Tuples are immutable
Apply it
Django executes the migration against your database, making the structural changes live.
Lesson 1240Migrations
Apply the activation function
– Transform the sum (e.
Lesson 1170Forward propagation
Approval & merge
once approved, the PR is merged into main
Lesson 989Pull requests / merge requests
Architecture decisions
how modules are organized, how responsibilities are separated, where inheritance makes sense versus composition.
Lesson 1285Reading other people's code
Artificial intelligence
Teaching computers to learn and make decisions
Lesson 1What is Python?
ASGI
(Asynchronous Server Gateway Interface) is the modern standard designed for asynchronous Python applications.
Lesson 1270WSGI vs ASGI
ASGI server
a lightning-fast server implementation designed specifically to run asynchronous Python web applications.
Lesson 1232Running with uvicorn
Asymmetric data (e.g., income)
High skew
Lesson 1115Skew and kurtosis
Async
(short for asynchronous programming) solves this by letting a *single thread* juggle thousands of I/O operations.
Lesson 911Why async
Async support
Works with `async def` / `await` for non-blocking I/O
Lesson 1210`httpx` for async HTTP
at least one
element is truthy, `False` otherwise
Lesson 367`any(lst)` / `all(lst)`Lesson 1056`.dropna()`
At the `(Pdb)` prompt
Lesson 952`pdb` commands
AUC
(Area Under the Curve) summarizes this into a single number.
Lesson 1155ROC and AUC
Auth
JWT tokens stored in `localStorage`, sent in `Authorization` header
Lesson 1282Project: small SPA-backed web app
Authentication & Security
Lesson 1280Project: REST API
Authentication Failures
Weak password policies, broken session management, no rate limiting on login attempts.
Lesson 1277Application security basics
Authentication or headers
For simple cases, pandas handles standard HTTP.
Lesson 1084Reading from URLs
Authentication support
Built-in helpers for common authentication schemes
Lesson 1202`requests` library
Auto-fix
Fixes most violations automatically (unused imports, quote style, line length).
Lesson 970`ruff` — the modern linter
Auto-generated help
run `python script.
Lesson 863`argparse`
Autogenerate
Alembic inspects your models and creates migrations automatically
Lesson 1253Alembic migrations
Autograd
(short for "automatic differentiation") is PyTorch's engine that automatically calculates gradients (derivatives) of tensors.
Lesson 1180`autograd` engine
Automatic cleanup
Fixtures can tear down resources when tests finish
Lesson 936Fixtures
Automatic Documentation
Lesson 1223Why FastAPI
Automatic JSON handling
Parse JSON responses with a single method call
Lesson 1202`requests` library
Automatic parameter tracking
(handled by PyTorch behind the scenes)
Lesson 1181Defining a model with `nn.Module`
Automatic registration
– You need every subclass to register itself in a global registry when defined (plugin systems, ORMs)
Lesson 679Custom metaclasses
Automatic test discovery
the test runner finds and executes all methods starting with `test_`
Lesson 927`unittest.TestCase`
Automatic tracking
Every operation creates nodes in a computation graph
Lesson 1180`autograd` engine
Automatically converts
the string from the URL to your declared type (int, float, bool, etc.
Lesson 1225Path and query parameters
Automation
Having your computer handle repetitive tasks
Lesson 1What is Python?Lesson 2Why learn Python
Average linkage
average distance between all pairs
Lesson 1164Hierarchical clustering
Averaging results
For regression, the forest averages all tree predictions; for classification, it takes a majority vote
Lesson 1142Random forests
Avoid
cramming complicated logic into a lambda just to keep it one line.
Lesson 507Lambda vs def
Avoid repetition
Write setup code once, use it everywhere
Lesson 936Fixtures
Avoiding ambiguity
When passing tuples as function arguments or in expressions
Lesson 371Tuple literal `()`
Avoiding IndexError
Making sure your index is valid before accessing `lst[i]`
Lesson 363`len(lst)`
Axes
The actual plotting area(s) with x/y coordinates—think of these as the graphs themselves
Lesson 1089Figure and axes objects
Axis 0
collapses rows (think "down the columns").
Lesson 1027Reductions: `sum`, `mean`, `std`
Axis 1
collapses columns (think "across the rows").
Lesson 1027Reductions: `sum`, `mean`, `std`

B

Backend for other tools
libraries like pandas and seaborn actually use matplotlib under the hood
Lesson 1087Why matplotlib
Backend setup
Create Flask app with routes for CRUD operations on a resource (e.
Lesson 1282Project: small SPA-backed web app
Backup script
Compress and copy critical folders to cloud storage nightly
Lesson 1284Project: automation script
Backward pass
compute gradients via `loss.
Lesson 1184Training loop
Backwards compatible
can even run `unittest` tests
Lesson 932Why pytest
Batch size
is the number of training examples your network processes in a single forward-backward pass before updating the weights.
Lesson 1176Batch size and epochs
Batch size = 1
(stochastic gradient descent): Update weights after every single example.
Lesson 1176Batch size and epochs
Bearer tokens
(like OAuth tokens).
Lesson 1206Headers and auth
Behavior
(methods) — what the object *does*
Lesson 605Why OOP
Behind the scenes
Flask calls `jsonify()` for you when it sees a dictionary return value.
Lesson 1216Returning JSON
Best for
Complex, nested data structures; rapidly evolving schemas
Lesson 1254NoSQL preview
Better defaults
Seaborn plots look polished immediately, with carefully chosen color palettes and styling that work well for data presentation.
Lesson 1099Why seaborn
Better error messages
easier debugging
Lesson 932Why pytest
Better security
Fewer tools mean a smaller attack surface
Lesson 1267Multi-stage builds
binary
(base-2) — the language of computers, which use only 0s and 1s.
Lesson 45Binary literalsLesson 1154Confusion matrix
Binary cross-entropy
Special case for two-class problems.
Lesson 1171Loss functions
Binary mode (`'rb'`)
– Python gives you the raw bytes exactly as stored on disk.
Lesson 558Text vs binary mode
Binning continuous values
Convert age into age groups
Lesson 1150Feature engineering
Binomial
count of successes in fixed trials (like flipping a coin 10 times)
Lesson 1034Random samplingLesson 1119Binomial and Poisson
Binomial distribution
models the number of successes in a fixed number of independent trials (like flipping a coin 10 times and counting heads).
Lesson 1119Binomial and Poisson
Blank lines
Two blank lines between top-level functions and classes; one blank line between methods.
Lesson 966PEP 8 reminders
Blueprint
in Flask is like a mini-application or a plugin that can be registered with your main Flask app.
Lesson 1220Flask Blueprints
Body
(optional data you're sending, used with POST/PUT)
Lesson 1196How HTTP worksLesson 1199Headers and bodies
Bokeh
specializes in creating **interactive visualizations** that run in web browsers.
Lesson 1108Bokeh intro
Boolean conversion
Any numeric column to `bool`
Lesson 1060Changing dtypes
Boolean masking
(also called *boolean indexing*) is one of NumPy's most powerful features.
Lesson 1016Boolean maskingLesson 1017Fancy indexingLesson 1031Element-wise comparison
Boolean Series
(a column of `True` and `False` values) by applying a condition to one or more columns, then use that Series to filter the DataFrame.
Lesson 1050Boolean indexing
Broadcast assignment
You can assign a single value to an entire slice: `arr[1:3, :] = 0`
Lesson 1015Slicing arrays
Broken Access Control
Users accessing resources they shouldn't (like another user's account or admin endpoints).
Lesson 1277Application security basics
Browser stores
the cookie
Lesson 1207Sessions and cookies
Browser-based
No special software needed to view your visualizations
Lesson 1108Bokeh intro
Browser-friendly
JavaScript natively understands JSON
Lesson 1200JSON over HTTP
BSD 3-Clause
Similar to MIT, slightly more explicit about attribution.
Lesson 995LICENSE files
build
based on your hardware—specifically, whether you have an NVIDIA GPU and which version of **CUDA** (NVIDIA's parallel computing platform) you want to use.
Lesson 1177Installing PyTorchLesson 1265Building images
Build & deploy
Frontend builds to static files; backend serves them in production
Lesson 1282Project: small SPA-backed web app
Build system
(defined by PEP 517/518):
Lesson 993`pyproject.toml`
Building paths elegantly
Lesson 833`pathlib` recap
Built for messy data
Real-world data has missing values, mixed types, duplicates, and inconsistent formats.
Lesson 1037Why pandas
built-in
with Python—you already have it!
Lesson 7Choosing an editorLesson 496Built-in scope
Built-in assertion methods
like `assertEqual`, `assertTrue`, etc.
Lesson 927`unittest.TestCase`
Byte strings (`bytes`)
are like the raw ink patterns on paper — they're just sequences of numbers (0–255) with no assumed meaning.
Lesson 106Byte strings preview
Bytes
(`bytes`) are sequences of raw 8-bit values — they represent *data* as computers actually store it.
Lesson 190Encoding strings to bytesLesson 861`zlib` / `gzip` / `bz2`

C

C3 Linearization
algorithm, which guarantees:
Lesson 641Method Resolution Order (MRO)
Caching framework
Speed up your site
Lesson 1234Why Django
Calculate errors
Find where the current model is wrong (the residuals)
Lesson 1143Gradient boosting
California Housing dataset
contains 1990 census data with 8 features (median income, house age, etc.
Lesson 1137Loading a sample dataset
Call `load_dotenv()` early
Typically at the very top of your entry script (e.
Lesson 1258`python-dotenv`
Cancellation
lets you stop tasks mid-execution without waiting for them to finish naturally.
Lesson 921Cancellation
Capping values (clipping)
Lesson 1035`np.where`
Capture
Run your code, save the output to a file (the "snapshot")
Lesson 945Snapshot testing intro
Cartesian product
in mathematics.
Lesson 803`product`
Catch bugs early
editors can warn you if you pass the wrong type
Lesson 521Annotating parameters
Categorical data
Convert repeating strings to `'category'` dtype
Lesson 1060Changing dtypes
CDF
accumulates probability from left to right for any distribution type.
Lesson 1117Probability distributions
Central Limit Theorem (CLT)
states that when you take many random samples from *any* population (with finite variance), calculate the mean of each sample, and plot those means, they form a **normal distribution** — even if the original population was wildly non-normal.
Lesson 1121Central limit theorem
Chain multiple dicts
`d1 | d2 | d3` is easier to read than nested unpacking
Lesson 460`d1 | d2`
Chained assignment
lets you assign *the same single value* to several variables at once by "chaining" the assignment operator.
Lesson 31Chained assignment
Change the order
arguments appear, regardless of how you pass them
Lesson 174Positional format placeholders
Check API docs
Every API specifies exactly how to send credentials (header name, format, prefix).
Lesson 1206Headers and auth
Check loop state
– What's happening on iteration 3?
Lesson 950Print-debugging
Children before parents
– check the class itself first
Lesson 641Method Resolution Order (MRO)
Choose comprehensions by default
They're more readable for most Python programmers and handle complex logic (transform *and* filter) elegantly.
Lesson 361Comprehensions vs map/filter
CI/CD
stands for **Continuous Integration / Continuous Deployment**.
Lesson 1275CI/CD basics
CI/CD pipelines
One fast tool = faster builds.
Lesson 970`ruff` — the modern linter
CircleCI
, **Travis CI**, **Jenkins**
Lesson 1275CI/CD basics
Circular references
can prevent it from being called at all
Lesson 665`__del__`
class decorators
functions that take a class as input, modify or wrap it, and return a class (or a replacement).
Lesson 677Class decoratorsLesson 679Custom metaclasses
Classification output
A label from a finite set of options (limited choices)
Lesson 1130Regression vs classification
Clean interfaces
Users get simple functions tailored to their needs
Lesson 515Using closures for factories
Clean routes
Your endpoint handlers stay focused on their main job
Lesson 1230Dependency injection
Cleaner code
When you use a few functions repeatedly, this reads better
Lesson 687`from ... import ...`Lesson 1151Pipelines
Cleaner for obvious arguments
– Functions like `pow(x, y)` don't benefit from callers writing `pow(x=2, y=3)`.
Lesson 490Positional-only parameters `/`
Cleaner numbering
If you *do* need some captures, non-capturing groups keep the numbering simpler
Lesson 847Non-capturing groups
Cleaner syntax
No double parentheses
Lesson 742Passing generators to functions
Cleaner tests
Each test focuses on what it's testing, not how to prepare
Lesson 936Fixtures
Cleans up
by closing the loop and returning the result
Lesson 914Event loop concept
clear
the nth bit, use bitwise AND with the inverse of a mask:
Lesson 228Bit manipulation idiomsLesson 953Setting breakpoints
Clear intent
Other developers (including future-you) know what's safe to depend on.
Lesson 620Encapsulation by convention
Clear labels
keys explicitly name your columns
Lesson 1041Creating from a dict of lists
Clearer intent
Signals that the exact value doesn't matter
Lesson 684Auto values in enums
CLI
(command-line interface)
Lesson 1262Installing Docker
Click the Extensions icon
on the left sidebar—it looks like four squares with one floating away
Lesson 8Installing VS Code for Python
Client decodes
JSON → Python dict/list
Lesson 1200JSON over HTTP
Client encodes
Python dict/list → JSON string
Lesson 1200JSON over HTTP
Client sends
JSON in HTTP POST/PUT body with `Content-Type: application/json`
Lesson 1200JSON over HTTP
Client sends a request
you ask for something (a webpage, data, etc.
Lesson 1196How HTTP works
Clone
it locally with `git clone`
Lesson 1286Contributing to open source
Closures
– The inner function can access variables from the outer function's scope (enclosing scope)
Lesson 511Inner functions
Cloud Functions
(serverless).
Lesson 1274Cloud deployment options
Cloud Run
(containerized apps), and **Cloud Functions** (serverless).
Lesson 1274Cloud deployment options
Code is self-documenting
the underscore signals "proceed with caution"
Lesson 622Public vs private API
Code organization
– Breaking down a complex function into smaller pieces
Lesson 511Inner functionsLesson 1278Project: CLI tool
Code quality matters
Follow PEP 8, use type hints, write tests
Lesson 1289Building a portfolio
Collaborate
by sharing well-defined modules with teammates
Lesson 695Creating your own module
Collaboration
Multiple people ensure the codebase stays maintainable
Lesson 989Pull requests / merge requestsLesson 1220Flask Blueprints
Collaborative
Team members share migration files via version control, keeping everyone's database in sync.
Lesson 1240Migrations
Column-oriented thinking
matches how we conceptualize tables
Lesson 1041Creating from a dict of lists
columns
(which is extremely common), the cleanest way to create a DataFrame is from a dictionary of lists:
Lesson 1041Creating from a dict of listsLesson 1056`.dropna()`Lesson 1154Confusion matrix
Combined approach (better)
Lesson 566Opening multiple files
Combining columns
`total_price = quantity * unit_price`
Lesson 1150Feature engineering
Combining multiple conditions
Lesson 256Comparison with `and`/`or`
comma
is what actually defines a tuple, not the parentheses!
Lesson 371Tuple literal `()`Lesson 373Single-element tuple
Commas separate dimensions
`arr[row_slice, col_slice]` instead of `arr[row][col]`
Lesson 1015Slicing arrays
Comments
PEP 8 suggests starting comments with `# ` (note the space)
Lesson 25Intro to PEP 8
Common algorithms
`md5()`, `sha1()`, `sha256()`, `sha512()`.
Lesson 859`hashlib`
Community
Massive support, tutorials, and pre-trained models
Lesson 1128What is machine learningLesson 1195TensorFlow / Keras preview
compare
them to determine whether two path references actually point to the same file or directory.
Lesson 587Relative vs absolute pathsLesson 945Snapshot testing intro
Compatibility
Wheels can be platform-specific (e.
Lesson 997Building wheels
Complete environment isolation
You need different Python versions across projects without installing system-wide Pythons
Lesson 719pip vs conda
Complete linkage
maximum distance between any two points
Lesson 1164Hierarchical clustering
Complex enough
to capture real patterns in your data
Lesson 1133Overfitting and underfitting
Complex transformations
Apply logic that references multiple columns or requires conditionals.
Lesson 1068`.apply()` on groups
Complex visualizations
3D plots, geographic maps, financial charts
Lesson 1106Plotly intro
Composability
Fixtures can depend on other fixtures
Lesson 936Fixtures
Compressed
by default (often 10x smaller than CSV)
Lesson 1085Parquet / Feather formats
Compute
values when an attribute is "set"
Lesson 667`__setattr__` / `__delattr__`
Compute Engine
(VMs), **App Engine** (PaaS), **Cloud Run** (containerized apps), and **Cloud Functions** (serverless).
Lesson 1274Cloud deployment options
Compute loss
measure prediction error
Lesson 1184Training loop
Compute the gradient
the slope of the loss with respect to each parameter.
Lesson 1172Gradient descent
Compute weight gradients
Use activations from the forward pass
Lesson 1173Backpropagation
Concise
One line instead of three or four.
Lesson 356Basic comprehension
condition
any expression that evaluates to `True` or `False`
Lesson 250`if` basicsLesson 273`while` basics
Conditions
and **Events**, two higher-level primitives that simplify patterns like "wait for a signal" and "notify waiting threads.
Lesson 898Conditions and Events
Configuration constants
shared across all instances
Lesson 886`ClassVar`
Configuration files
Store settings in a readable format
Lesson 597Pretty-printing JSON
Configure `~/.pypirc`
to include Test PyPI:
Lesson 999Test PyPI
Confirm
success or report errors
Lesson 998`twine` for publishing
Confirm execution flow
– Did this branch even run?
Lesson 950Print-debugging
Confusion matrices
Classification accuracy patterns
Lesson 1105Heatmaps
Cons
"Dead neurons" can occur if a neuron always outputs zero
Lesson 1169Activation functionsLesson 1174Optimizers
Consider your stack
If you're running Dockerized apps, Fly or AWS ECS shine.
Lesson 1274Cloud deployment options
Consistent reporting
across all your tests
Lesson 927`unittest.TestCase`
Consistent with sets
The `|` operator already means "union" for sets
Lesson 460`d1 | d2`
Console
Where `print()` output appears
Lesson 957PyCharm debugger basics
Constant
When you want to flag missingness explicitly (e.
Lesson 1149Handling missing values
constants
values you don't intend to change throughout your program.
Lesson 38PEP 8 naming conventionsLesson 610Class attributes
context manager
that guarantees the file will close, no matter what:
Lesson 564`with open(...)` patternLesson 939`pytest.raises`
Continue execution
until the next breakpoint or the program ends.
Lesson 952`pdb` commands
Continuing the analogy
This is like the prosecution's case: "The defendant *is* guilty.
Lesson 1122Hypothesis testing intro
Continuous Deployment (CD)
Lesson 1275CI/CD basics
Continuous Integration (CI)
Lesson 1275CI/CD basics
Continuous random variables
take any value in a range
Lesson 1116Random variables
continuous values
numbers that can fall anywhere within a range.
Lesson 1130Regression vs classificationLesson 1183Loss functions in PyTorch
Contributing
– How people can help (optional for personal projects)
Lesson 994`README.md`
Convenience
Common cases require fewer arguments
Lesson 484Default parameter values
Convention
It's the standard way Python developers enhance functions.
Lesson 516Function decoration syntax `@`
Convert to UTC immediately
when receiving user input or external data
Lesson 779UTC vs local time
Convolutional Neural Network (CNN)
is a deep learning architecture specifically designed for processing grid-structured data like images.
Lesson 1188Convolutional networks (CNNs)
Cookies
and **sessions** solve this by creating persistent state:
Lesson 1207Sessions and cookies
cooperative multitasking
coroutines explicitly decide when to yield control by using `await`.
Lesson 913The `await` keywordLesson 924Blocking calls in async code
Copy the generated command
.
Lesson 1177Installing PyTorch
coroutine
is a special function that can pause its execution and allow other code to run while it waits for something (like a network request or file operation).
Lesson 912Coroutines with `async def`Lesson 1229Async routes
Correct
"If the coin were fair, we'd see results this lopsided only 2% of the time.
Lesson 1123p-values explained
Correlation matrices
How strongly different variables relate to each other
Lesson 1105Heatmaps
Counters
that track how many instances have been created
Lesson 610Class attributesLesson 886`ClassVar`
Coverage
Explores more of the parameter space with fewer evaluations
Lesson 1160`RandomizedSearchCV`
CPU-intensive tasks
that benefit from parallelism:
Lesson 901Why multiprocessing
CPU-intensive work
(calculations, data processing, looping), all those threads must still take turns holding the GIL.
Lesson 900The GIL
CPU-only
Works everywhere but slower for deep learning
Lesson 1177Installing PyTorch
CPython
(written in the C programming language), and it's what most people use.
Lesson 4Installing Python
Create
a new file and open it for writing
Lesson 559`'x'` exclusive create
Create a FastAPI app
with a `/predict` route.
Lesson 1281Project: ML model API
Create a migration
Django compares your current models to the last known state and writes Python code describing what changed.
Lesson 1240Migrations
Create a new tuple
based on the old one
Lesson 378Tuples are immutable
Create an account
at https://test.
Lesson 999Test PyPI
Create an HTTP endpoint
that accepts input features as JSON.
Lesson 1281Project: ML model API
Create model classes
that inherit from this base
Lesson 1251SQLAlchemy ORM
Create, Read, Update, Delete
the four fundamental operations for managing data in any database.
Lesson 1245SELECT, INSERT, UPDATE, DELETE
Creates an event loop
a manager object that coordinates all async tasks
Lesson 914Event loop concept
Creating a new folder
(key) with a document (value) inside, or
Lesson 426Adding keys
Creating diversity
Each tree is trained on a different random sample of the data (called *bootstrap sampling*)
Lesson 1142Random forests
Creating Path objects
Lesson 833`pathlib` recap
CRITICAL
– The program may be unable to continue
Lesson 959`logging` module basicsLesson 960Log levels
Critical value
depends on your confidence level (e.
Lesson 1126Confidence intervals
CROSS JOIN
Returns the Cartesian product—every row from the first table paired with every row from the second.
Lesson 1246JOINs
Cross-entropy loss
Measures how far predicted probabilities are from the true class.
Lesson 1171Loss functionsLesson 1183Loss functions in PyTorch
Cross-language dependencies
Your project mixes Python, R, or requires system libraries
Lesson 719pip vs conda
Cross-platform
option: Use Python's `schedule` library or run the script in a loop with `time.
Lesson 1284Project: automation script
Cryptographic Failures
Exposing sensitive data because it wasn't encrypted in transit or at rest (e.
Lesson 1277Application security basics
CSS
files (for styling)
Lesson 1219Static files
CSV
| Human-readable, universal compatibility | Slow | Large |
Lesson 1085Parquet / Feather formats
CUDA
(NVIDIA's parallel computing platform) you want to use.
Lesson 1177Installing PyTorch
CUDA 11.8
For NVIDIA GPUs with CUDA 11.
Lesson 1177Installing PyTorch
CUDA 12.1
(or newer): For newer CUDA versions
Lesson 1177Installing PyTorch
Cumulative time
reveals the "expensive pathways"—maybe a single database query function is your top cumtime offender because it calls dozens of helpers.
Lesson 974Reading profile output
Custom aggregations
Return a tuple or dict of multiple summary stats.
Lesson 1068`.apply()` on groups
Customizability
When you need *exact* control, matplotlib delivers
Lesson 1087Why matplotlib

D

d1
d2}`, Python creates a new dictionary containing all key-value pairs from `d1` followed by all pairs from `d2`.
Lesson 459`{**d1, **d2}`Lesson 460`d1 | d2`Lesson 461`d1 |= d2`Lesson 462Handling key collisions
Daemon threads
are threads that run in the background and are automatically terminated when all non-daemon threads finish.
Lesson 894Daemon threads
Data analysis
Making sense of spreadsheets and statistics
Lesson 1What is Python?
Data containers
– Sometimes you just need a simple object to attach attributes to
Lesson 607Empty class with `pass`
Data integrity
guarantee that an object's state won't change unexpectedly
Lesson 671Frozen dataclasses
Data loss
Changes you write to a file may sit in a temporary buffer and not actually reach the disk until the file is closed
Lesson 562Closing filesLesson 565Why `with` is preferred
Data pipeline
Fetch data from an API, clean it, save to a database
Lesson 1284Project: automation script
Data Science
Banks, hospitals, and research labs use Python to make sense of huge amounts of information.
Lesson 2Why learn Python
Data Science / Analytics
Lesson 1287Specialization paths
Data science/scientific computing
You're using NumPy, pandas, TensorFlow, or other packages with complex C/Fortran dependencies
Lesson 719pip vs conda
Data size
You can fine-tune effectively with hundreds or thousands of examples, not millions.
Lesson 1193Fine-tuning a transformer
Data-preserving
You can write custom logic to transform data during schema changes (e.
Lesson 1240Migrations
Database
SQLite (dev) → PostgreSQL (production)
Lesson 1282Project: small SPA-backed web app
Database connections, sockets, threads
these are OS resources
Lesson 905Pickling requirements
Database integration
Use SQLAlchemy models, run migrations with Alembic
Lesson 1282Project: small SPA-backed web app
Database lookups
that might return `None` if no record exists
Lesson 871`Optional[X]`
Database ORM
Talk to databases using Python objects instead of writing SQL
Lesson 1234Why Django
Database safety
Stored timestamps remain unambiguous forever
Lesson 779UTC vs local time
DataFrame
is pandas' primary two-dimensional data structure—think of it as a **labeled table** with rows and columns, similar to an Excel spreadsheet or a SQL table.
Lesson 1040`pd.DataFrame` basicsLesson 1046Column selection
DataFrame integration
Seaborn works seamlessly with pandas DataFrames, letting you reference columns by name rather than extracting arrays manually.
Lesson 1099Why seaborn
DataFrame-native
Designed around pandas DataFrames.
Lesson 1107Plotly Express
DataFrames
(multiple columns):
Lesson 1064`.sum()`, `.mean()`, etc.
Debug toolbar
to step over (`F10`), step into (`F11`), or continue (`F5`)
Lesson 956VS Code debugger
Debugging
see output immediately instead of waiting for the program to finish
Lesson 577Flushing buffersLesson 597Pretty-printing JSONLesson 790`random.seed()`
Debugging version conflicts
"Which version of this library do I have?
Lesson 711`pip list`
Decoder
generates the output (e.
Lesson 1191Transformers intro
Decorate the function
you want to profile with `@profile` (a special marker)
Lesson 976Line profilers
Decorators are just functions
that accept a function and return a (usually modified) function.
Lesson 746Manual decoration
deep copy
it recursively duplicates *everything*, including all nested structures.
Lesson 351`copy.deepcopy()`Lesson 854`copy` module
Default parameters
(with `=` values)
Lesson 488Order of parameters
Define a declarative base
– a foundation class that tracks your models
Lesson 1251SQLAlchemy ORM
Define a Pydantic model
for input validation.
Lesson 1281Project: ML model API
Delete elements
`del my_tuple[0]` fails
Lesson 378Tuples are immutable
Demos
Show consistent examples in tutorials or documentation
Lesson 790`random.seed()`
dependency injection
means you can declare reusable functions (dependencies) that FastAPI will automatically call and pass into your route handlers.
Lesson 1230Dependency injectionLesson 1231Authentication patterns
Deploy models
to production environments
Lesson 1187Saving and loading models
Deployment
Dockerize both, run with Gunicorn/Uvicorn + Nginx reverse proxy
Lesson 1282Project: small SPA-backed web app
Detecting outliers
unusual points appear across multiple plots
Lesson 1104Pair plots
Determinants
Check invertibility or compute signed volume.
Lesson 1033Linear algebra (`np.linalg`)
Deterministic lookups
that won't explode memory (e.
Lesson 818`cache` (3.9+)
Development convenience
No need to manually set environment variables every time you start your app.
Lesson 1258`python-dotenv`
Diabetes dataset
contains 10 baseline medical measurements from 442 patients, with a target representing disease progression one year later.
Lesson 1137Loading a sample dataset
Dict of lists (column-oriented)
Better when you already have full columns of data.
Lesson 1042Creating from a list of dicts
Dictionaries
Specify both key and value types:
Lesson 873Container hints
dictionary
(or `dict`) is Python's built-in mapping type that stores data as **key-value pairs**.
Lesson 424Dict literal `{}`Lesson 676`__slots__`Lesson 1039Creating a SeriesLesson 1066Multiple aggregations
Dictionary access
The `.
Lesson 846Named groups
Dictionary mapping
Explicit, selective renaming.
Lesson 1059Renaming columns
Dimensionality reduction
is the process of reducing the number of features (dimensions) in your data while retaining as much meaningful information as possible.
Lesson 1165PCA
Disable
`disable 1` (breakpoint #1 stays but won't trigger)
Lesson 953Setting breakpoints
Discovers arbitrary shapes
(crescents, blobs, spirals)
Lesson 1163DBSCAN
Discrete
PMF gives point probabilities → CDF accumulates them
Lesson 1117Probability distributions
Discrete random variables
take distinct, countable values
Lesson 1116Random variables
Discuss the design
with maintainers
Lesson 1286Contributing to open source
Docker
to ensure the server restarts if it crashes and starts automatically on boot.
Lesson 1272Uvicorn for ASGI
Docker Compose
lets you define and manage multi-container applications using a simple YAML file.
Lesson 1269Docker Compose
Docker Desktop
is the easiest way to get Docker on your local machine.
Lesson 1262Installing Docker
docstring
(documentation string) is a special type of multi-line comment that Python actually remembers and can display later.
Lesson 20Docstring previewLesson 479DocstringsLesson 480Reading `help(func)`
Docstring (`"""..."""`)
Python stores it and makes it available as documentation
Lesson 20Docstring preview
Document
the response structure in the auto-generated API docs
Lesson 1227Response models
Document your intent
makes collaboration easier
Lesson 521Annotating parametersLesson 885`Final`
Documentation
They tell other developers (and your future self) what types a function expects and returns
Lesson 525Type hints are not enforcedLesson 989Pull requests / merge requests
Documentation styles
clear docstrings, type hints used effectively, README patterns.
Lesson 1285Reading other people's code
Documenting your environment
"What's installed on this machine?
Lesson 711`pip list`
Documents
your API with the correct types
Lesson 1225Path and query parameters
Does it need neither
→ Use a **static method**
Lesson 628When to use each
Doesn't overwrite by default
If an environment variable already exists (e.
Lesson 1258`python-dotenv`
domain knowledge
understanding what matters in your problem space helps you create meaningful features.
Lesson 1150Feature engineeringLesson 1162k-Means clustering
Domain-specific features
Lesson 1150Feature engineering
Don't overuse it
usually the full chain is helpful for debugging.
Lesson 543Suppressing chained context
Double line breaks
on Windows when writing
Lesson 593Newline handling on CSV
Double-check your comparison operator
matches your update direction (incrementing with `<`, decrementing with `>`)
Lesson 280Avoiding infinite loops
Downcast for memory
`int64` → `int32` or `int16`
Lesson 1060Changing dtypes
Download Docker Desktop
from [docker.
Lesson 1262Installing Docker
Downloading
them to your computer
Lesson 706What is pip
DRY
(Don't Repeat Yourself).
Lesson 268OR patterns with `|`
Dynamic decimal places
Lesson 187Nested f-strings
Dynamic graphs
The graph is rebuilt on each forward pass, allowing flexible control flow
Lesson 1180`autograd` engine

E

Each dict key
→ becomes a column name
Lesson 1041Creating from a dict of lists
Each dict value
(a list) → becomes the data *down* that column
Lesson 1041Creating from a dict of lists
Easier refactoring
Insert new members without renumbering
Lesson 684Auto values in enums
Easy sharing
Send an HTML file anyone can open in a browser
Lesson 1106Plotly intro
Easy to write
No test class setup needed
Lesson 947Doctests
EC2
(virtual servers you configure yourself), **Elastic Beanstalk** (managed app hosting), **Lambda** (serverless functions), and **ECS/EKS** (container orchestration).
Lesson 1274Cloud deployment options
Ecosystem
TensorFlow has strong mobile/web deployment tools (TensorFlow Lite, TensorFlow.
Lesson 1195TensorFlow / Keras preview
ECS/EKS
(container orchestration).
Lesson 1274Cloud deployment options
Editor integration
`pylance` provides real-time feedback directly in VS Code as you type
Lesson 890`pyright` and `pylance`
Efficiency
Leverage knowledge from massive datasets you couldn't access yourself
Lesson 1192Pretrained models with Hugging Face
Eigenvalues
and **eigenvectors** reveal the directions along which a matrix acts as simple scaling:
Lesson 1033Linear algebra (`np.linalg`)
Eigenvalues/vectors
Understand transformation behavior, stability, or dimensionality reduction.
Lesson 1033Linear algebra (`np.linalg`)
Elastic Beanstalk
(managed app hosting), **Lambda** (serverless functions), and **ECS/EKS** (container orchestration).
Lesson 1274Cloud deployment options
Elbow method
Plot inertia (within-cluster variance) for different k values; look for the "elbow" where improvement slows
Lesson 1162k-Means clustering
Elegant API
Clean, Pythonic syntax similar to matplotlib
Lesson 1108Bokeh intro
Elements inside other sets
Lesson 419`frozenset()`
Else
, you leave it at home.
Lesson 252`else` clauses
Email sending
Integrated email functionality
Lesson 1234Why Django
Empty tuples
`()` is the only way to create one
Lesson 371Tuple literal `()`
Encapsulation
– Hiding helper logic that no one else needs to see
Lesson 511Inner functions
Enclosing
scope (in any outer function)
Lesson 496Built-in scope
Encoder
processes the input (e.
Lesson 1191Transformers intro
Encoder-Decoder Structure
Original transformers have two stacks:
Lesson 1191Transformers intro
encodings
are like different translation dictionaries—they map byte patterns to characters.
Lesson 561Encoding argumentLesson 1109Altair intro
Enforce immutability
by blocking certain changes
Lesson 667`__setattr__` / `__delattr__`
Enforcing strict rules
– You must validate that every class follows a pattern (all methods named certain ways, required attributes, etc.
Lesson 679Custom metaclasses
Enter `pipx`
it installs each CLI application in its own isolated virtual environment, but exposes the executable commands globally on your system.
Lesson 720`pipx` for tools
Epochs vs. Batches
This example uses the full dataset per step; real training typically loops over mini-batches
Lesson 1184Training loop
Equality comparison
Two `OrderedDict`s are equal only if their items match *and* are in the same order (regular dicts ignore order when comparing)
Lesson 469`collections.OrderedDict`
Error
A broader, informal term for anything that goes wrong in your program—syntax mistakes, runtime problems, logical bugs, etc.
Lesson 526Exception vs errorLesson 959`logging` module basicsLesson 960Log levels
Error handling strategies
how professionals anticipate edge cases, raise meaningful exceptions, and fail gracefully.
Lesson 1285Reading other people's code
Errors
Exceptions and failures that need attention
Lesson 1276Monitoring and metrics
EuroPython
, **PyCon AU**, and regional PyCons around the world bring localized communities together with equally excellent content.
Lesson 1288Staying current
Even faster
than Parquet for read/write
Lesson 1085Parquet / Feather formats
Events
, two higher-level primitives that simplify patterns like "wait for a signal" and "notify waiting threads.
Lesson 898Conditions and Events
Everything else
becomes `True`
Lesson 95Explicit conversion to bool
Everything else becomes `True`
non-zero numbers, non-empty strings, etc.
Lesson 71`bool()` conversion
Example `.env` file
Lesson 1257`.env` files
Example mistake
writing a decorator that assumes the first argument is a string or number, forgetting it's actually `self` when decorating a method.
Lesson 754Decorating methods
Example scenario
You have three tasks that each need to wait 2 seconds.
Lesson 918`asyncio.sleep`
Example script
(`greet.
Lesson 827`sys.argv`
Example URL
`/search?
Lesson 1215Query strings
Exception
A specific Python *object* that represents a runtime problem.
Lesson 526Exception vs error
Exception handling
(`try`/`except`, custom messages)
Lesson 1278Project: CLI tool
Exception type
The name of the error (e.
Lesson 529Exception messages
Exceptions in `__del__`
are suppressed and hard to debug
Lesson 665`__del__`
Explicit dependencies
Readers know exactly what you're using from that module
Lesson 687`from ... import ...`
Explicit ordering API
Methods like `.
Lesson 469`collections.OrderedDict`
Exploratory data analysis
quickly spotting correlations
Lesson 1104Pair plots
Expressions
are pieces of code that evaluate to a value.
Lesson 13Statements and expressions
External tooling
Tools like `mypy`, PyCharm, or VS Code can *analyze* your code and warn you about type mismatches *before* you run it
Lesson 525Type hints are not enforced
Extracting datetime components
Year, month, day, hour from timestamps
Lesson 1150Feature engineering

F

F1-Score
= 2 × (precision × recall) / (precision + recall)
Lesson 1153Accuracy, precision, recall, F1
Factory functions
– Return dynamically-created classes
Lesson 679Custom metaclasses
fail immediately
rather than letting the problem propagate.
Lesson 541Raising for input validationLesson 559`'x'` exclusive create
False Negative (FN)
wrongly said "No" (Type II error)
Lesson 1154Confusion matrix
False Positive (FP)
wrongly said "Yes" (Type I error)
Lesson 1154Confusion matrix
Fancy indexing
is different: you pass an *array (or list) of integers* to select specific positions from your array, pulling out elements in whatever order you choose.
Lesson 1017Fancy indexing
Fast
optimized for analytics queries
Lesson 1085Parquet / Feather formats
FastAPI itself
– the framework library
Lesson 1222Installing FastAPI
Faster deployments
Less to upload and download
Lesson 1267Multi-stage builds
Faster installs
No need to run `setup.
Lesson 997Building wheels
Feather
(technically "Arrow IPC format") is designed for *language-agnostic data frames*.
Lesson 1085Parquet / Feather formats
Feature scaling
transforms all your features to similar ranges so the model weighs them fairly based on their actual predictive power, not their arbitrary units.
Lesson 1147Feature scaling
Features
– Key capabilities or highlights
Lesson 994`README.md`Lesson 1131Features and targets
Features (X)
The input variables your model uses to make predictions (e.
Lesson 1138`train_test_split`
Feed-Forward Networks
After attention, each position passes through dense layers for additional transformation.
Lesson 1191Transformers intro
Fewer bugs
No accidental duplicate values
Lesson 684Auto values in enums
Figure
The entire window or canvas—think of it as the blank page
Lesson 1089Figure and axes objects
File I/O
with `open()` or `Path.
Lesson 1278Project: CLI tool
File locking
On some systems, an open file can't be accessed by other programs—or even other parts of your own program
Lesson 562Closing files
File organizer
Move files from Downloads to categorized folders every day
Lesson 1284Project: automation script
File: `templates/hello.html`
Lesson 1218Templates with Jinja2
File: `templates/users.html`
Lesson 1218Templates with Jinja2
Filter
sensitive fields (like passwords) from the response
Lesson 1227Response models
Filter (keeps some items)
`[x for x in lst if condition]`
Lesson 358Conditional expression in comprehension
Finding
packages on PyPI
Lesson 706What is pip
Finding patterns
identifying which features might be useful together
Lesson 1104Pair plots
First request
You visit a site; the server creates a session and sends back a cookie with a unique session ID
Lesson 1207Sessions and cookies
Fixed records
You have a small, unchanging structure (e.
Lesson 792`namedtuple` recap
flake8
is a lightweight, fast linter that combines three tools:
Lesson 967Linting with flake8 / pylintLesson 970`ruff` — the modern linter
For classification
(predicting categories):
Lesson 1171Loss functions
For counters/sums
`defaultdict(int)` – starts at `0`
Lesson 795`defaultdict` deep dive
For each dimension
, sizes must either:
Lesson 1026Broadcasting
For grouping into lists
`defaultdict(list)` – starts with empty list
Lesson 795`defaultdict` deep dive
For numbers
(integers and floats): `+` performs mathematical addition
Lesson 194`+` addition
For regression
(predicting continuous numbers):
Lesson 1171Loss functions
For sequences
(strings): `+` concatenates (joins) them together
Lesson 194`+` addition
Forget gate
Decides what information to discard from the cell state
Lesson 1190LSTMs and GRUs
Fork
the repository (create your copy)
Lesson 1286Contributing to open source
Form handling
Validation, rendering, and security
Lesson 1234Why Django
Format
Markdown with a specific structure
Lesson 1000Maintaining changelogs
Format validation
string patterns, regex, etc.
Lesson 634Validation in setters
Formatter
– decides *what* the message looks like
Lesson 961Configuring loggers
Formula
`f(x) = max(0, x)`
Lesson 1169Activation functions
Forward pass
feed inputs through the model
Lesson 1184Training loop
Forward pass logic
(defined in `forward`)
Lesson 1181Defining a model with `nn.Module`
Foundation knowledge
Understanding matplotlib makes learning other libraries trivial
Lesson 1087Why matplotlib
Frames pane
The call stack (which functions called which)
Lesson 957PyCharm debugger basics
Fraud detection
High recall (catch all fraud) even if precision suffers slightly.
Lesson 1153Accuracy, precision, recall, F1
Freedom to change
You can refactor `_balance` or `_calculate_fee()` internals without breaking external code that respects the convention.
Lesson 620Encapsulation by convention
Frontend scaffold
Initialize a React/Vue app in a separate folder
Lesson 1282Project: small SPA-backed web app
Full control
over every pixel: colors, labels, ticks, legends, annotations
Lesson 1087Why matplotlib
FULL OUTER JOIN
Returns all rows from both tables, with NULLs where there's no match.
Lesson 1246JOINs
Fully connected layers
Combine features for final classification
Lesson 1188Convolutional networks (CNNs)
function
that takes one list element and returns the value Python should use for comparison.
Lesson 341Sorting with `key=`Lesson 600Handling non-serializable typesLesson 816`reduce`Lesson 1059Renaming columns
Function returning a boolean
Lesson 522Annotating return types
Function returning a string
Lesson 522Annotating return types
Function returning an integer
Lesson 522Annotating return types
Functions that need docstrings
Lesson 507Lambda vs def
Functions you'll reuse
multiple times
Lesson 507Lambda vs def
Future
imports (like `from __future__ import annotations`)
Lesson 969Import sorting with isort
Future-proofing
The language was redesigned to handle modern computing needs better
Lesson 3Python 2 vs Python 3Lesson 489Keyword-only arguments

G

Game development
Creating interactive entertainment
Lesson 1What is Python?
Generate an API token
under account settings (recommended over username/password).
Lesson 999Test PyPI
generator
of matching `Path` objects—you iterate over them or convert to a list.
Lesson 582`Path.glob()`Lesson 729`yield` keyword
generator expression
looks almost identical to a list comprehension, but uses **parentheses** instead of square brackets:
Lesson 740Generator expression syntaxLesson 741Comprehension vs generator
Generators
they hold execution state that can't be captured
Lesson 905Pickling requirements
Get approval
before investing significant time
Lesson 1286Contributing to open source
GIL
is a mechanism in CPython (the standard Python implementation) that allows only **one thread to execute Python bytecode at a time**, even on multi-core processors.
Lesson 900The GIL
GitHub
as your primary portfolio platform:
Lesson 1289Building a portfolio
GitHub Actions
(runs workflows on GitHub)
Lesson 1275CI/CD basics
GitHub Trending (Python)
shows you what the community is building right now
Lesson 1288Staying current
GitLab CI
(built into GitLab)
Lesson 1275CI/CD basics
Global Interpreter Lock (GIL)
, which prevents multiple threads in a single Python process from executing Python bytecode at the same time.
Lesson 901Why multiprocessing
GNU GPLv3
"Copyleft" license.
Lesson 995LICENSE files
GPU
Fine-tuning a transformer typically requires GPU acceleration for practical speed.
Lesson 1193Fine-tuning a transformer
Graceful shutdowns
and signal handling
Lesson 1272Uvicorn for ASGI
Gradient boosting
`learning_rate`, `n_estimators`, `max_depth`
Lesson 1158Hyperparameters
Great for tutorials
Shows actual usage patterns
Lesson 947Doctests
Grouping alternatives
`(?
Lesson 847Non-capturing groups
Grouping operations
(you can now `.
Lesson 1070`.melt()`
Guidance
for backpropagation (which direction to adjust weights)
Lesson 1171Loss functions
Gunicorn
(Green Unicorn) is a **production-grade WSGI server** that spawns multiple worker processes to handle concurrent requests efficiently and safely.
Lesson 1271Gunicorn for WSGI

H

Hacker News
often surfaces major Python announcements
Lesson 1288Staying current
Handle errors
Wrap risky operations in `try/except`
Lesson 1284Project: automation script
Handle timeouts gracefully
Lesson 910`as_completed` / `wait`
Handler
– decides *where* the message goes (console, file, network)
Lesson 961Configuring loggers
Handles static files
(CSS, images) efficiently—no need to tie up Python workers.
Lesson 1273Reverse proxy with Nginx
Handling nested JSON
Lesson 1082Reading JSON
hashable
they must be able to produce a consistent hash value and never change.
Lesson 401Set elements must be hashableLesson 466`collections.Counter`
Hashable instances
frozen dataclasses can be used as dictionary keys or in sets
Lesson 671Frozen dataclasses
Hashing strings
Convert them to bytes first using `.
Lesson 859`hashlib`
Head
The latest migration in the chain
Lesson 1253Alembic migrations
Headers
(metadata like content type, authentication)
Lesson 1196How HTTP worksLesson 1199Headers and bodies
Hello, Flask
displayed.
Lesson 1212Hello, Flask
Here's the catch
this fingerprint must stay constant.
Lesson 432Hashable keys only
Heterogeneous
Different columns can store different types
Lesson 1040`pd.DataFrame` basics
Hidden layers
Start with ReLU
Lesson 1169Activation functions
Hide implementation details
– If you might rename the parameter later, forcing positional-only keeps your API flexible.
Lesson 490Positional-only parameters `/`
High bias (underfitting)
The student doesn't understand the material at all.
Lesson 1161Learning curves
High kurtosis
heavy tails, prone to outliers
Lesson 1115Skew and kurtosis
High p-value
Your data is consistent with the null hypothesis; **not enough evidence** to reject it.
Lesson 1123p-values explained
High variance (overfitting)
The student memorizes every practice problem perfectly but can't generalize.
Lesson 1161Learning curves
Hover over variables
to see their values
Lesson 956VS Code debugger
How big
a step to take (learning rate)
Lesson 1174Optimizers
How many dimensions
does it have?
Lesson 1012Array shape and dim
How many elements
in total?
Lesson 1012Array shape and dim
HTTP methods
(verbs/actions), and **stateless communication** (each request is self-contained), creating predictable, scalable services that leverage HTTP's built-in features.
Lesson 1201REST principles
HTTP/2 support
More efficient connections (optional)
Lesson 1210`httpx` for async HTTP
Hugging Face
provides a platform where you can instantly download and use thousands of pretrained models for tasks like text generation, sentiment analysis, translation, image classification, and more.
Lesson 1192Pretrained models with Hugging Face
Human readers
understanding what types a function expects
Lesson 870Hints don't enforce
Human-readable
You can inspect requests/responses as plain text
Lesson 1200JSON over HTTP
Hyperparameters
These are configuration settings you choose *before* training begins.
Lesson 1158Hyperparameters

I

I/O-bound operations
like querying a database, calling another API, reading a file, or waiting for external services—it spends most of its time *waiting* rather than computing.
Lesson 1229Async routes
I/O-bound tasks
reading files, making network requests, querying databases — anything where your program spends time waiting for external systems.
Lesson 891Why threads
I/O-bound work
(network requests, file reading, waiting for user input).
Lesson 900The GIL
IDE features
like autocomplete and inline warnings
Lesson 870Hints don't enforce
IDE settings
like `.
Lesson 990`.gitignore`
Idempotency
Script should be safe to run multiple times
Lesson 1284Project: automation script
Idempotent
Calling it multiple times has the same effect as calling it once—you just get the same data back.
Lesson 1197Methods: GET/POST/PUT/DELETE
idiomatic Python
you'll see this pattern everywhere in real code.
Lesson 508Lambdas in `sorted(key=...)`Lesson 1285Reading other people's code
IEEE-754 standard
, which represents numbers in binary (base-2), not decimal (base-10).
Lesson 62Float precision
If using Anaconda
You might prefer `conda install scikit-learn` instead of pip.
Lesson 1135Installing scikit-learn
Images
(PNG, JPG, SVG, etc.
Lesson 1219Static files
Immediate results
No training time required
Lesson 1192Pretrained models with Hugging Face
Immutability matters
You need hashable objects for dict keys or set members.
Lesson 792`namedtuple` recap
ImmutableMultiDict
(similar to a dictionary) that contains data sent via HTML forms with `Content-Type: application/x-www-form-urlencoded` or `multipart/form-data`.
Lesson 1217Request data
Impact or results
(if applicable—performance, users, insights)
Lesson 1289Building a portfolio
Important note
This method only checks *format* rules.
Lesson 162`.isidentifier()`
Imported
Only defines `say_hello`, prints nothing
Lesson 697`if __name__ == '__main__':`
Imported as a module
`import my_script` from another file
Lesson 697`if __name__ == '__main__':`
Importing multiple similar items
Lesson 688`import as` alias
Imports
Grouped (standard library, third-party, local) and alphabetized within groups.
Lesson 966PEP 8 reminders
in order
, left to right, giving each name its corresponding value.
Lesson 30Multiple assignmentLesson 1237URL routing in Django
In this lesson
, you'll learn how to configure the delimiter and quoting style when reading or writing CSV files with Python's `csv` module.
Lesson 592CSV dialects
Inception
(multi-scale filters) each introduced innovations that shaped modern deep learning.
Lesson 1188Convolutional networks (CNNs)
Incorrect parsing
of quoted fields containing embedded newlines
Lesson 593Newline handling on CSV
indentation
(the spaces or tabs at the start of a line) to show which lines belong together.
Lesson 14Indentation as syntaxLesson 251`if` body indentationLesson 966PEP 8 reminders
Indentation as syntax
PEP 8 recommends 4 spaces per level
Lesson 25Intro to PEP 8
Indented body
contains the code that runs when you call the function
Lesson 471`def` keyword
independent
advancing one doesn't affect the others.
Lesson 812`tee`Lesson 1146Naive Bayes
Index 0
The script name itself
Lesson 827`sys.argv`
Index 1+
Any arguments you passed
Lesson 827`sys.argv`
index labels
and rotates them **into columns** (making data "wider" and "shorter")
Lesson 1071`.stack()` / `.unstack()`Lesson 1073Sorting
IndexError
if the index is out of range
Lesson 331`.pop(i)`
IndexError on invalid indices
`arr[100]` will raise an error if the array doesn't have that many elements
Lesson 1013Indexing 1D arrays
Infinite indexing
Lesson 799`count`
Infinity (`inf`)
Represents a value larger than any finite number—think of it as "unboundedly large"
Lesson 66Infinity and NaN
INFO
– Confirmation that things are working as expected
Lesson 959`logging` module basicsLesson 960Log levels
Inheritance and mixins
– Standard OOP patterns
Lesson 679Custom metaclasses
Initialization
Create a placeholder array before filling it with computed values
Lesson 1004`np.zeros` / `np.ones`
Injection
Attackers inserting malicious SQL, shell commands, or code into your queries (SQL injection is the classic example).
Lesson 1277Application security basics
Inner
When you need only complete records with matching keys on both sides.
Lesson 1076Join types
inner function
(or nested function) is simply a function defined inside the body of another function.
Lesson 511Inner functionsLesson 751Decorators with arguments
Inner join
Keep only rows where keys exist in *both* DataFrames.
Lesson 1076Join typesLesson 1246JOINs
Innermost function
the wrapper that runs when the decorated function is called
Lesson 519Decorators with arguments
Input gate
Decides what new information to store
Lesson 1190LSTMs and GRUs
Inputs arrive
You have multiple input values (features), like `[x₁, x₂, x₃]`
Lesson 1168Perceptrons and neurons
Insecure Design
Fundamental flaws in how your app is architected (missing authentication on critical routes).
Lesson 1277Application security basics
Inside `forward`
Define how data flows through your network.
Lesson 1181Defining a model with `nn.Module`
Installing
them so Python can import them
Lesson 706What is pip
Installs everything
into your Python environment's `site-packages` directory
Lesson 707`pip install package`
instance
is the actual house built from that blueprint.
Lesson 619Class as a blueprintLesson 753Class-based decorators
Integration
Works seamlessly with other NumPy functions
Lesson 1006`np.arange`Lesson 1087Why matplotlib
Interactivity
Users explore data dynamically
Lesson 1106Plotly intro
Interactivity by default
Every chart you create is interactive in browsers and Jupyter notebooks.
Lesson 1107Plotly ExpressLesson 1108Bokeh intro
Internal implementation detail
Other parts of your code shouldn't depend on it
Lesson 41Leading underscore convention
Internal interpreter problems
that don't fit other categories
Lesson 555`RuntimeError`
Internal time
reveals "hot loops"—a simple string manipulation called a million times might top tottime even though it's a small function.
Lesson 974Reading profile output
Internationalization
Built-in support for multiple languages
Lesson 1234Why Django
Interpretation
On average, predictions are off by 10 units.
Lesson 1156MAE, MSE, R²
Invalid identifiers
break at least one rule.
Lesson 34Valid vs invalid identifiers
Inverses
Solve systems `Ax = b` as `x = A ¹ @ b` (though `np.
Lesson 1033Linear algebra (`np.linalg`)
Iris dataset
contains measurements of 150 iris flowers across three species.
Lesson 1137Loading a sample dataset
Isolation Forest
Faster, scales better, good for high-dimensional data
Lesson 1167Anomaly detection
It doesn't
Python completely ignores your type hints at runtime.
Lesson 870Hints don't enforce
It's a safety check
If you're unsure whether a name is allowed, you can verify it against this list rather than guessing.
Lesson 36Listing keywords
It's consistent
works the same way across many object types
Lesson 350`copy.copy()`
It's explicit
the intent to copy is crystal clear
Lesson 350`copy.copy()`
It's the foundation
for understanding Python's copy semantics in general
Lesson 350`copy.copy()`
iterate
(step through) any collection of items — strings, ranges, lists, or other sequences — executing the same block of code for each item.
Lesson 281`for` basicsLesson 378Tuples are immutableLesson 1184Training loop
Iterating over a range
Lesson 281`for` basics
Iterating over a string
Lesson 281`for` basics
iterator
is the behind-the-scenes worker that actually steps through the iterable one item at a time.
Lesson 722Iterable vs iteratorLesson 723`iter()` built-inLesson 724`next()` built-inLesson 808`islice`

J

JavaScript
files (for interactivity)
Lesson 1219Static files
Jinja2-like
template engine to inject Python variables into HTML.
Lesson 1238Views and templates
JOIN
operation combines rows from two or more tables based on a related column between them—like matching a customer ID in an orders table to the customer ID in a customers table.
Lesson 1246JOINs
Joining paths
Use `os.
Lesson 578`os.path` basics
JSON over HTTP
is the standard pattern where APIs send and receive JSON in HTTP request and response bodies.
Lesson 1200JSON over HTTP
Jupyter notebooks
(or JupyterLab), you can configure matplotlib to render plots **inline**—meaning they appear directly beneath the code cell that generated them.
Lesson 1110Jupyter integration
Just right
(balanced): The string produces a clear note and handles small variations
Lesson 1133Overfitting and underfittingLesson 1161Learning curvesLesson 1175Learning rate

K

Keep secrets secret
Never hard-code keys in your script.
Lesson 1206Headers and auth
Keras
started as a separate high-level API but is now integrated directly into TensorFlow as `tf.
Lesson 1195TensorFlow / Keras preview
Key differences from `
`:**
Lesson 780`math.sqrt`, `math.pow`
Key point
Unlike many Python ranges, `randint` **includes both endpoints**.
Lesson 786`random.randint(a, b)`
Keyword arguments
let you specify which parameter gets which value by using the parameter's name, regardless of order.
Lesson 482Keyword arguments
Keyword format placeholders
let you use meaningful names inside the curly braces instead of numbers.
Lesson 175Keyword format placeholders
Keyword-only parameters
(after `*args` or after a bare `*`)
Lesson 488Order of parameters
Knowledge sharing
Reviewers learn your approach; you learn from their suggestions
Lesson 989Pull requests / merge requests
Kurtosis ≈ 3
(or **excess kurtosis ≈ 0**): normal distribution
Lesson 1115Skew and kurtosis

L

Labeled axes
Rows have an index; columns have names
Lesson 1040`pd.DataFrame` basics
Labels (y)
The target variable you want to predict (e.
Lesson 1138`train_test_split`
Labels everywhere
Every column has a name, every row has an index.
Lesson 1037Why pandas
Labels outliers as noise
(doesn't force them into clusters)
Lesson 1163DBSCAN
lambda
is a shorthand way to define a function without giving it a name.
Lesson 505Lambda syntaxLesson 1274Cloud deployment options
Lambda functions
they're anonymous and Python can't reconstruct them
Lesson 905Pickling requirements
Language-agnostic
Every major language can parse JSON and speak HTTP
Lesson 1200JSON over HTTP
Large codebases
Split a massive package across repositories without conflicts.
Lesson 705Namespace packagesLesson 970`ruff` — the modern linter
Large datasets
Optimized for handling substantial amounts of data
Lesson 1108Bokeh intro
Large gap between curves
High variance → get more data, reduce model complexity, or add regularization
Lesson 1161Learning curves
Large sample sizes
reduce variance (by the law of large numbers, each mean gets closer to the population mean).
Lesson 1121Central limit theorem
Latency
how long requests take (p50, p95, p99 percentiles)
Lesson 1276Monitoring and metrics
Law of Large Numbers
says that as you increase your sample size, the **sample average** will get closer and closer to the **true population mean**.
Lesson 1120Sampling and the law of large numbers
Layers as attributes
(defined in `__init__`)
Lesson 1181Defining a model with `nn.Module`
lazy
computes values *one at a time*, only when requested
Lesson 741Comprehension vs generatorLesson 848Greedy vs lazy quantifiers
lazy evaluation
work is deferred until absolutely necessary.
Lesson 732Generators are lazyLesson 742Passing generators to functions
Learn
explore what Python considers different values to be
Lesson 85The `type()` function
Left join
Keep *all* rows from the left DataFrame; fill with `NaN` where the right has no match.
Lesson 1076Join typesLesson 1077Joining on the indexLesson 1246JOINs
Left to right
– if multiple parents exist, check them in the order you listed them
Lesson 641Method Resolution Order (MRO)
Left-justifying
means your text starts at the left edge and any extra space is added to the right to reach a target width.
Lesson 165`.ljust(n)`
legal
(valid identifiers) and which will cause errors.
Lesson 34Valid vs invalid identifiersLesson 261Chained ternaries
LEGB rule
the exact order Python follows when searching for a variable name.
Lesson 497LEGB rule
LeNet
(digit recognition), **AlexNet** (ImageNet breakthrough), **VGG** (uniform design), **ResNet** (skip connections), and **Inception** (multi-scale filters) each introduced innovations that shaped modern deep learning.
Lesson 1188Convolutional networks (CNNs)
Less typing
No need to count and assign values manually
Lesson 684Auto values in enumsLesson 687`from ... import ...`
License
– How others can use your code
Lesson 994`README.md`
LightGBM
(Light Gradient Boosting Machine): Even faster, uses histogram-based algorithms, excellent for large datasets
Lesson 1143Gradient boosting
Lightweight
JSON is compact compared to older formats like XML
Lesson 1200JSON over HTTP
Lightweight environments
You prefer `venv` and don't need heavy system-level dependencies
Lesson 719pip vs conda
Line length
Target 79–99 characters (PEP 8 says 79, but many teams allow up to 99 for code).
Lesson 966PEP 8 reminders
Linear transformation
`z = (input × weight) + bias`
Lesson 1170Forward propagation
Linting
is the process of running a static analysis tool over your code to flag style issues, programming errors, suspicious constructs, and deviations from best practices—all *without* executing the program.
Lesson 967Linting with flake8 / pylint
Linux
Most Linux systems come with Python pre-installed, but you can install or update it using your package manager if needed.
Lesson 4Installing PythonLesson 1262Installing Docker
List all
`b` (no arguments)
Lesson 953Setting breakpoints
list comprehension
lets you do the same thing in a single, readable expression.
Lesson 356Basic comprehensionLesson 741Comprehension vs generator
List of dicts (row-oriented)
Natural when you receive data row-by-row (e.
Lesson 1042Creating from a list of dicts
Lists/tuples
Python walks through *every element* until it finds a match (or reaches the end).
Lesson 423Fast membership tests
Load
a pre-trained model (e.
Lesson 1281Project: ML model API
Load balancing
can distribute requests across multiple Gunicorn/Uvicorn instances.
Lesson 1273Reverse proxy with Nginx
Load the model
at startup.
Lesson 1281Project: ML model API
local
to the function—it only exists while the function is running and cannot be accessed from outside.
Lesson 493Local scopeLesson 496Built-in scope
Local application
imports (your own modules)
Lesson 969Import sorting with isort
Locked files
Other programs can't access them
Lesson 565Why `with` is preferred
Locks
prevent simultaneous access, **Conditions** and **Events** help threads *communicate* and wait for specific states:
Lesson 898Conditions and Events
Log
changes for debugging or auditing
Lesson 667`__setattr__` / `__delattr__`
Log analyzer
Parse logs, count errors, post metrics to a dashboard
Lesson 1284Project: automation script
Log everything
Use the `logging` module to track what happened
Lesson 1284Project: automation script
Log files
Make JSON logs human-scannable
Lesson 597Pretty-printing JSON
Log levels
let you categorize messages by severity, so you can control what gets recorded and where.
Lesson 960Log levels
Log rotation
solves this by automatically creating new log files based on rules you define.
Lesson 964Rotating logs
Logger
– decides *if* the message should be processed
Lesson 961Configuring loggers
Logging and monitoring
capabilities
Lesson 1272Uvicorn for ASGI
Logging critical events
before a long-running or risky operation
Lesson 577Flushing buffers
Logging structured data
Make complex data human-readable
Lesson 595`json.dumps`
Logistic regression
`C` (regularization strength)
Lesson 1158Hyperparameters
Logs
Text records of events (requests, errors, debug info)
Lesson 1276Monitoring and metrics
Loop body
The indented block that runs each time
Lesson 273`while` basics
Loop control
Understanding how many iterations you need
Lesson 363`len(lst)`
loss function
(or cost function) is a mathematical formula that quantifies the difference between your model's predictions and the actual target values.
Lesson 1171Loss functionsLesson 1183Loss functions in PyTorch
Low kurtosis
light tails, fewer outliers
Lesson 1115Skew and kurtosis

M

Machine learning
is a field of computer science where programs *learn patterns from data* instead of following explicitly coded rules.
Lesson 1128What is machine learning
Machine Learning & AI
Those recommendation systems on Netflix?
Lesson 2Why learn Python
macOS
Open the downloaded file and follow the installation wizard.
Lesson 4Installing PythonLesson 1262Installing Docker
MAE
Use when all errors matter equally and you want easy interpretation
Lesson 1156MAE, MSE, R²
Maintenance
Changes to one piece of logic stay isolated.
Lesson 623Helper methods
MAJOR
(leftmost): Increment when you make **incompatible API changes**
Lesson 996Versioning your package
Make commits
with clear messages
Lesson 989Pull requests / merge requests
Make it configurable
Use environment variables or config files
Lesson 1284Project: automation script
Make revisions
push additional commits addressing feedback
Lesson 989Pull requests / merge requests
Make the edit
(fix the typo, improve the example)
Lesson 1286Contributing to open source
Managers
when you need shared mutable objects like lists or dicts.
Lesson 904Sharing data across processes
Managing
versions and dependencies
Lesson 706What is pip
Many samples
reveal the underlying distribution of those means.
Lesson 1121Central limit theorem
Map attributes to columns
using special objects
Lesson 1251SQLAlchemy ORM
Masking
Start with all ones, then set specific values to zero
Lesson 1004`np.zeros` / `np.ones`
Match built-ins
– Many built-in functions (like `len(obj)`, `abs(x)`) enforce positional-only semantics.
Lesson 490Positional-only parameters `/`
Mathematical functions
Built-in optimized implementations written in C
Lesson 1002Why NumPy
Mathematical operations
Begin calculations with a neutral element
Lesson 1004`np.zeros` / `np.ones`
Mathematical transforms
Log, square root, polynomial features
Lesson 1150Feature engineering
matplotlib
is Python's *foundational* plotting library—the oldest, most established tool for creating static charts.
Lesson 1087Why matplotlibLesson 1106Plotly intro
Mean (μ)
The center of the distribution.
Lesson 1118Normal distribution
Mean Absolute Error (MAE)
Absolute difference.
Lesson 1171Loss functions
Mean Squared Error (MSE)
Squares the difference between predictions and targets.
Lesson 1171Loss functionsLesson 1183Loss functions in PyTorch
Mean/median
Numerical features where the average is meaningful
Lesson 1149Handling missing values
Measure with profiling tools
get real data about where time is spent
Lesson 979When to optimize
Medical screening
High recall (catch all cases) for serious diseases.
Lesson 1153Accuracy, precision, recall, F1
Memoization
works the same way: when a function is called with specific arguments, Python stores the result.
Lesson 817`lru_cache`
Memory
NumPy arrays use far less memory (no object overhead per element)
Lesson 1002Why NumPy
Memory efficiency
Only one value exists at a time
Lesson 742Passing generators to functions
Memory efficient
Doesn't build a full list upfront
Lesson 838`re.finditer`
Memory-efficient
generates values lazily, one at a time
Lesson 811`accumulate`
Message
Human-readable text explaining the specific problem
Lesson 529Exception messages
method
is simply a function defined inside a class.
Lesson 615Method definitionLesson 1196How HTTP works
Method called on `None`
Lesson 551`AttributeError`
Method Resolution Order (MRO)
– the sequence Python follows when searching for a method or attribute.
Lesson 641Method Resolution Order (MRO)Lesson 643Diamond inheritance
Middle function
accepts the function to be decorated (the actual decorator)
Lesson 519Decorators with argumentsLesson 751Decorators with arguments
MINOR
(middle): Increment when you **add functionality** in a backward-compatible way
Lesson 996Versioning your package
Missing file extension
`"config"` instead of `"config.
Lesson 552`FileNotFoundError`
Misspelled method names
Lesson 551`AttributeError`
MIT
is the default choice.
Lesson 995LICENSE files
MIT License
The most popular.
Lesson 995LICENSE files
Mixed types
different columns can hold different data types (strings, ints, floats)
Lesson 1041Creating from a dict of lists
ML workflow
consists of five essential phases:
Lesson 1134The ML workflow
Mnemonic
The axis number tells you *which index changes* as you move along that direction.
Lesson 1028`axis` argument
Mocking
means replacing those real dependencies with fake "mock" objects that you control completely.
Lesson 943Mocking with `unittest.mock`
mode
argument determines whether you're reading existing content, writing new content, or adding to the end of a file.
Lesson 557File modes: r, w, aLesson 1111Mean, median, mode
Model parameters
(learned parameters): These are the values the algorithm *learns* from your training data.
Lesson 1158Hyperparameters
Modern aesthetics
Professional, web-native styling out of the box
Lesson 1106Plotly intro
Modern features
Early support for new Python typing features (like `Self`, `TypeAlias`, etc.
Lesson 890`pyright` and `pylance`
Modern rules
Built-in support for type hints, f-strings, walrus operators, and Python 3.
Lesson 970`ruff` — the modern linter
Modern syntax (Python 3.10+)
Lesson 872Union types
Modifications don't auto-reload
If you edit `config.
Lesson 692Re-imports & caching
Modified files
you've edited since the last commit
Lesson 983`git status` / `git diff`
Modifying the wrong variable
Lesson 280Avoiding infinite loops
Modularity
Each app handles one concern (blog, user authentication, shopping cart)
Lesson 1236Apps within a project
Module-level names
are simply the names defined directly in your file—not nested inside any function.
Lesson 495Global scope
Monitoring
means collecting data about your application's behavior, while **metrics** are the specific measurements you track.
Lesson 1276Monitoring and metrics
More readable
The intent is clearer at a glance
Lesson 460`d1 | d2`Lesson 482Keyword arguments
Most frequent
Categorical variables (strings or codes)
Lesson 1149Handling missing values
Move the model once
; move each batch of data every iteration.
Lesson 1186GPU acceleration
MSE
Use when large errors are especially costly (training often minimizes this)
Lesson 1156MAE, MSE, R²
Multi-class output
Softmax
Lesson 1169Activation functions
Multi-Head Attention
Instead of one attention mechanism, transformers use multiple "heads" that each learn different relationships—one might focus on grammar, another on semantics.
Lesson 1191Transformers intro
Multi-line logic
or complex expressions
Lesson 507Lambda vs def
Multi-plot grids
Creating small multiples (like comparing distributions across categories) is straightforward with seaborn's grid functions.
Lesson 1099Why seaborn
MultiIndex
(also called a hierarchical index) is a pandas structure that allows you to have multiple levels of row or column labels.
Lesson 1072Hierarchical indexes
Multiple columns
`df[['col1', 'col2']]` → returns a **DataFrame**
Lesson 1046Column selection
Multiple worker processes
for handling concurrent requests
Lesson 1272Uvicorn for ASGI
mutable
means an object's contents can be changed in-place without creating a new object.
Lesson 324Lists are mutableLesson 420Frozensets as dict keys

N

Name shadowing
happens when you create a variable with the same name as one of these built-ins.
Lesson 37Built-in name shadowing
Named colors
`'red'`, `'blue'`, `'green'`, `'orange'`, etc.
Lesson 1092Customizing styles
Named groups
let you assign descriptive labels to captured text, making your code self-documenting and easier to maintain.
Lesson 846Named groups
Namespace
Keep related code grouped together
Lesson 685Module concept
NaN (`nan`)
Stands for "Not a Number"—indicates an undefined or unrepresentable result
Lesson 66Infinity and NaN
Navigate to the folder
where your `hello.
Lesson 11Running a .py script
Negative indexing works
`-1` gets the last element, `-2` the second-to-last, etc.
Lesson 1013Indexing 1D arrays
Negative indices work too
`colors.
Lesson 331`.pop(i)`
Negative steps (counting backwards)
Lesson 287`range(start, stop, step)`
Nested/local functions
defined inside other functions
Lesson 905Pickling requirements
New projects
Start with `ruff` instead of juggling three tools.
Lesson 970`ruff` — the modern linter
new set
containing only the elements that exist in both original sets.
Lesson 411Intersection `&`Lesson 412Difference `-`
new string
where every occurrence of the `old` substring has been replaced by the `new` substring.
Lesson 136`.replace(old, new)`Lesson 165`.ljust(n)`
No behavior needed
You don't need methods beyond field access.
Lesson 792`namedtuple` recap
No data duplication
The underlying dicts remain separate.
Lesson 470`collections.ChainMap`
No installation needed
Available wherever Python is installed
Lesson 690Standard library imports
No manual transform tracking
The pipeline remembers fitted parameters
Lesson 1151Pipelines
No metadata
Column types, indexes, categories — all lost.
Lesson 1085Parquet / Feather formats
No reassignment
You don't have to repeat the function name.
Lesson 516Function decoration syntax `@`
Non-capturing groups
let you group without the overhead of storing the match.
Lesson 847Non-capturing groups
Non-empty containers
We haven't covered containers yet, but the pattern holds
Lesson 72Truthy values
Non-empty strings
Any string with at least one character
Lesson 72Truthy values
Non-linear activation
`a = activation_function(z)`
Lesson 1170Forward propagation
Non-zero
(typically 1) means an error occurred
Lesson 828`sys.exit`
Non-zero numbers
Any integer or float except zero
Lesson 72Truthy values
Normal
(Gaussian): values cluster around a mean in a bell curve (like human heights)
Lesson 1034Random sampling
NoSQL databases
offer flexible, non-relational storage models.
Lesson 1254NoSQL preview
Not compressed
by default (bigger files, but instant I/O)
Lesson 1085Parquet / Feather formats
Not idempotent
Sending the same POST twice might create two separate items.
Lesson 1197Methods: GET/POST/PUT/DELETE
Not safe
POST changes data on the server.
Lesson 1197Methods: GET/POST/PUT/DELETE
Notice the `?` placeholders
they prevent SQL injection attacks.
Lesson 1248SQLite with `sqlite3`
Notifications
Send alerts (email, Slack) on failures
Lesson 1284Project: automation script
Null checking
`if value is None`
Lesson 634Validation in setters
Number of epochs
Often 2–5 epochs are enough; more can lead to overfitting.
Lesson 1193Fine-tuning a transformer
Numeric types mix freely
You can compare `int` with `float` because Python considers them compatible numeric types.
Lesson 210Comparing different types

O

O(1)
constant time, no matter how large the set.
Lesson 423Fast membership tests
O(n)
slower as the collection grows.
Lesson 423Fast membership tests
O(n²) complexity
doubling the data quadruples the time.
Lesson 978Common optimizations
Old Mac
`\r` (carriage return only)
Lesson 593Newline handling on CSV
one
`None` object in your entire Python program (it's a singleton), `is` tests whether your variable points to that specific object.
Lesson 81Comparing to None with `is`Lesson 261Chained ternariesLesson 325`.append(x)`Lesson 820`total_ordering`
one line
by separating both the names and values with commas:
Lesson 30Multiple assignmentLesson 569`.readline()`
One-Class SVM
More flexible with kernels, but slower on large datasets
Lesson 1167Anomaly detection
One-sided
"Group A is *greater than* Group B" (specific direction)
Lesson 1122Hypothesis testing intro
Open a pull/merge request
targeting the main branch
Lesson 989Pull requests / merge requests
Open an issue
proposing the feature
Lesson 1286Contributing to open source
Open file handles
you can't serialize a connection to a file
Lesson 905Pickling requirements
Open VS Code
(the application you installed in the previous lesson)
Lesson 8Installing VS Code for Python
Open your terminal
(Command Prompt on Windows, Terminal on macOS/Linux)
Lesson 11Running a .py script
OpenAPI specification
(formerly Swagger) under the hood, which is an industry-standard way to describe REST APIs.
Lesson 1228Automatic OpenAPI docs
Optional filter
You can add `if` conditions just like in comprehensions
Lesson 740Generator expression syntax
Optional flags
start with `--` or `-`, users can omit them
Lesson 863`argparse`
Optional function arguments
(e.
Lesson 871`Optional[X]`
Order independence
The order of keyword arguments in `.
Lesson 175Keyword format placeholders
Order matters
Earlier dicts in the chain have priority.
Lesson 470`collections.ChainMap`
Order-aware equality
two `OrderedDict` instances are equal only if they have the same items *in the same order*
Lesson 796`OrderedDict` features
Organize code
into logical files instead of one giant script
Lesson 695Creating your own module
Other developers
instantly see what types the function expects and returns
Lesson 867Why type hints
Outer
When you want a full picture of all data, even incomplete matches.
Lesson 1076Join types
Outer function
accepts the decorator's arguments
Lesson 751Decorators with arguments
Outer join
Keep *all* rows from *both* DataFrames; fill with `NaN` wherever a match is missing.
Lesson 1076Join types
Outer parentheses
Signal this is a generator expression
Lesson 740Generator expression syntax
Outermost function
accepts the decorator's arguments
Lesson 519Decorators with arguments
Outliers or extreme events
High kurtosis
Lesson 1115Skew and kurtosis
Output gate
Decides what to output based on the cell state
Lesson 1190LSTMs and GRUs
Overriding
means defining a method with the *same name* in the subclass, which replaces the parent's version for that subclass.
Lesson 637Overriding methods
Overwrites the file
Like opening in `'w'` mode, this replaces any existing content.
Lesson 584`Path.write_text()`
OWASP Top Ten
is a regularly updated list of the most critical security risks facing web applications.
Lesson 1277Application security basics

P

p-value
is the probability of observing data **as extreme or more extreme** than what you actually got, **assuming the null hypothesis is true**.
Lesson 1123p-values explainedLesson 1124t-testsLesson 1125Chi-squared tests
Pairing with another iterable
Lesson 799`count`
Parameter `nu`
Approximate fraction of anomalies expected (like `contamination`).
Lesson 1167Anomaly detection
Parametrized tests
let you define the test logic once, then feed it a table of test cases automatically.
Lesson 938Parametrized tests
Parent before grandparent
– respect the inheritance hierarchy
Lesson 641Method Resolution Order (MRO)
Parquet
is a *columnar binary format* (stores data column-by-column instead of row-by-row).
Lesson 1085Parquet / Feather formats
Partial data
where some fields might be missing
Lesson 871`Optional[X]`
PATCH
(rightmost): Increment for **backward-compatible bug fixes**
Lesson 996Versioning your packageLesson 1196How HTTP works
pattern
(like wildcards) and returning all matching files.
Lesson 582`Path.glob()`Lesson 839`re.sub`
Pause and resume training
without starting over
Lesson 1187Saving and loading models
pauses
at each `yield` statement, returns a value to the caller, and *remembers where it left off*.
Lesson 729`yield` keywordLesson 730Generator function vs normal function
PCA
Fast, linear, interpretable—use first
Lesson 1166t-SNE and UMAP
PDF
– Vector format, perfect for print and academic papers:
Lesson 1096Saving figuresLesson 1117Probability distributions
PEP 8
stands for "Python Enhancement Proposal 8" — it's Python's official style guide.
Lesson 25Intro to PEP 8
PEP 8 compliance
Following the standard makes your code look professional
Lesson 39Constants by convention
Per-group filtering
Keep only top *n* rows per group.
Lesson 1068`.apply()` on groups
Perfect pandas fidelity
indexes, multi-indexes, categoricals
Lesson 1085Parquet / Feather formats
Performance hacks
– You need `__slots__` applied automatically across many classes
Lesson 679Custom metaclasses
Philosophy
PyTorch feels Pythonic and explicit; Keras aims for minimal code
Lesson 1195TensorFlow / Keras preview
Pickling
is Python's way of *serializing* (converting to bytes) any Python object so you can save it to a file.
Lesson 601`pickle.dump` / `pickle.load`Lesson 905Pickling requirements
Pipes
for simple two-process communication, and **Managers** when you need shared mutable objects like lists or dicts.
Lesson 904Sharing data across processes
Pivot tables
Aggregated data across two categorical dimensions
Lesson 1105Heatmaps
Placeholder exceptions
– Define custom exception classes that don't need extra behavior yet
Lesson 607Empty class with `pass`
Platform-dependent behavior
that breaks when sharing files
Lesson 593Newline handling on CSV
Plotly
, a powerful library that creates **interactive, web-based visualizations** you can zoom, pan, and explore directly in your browser.
Lesson 1106Plotly intro
Plotly generates HTML-based charts
that respond to user interaction.
Lesson 1106Plotly intro
Plotting
with libraries like Seaborn or Plotly (they expect long data)
Lesson 1070`.melt()`
Plugin architectures
Multiple plugins can extend the same package namespace independently.
Lesson 705Namespace packages
PMF
gives exact probabilities for discrete outcomes, the **PDF** gives probability density for continuous values (area = probability), and the **CDF** accumulates probability from left to right for any distribution type.
Lesson 1117Probability distributions
PNG
– Raster format, great for web and presentations:
Lesson 1096Saving figures
Poetry
and **uv** are next-generation dependency managers that bundle both responsibilities into one streamlined tool.
Lesson 721Poetry & uv preview
Poisson
Counting rare events over time or space with no fixed upper limit (e.
Lesson 1119Binomial and Poisson
Poisson distribution
models the number of events occurring in a fixed interval when events happen independently at a constant average rate (like the number of emails you receive per hour).
Lesson 1119Binomial and Poisson
Polite scraping
means adding delays between requests, respecting `robots.
Lesson 1283Project: web scraper
Polymorphism
means "one interface, many implementations.
Lesson 647Polymorphism
Pooling layers
Downsample spatial dimensions, retain important features
Lesson 1188Convolutional networks (CNNs)
Portability
Your code works the same everywhere
Lesson 779UTC vs local timeLesson 1250SQLAlchemy Core
Positional arguments
required values in order (like `name` above)
Lesson 863`argparse`
Positional Encoding
Since transformers process words in parallel (not sequentially), they add position information so the model knows word order.
Lesson 1191Transformers intro
Positional format placeholders
let you number those braces—`{0}`, `{1}`, `{2}`, etc.
Lesson 174Positional format placeholders
PostgreSQL
is a production-grade relational database management system (RDBMS) used by companies worldwide.
Lesson 1249PostgreSQL with `psycopg`
Powerful features
fixtures, parameterization (you'll learn these later)
Lesson 932Why pytest
Preparing data for APIs
Web services expect JSON strings
Lesson 595`json.dumps`
Prevents data leakage
Transformations use only training statistics
Lesson 1151Pipelines
Principal Component Analysis (PCA)
to reduce the number of features in your dataset while preserving the most important information.
Lesson 1165PCA
Print
the value of an expression.
Lesson 952`pdb` commands
Private
Names with a leading underscore like `_validate_input()` or `_cache`—these are internal details that might change or break between versions
Lesson 622Public vs private API
Pro tip
Use the `in` operator first to check if the item exists before calling `.
Lesson 335`.index(x)`Lesson 659Ordering with `__lt__` etc.
Process requests
parse JSON, preprocess features, call `model.
Lesson 1281Project: ML model API
Project A
needs version 1.
Lesson 714Virtual environments
Project B
needs version 2.
Lesson 714Virtual environments
Project metadata
(defined by PEP 621):
Lesson 993`pyproject.toml`
Project Title & Description
– One sentence explaining what it does
Lesson 994`README.md`
Prompt for credentials
Your PyPI username and password (or API token)
Lesson 998`twine` for publishing
Propagate through activation
Multiply by `∂activation/∂z` (derivative of activation function)
Lesson 1173Backpropagation
Pros
Fast to compute, helps networks train faster, reduces vanishing gradient
Lesson 1169Activation functionsLesson 1174Optimizers
Protocol 0
The original, human-readable ASCII format (slowest, largest files)
Lesson 603Pickle protocols
Protocol 1
Old binary format (obsolete)
Lesson 603Pickle protocols
Protocol 2
Efficient binary format (Python 2.
Lesson 603Pickle protocols
Protocol 3
Added support for bytes objects (Python 3.
Lesson 603Pickle protocols
Protocol 4
Support for large objects, more efficient (Python 3.
Lesson 603Pickle protocols
Protocol 5
Out-of-band data buffers for specialized use (Python 3.
Lesson 603Pickle protocols
Protocols
offer a different approach: **structural typing** (also called "static duck typing").
Lesson 651Protocols (typing)
Public
Normal names like `calculate_total()` or `price`—these are the stable, documented parts users should rely on
Lesson 622Public vs private API
Publication-quality
output for research papers and reports
Lesson 1087Why matplotlib
Push your branch
to the remote repository
Lesson 989Pull requests / merge requests
Pushing
sends your committed changes to a remote server—typically GitHub or GitLab—where they're stored safely, backed up, and visible to collaborators.
Lesson 988Pushing to a remote
PyCoder's Weekly
is a curated digest of Python articles, tutorials, and projects sent every Tuesday.
Lesson 1288Staying current
PyCon
(especially PyCon US) is *the* global gathering—thousands of developers, hundreds of talks, and all videos posted free on YouTube.
Lesson 1288Staying current
PyCon AU
, and regional PyCons around the world bring localized communities together with equally excellent content.
Lesson 1288Staying current
Pydantic models
to handle this elegantly: you define a Python class describing what data you expect, and FastAPI does the rest.
Lesson 1226Request bodies with Pydantic
PyData
conferences focus on data science, NumPy, pandas, and ML—ideal if that's your path.
Lesson 1288Staying current
Pylance
extension from the VS Code marketplace.
Lesson 890`pyright` and `pylance`
PyPI
stands for the **Python Package Index**.
Lesson 718PyPI
PyPI exclusives
The package you need is only on PyPI (happens occasionally)
Lesson 719pip vs conda
Python 2
was released in 2000 and became wildly popular.
Lesson 3Python 2 vs Python 3
Python 3
arrived in 2008 as a major upgrade that intentionally broke backward compatibility to fix these issues.
Lesson 3Python 2 vs Python 3
Python 3.x
(for example, Python 3.
Lesson 4Installing Python
Python Bytes
is a short, weekly news show—perfect for staying on top of releases and trends in ~15 minutes.
Lesson 1288Staying current
Python Discord servers
offer real-time discussions
Lesson 1288Staying current
Python Enhancement Proposals (PEPs)
at python.
Lesson 1288Staying current
Python Package Index
.
Lesson 718PyPI
Python Weekly
is similar—another high-quality roundup of what's happening in the community.
Lesson 1288Staying current
Python-only projects
You're building web apps, scripts, or APIs that only need pure Python packages
Lesson 719pip vs conda
Pythonic
Comprehensions are idiomatic Python.
Lesson 356Basic comprehension
Pythonic default
for most cases.
Lesson 361Comprehensions vs map/filter
Pythonic trust
Python philosophy prefers readability and trust over rigid enforcement.
Lesson 620Encapsulation by convention
Pythonic way
to iterate with an index.
Lesson 352Iterating with index via enumerate

Q

Quality gate
Bugs, style issues, or design flaws are caught before deployment
Lesson 989Pull requests / merge requests
Queues
Add to the right, remove from the left.
Lesson 793`deque`Lesson 904Sharing data across processes
Quick file operations
Lesson 833`pathlib` recap
Quit
the debugger and terminate the program immediately.
Lesson 952`pdb` commands

R

Use to understand overall model quality, but combine it with MAE or MSE for complete picture
Lesson 1156MAE, MSE, R²
Random forest
`n_estimators` (number of trees), `max_depth` (tree depth)
Lesson 1158Hyperparameters
Random sampling
from the population.
Lesson 1121Central limit theorem
Random selection
Picks combinations randomly from the parameter space
Lesson 1160`RandomizedSearchCV`
Randomizing features
Each split in each tree considers only a random subset of features
Lesson 1142Random forests
Range checking
`if value < min_val or value > max_val`
Lesson 634Validation in setters
Rapid prototyping
Perfect for exploratory data analysis when you need to visualize trends quickly before deciding if deeper customization is needed.
Lesson 1107Plotly Express
Ratios and percentages
`income_to_debt_ratio = income / debt`
Lesson 1150Feature engineering
Re-measure
confirm your optimization actually helped
Lesson 979When to optimize
Read the report
showing microseconds-per-line
Lesson 976Line profilers
Read-Eval-Print-Loop
.
Lesson 10The Python REPL
Readable syntax
Lets you focus on the problem, not the code
Lesson 1128What is machine learning
Reading the comprehension
"For each sublist in nested, then for each item in that sublist, collect the item.
Lesson 360Flattening with comprehensions
Real Python Newsletter
includes tutorials from their deep library, plus community news and job postings.
Lesson 1288Staying current
Real Python Podcast
blends tutorials with interviews and is great for intermediate learners.
Lesson 1288Staying current
Real-time monitoring
another process needs to read the file while you're writing
Lesson 577Flushing buffers
Real-world analogy
Think of it like arithmetic: `2 + 3 * 4` gives you `14`, not `20`, because multiplication happens first.
Lesson 77Combining booleansLesson 1197Methods: GET/POST/PUT/DELETE
Reassign elements
`my_tuple[1] = 5` raises an error
Lesson 378Tuples are immutable
Recall
(Sensitivity) = (true positives) / (all actual positives)
Lesson 1153Accuracy, precision, recall, F1
Receive feedback
reviewers comment on specific lines, suggest changes, or approve
Lesson 989Pull requests / merge requests
Recommendation engines
Balance both with F1 to avoid annoying users or missing opportunities.
Lesson 1153Accuracy, precision, recall, F1
Recurrent Neural Networks (RNNs)
are designed for sequential data where order matters—like time series, text, audio, or video.
Lesson 1189Recurrent networks (RNNs)
Recursion issues
(though Python usually raises `RecursionError`, a subclass)
Lesson 555`RuntimeError`
Recursive functions
with a known, small range of inputs (like Fibonacci).
Lesson 818`cache` (3.9+)
Recursively
copies all nested objects
Lesson 854`copy` module
Reddit's r/Python
and **Python Discord servers** offer real-time discussions
Lesson 1288Staying current
Redirect
assignments to alternative storage (like a dictionary)
Lesson 667`__setattr__` / `__delattr__`
Reduce repetition
Create specialized functions without rewriting logic
Lesson 515Using closures for factories
Registry patterns
where the class maintains a list of all instances
Lesson 886`ClassVar`
Regression output
A number from a continuous range (infinite possibilities)
Lesson 1130Regression vs classification
Regular comment (`#`)
Python ignores it completely
Lesson 20Docstring preview
Regular function
Runs immediately when called
Lesson 912Coroutines with `async def`
Regular package
Has `__init__.
Lesson 705Namespace packages
Regular strings (`str`)
are like a book written in any language — they represent *meaning* and characters.
Lesson 106Byte strings preview
relative
address might be "two doors down," but an **absolute** address is "123 Main Street, Springfield.
Lesson 703Absolute importsLesson 969Import sorting with isort
Relative paths
start from your current working directory and might include `.
Lesson 587Relative vs absolute paths
Reliability
Battle-tested code maintained by the Python core team
Lesson 690Standard library imports
remainder
when one integer is divided by another.
Lesson 51Modulo `%`Lesson 199`%` modulo
Remember
All arguments come in as **strings**.
Lesson 827`sys.argv`
Remove a substring
by replacing it with an empty string:
Lesson 136`.replace(old, new)`
Remove noise
By keeping only the most important information, models may generalize better.
Lesson 1165PCA
Repeat
Continue adding trees, each correcting the remaining errors
Lesson 1143Gradient boostingLesson 1172Gradient descent
Replacing the document
in an existing folder with a new one
Lesson 426Adding keys
Report generator
Query a database, create a CSV, email it every Monday
Lesson 1284Project: automation script
Reports failures
if any output doesn't match
Lesson 948Running doctests
Reproducibility
– Every developer on your team gets the same versions
Lesson 709Installing a specific version
Reproducibility across platforms
conda environments are more portable between Windows/Mac/Linux for scientific software
Lesson 719pip vs conda
Request arrives
A user visits `/blog/post/42/`
Lesson 1238Views and templates
Request rates
How many operations per second/minute your app handles
Lesson 1276Monitoring and metrics
Request reviewers
teammates who'll inspect your code
Lesson 989Pull requests / merge requests
Requirements
– Python version, dependencies
Lesson 994`README.md`
Reset gate
Decides how much past information to forget
Lesson 1190LSTMs and GRUs
ResNet
(skip connections), and **Inception** (multi-scale filters) each introduced innovations that shaped modern deep learning.
Lesson 1188Convolutional networks (CNNs)
Resolves dependencies
(installs other packages this one needs)
Lesson 707`pip install package`
Resource cleanup
is better handled with context managers (`__enter__` / `__exit__`)
Lesson 665`__del__`
Resource leaks
Your operating system has a limit on how many files can be open at once.
Lesson 562Closing filesLesson 565Why `with` is preferred
Response models
let you explicitly declare the shape and type of data your endpoint will return.
Lesson 1227Response models
Response sent
The final HTML travels back to the user's browser
Lesson 1238Views and templates
REST
(Representational State Transfer) is an architectural style for designing networked applications, particularly web APIs.
Lesson 1201REST principles
Restart your computer
if prompted
Lesson 1262Installing Docker
Result
Threading gives you no speedup for CPU-bound tasks.
Lesson 900The GILLesson 1083Reading SQL
Resume
Continue until the next breakpoint
Lesson 957PyCharm debugger basics
Return
the predictions as JSON.
Lesson 1281Project: ML model API
Return `False`
or `None` (the default) → let the exception propagate normally
Lesson 761Exception handling in `__exit__`
Return `True`
(or any truthy value) → suppress the exception (don't re-raise it)
Lesson 761Exception handling in `__exit__`
Return a dictionary directly
Flask automatically converts it to JSON (Flask 1.
Lesson 1216Returning JSON
Return dict
Cleaner for simple cases
Lesson 1216Returning JSON
Returns a clear error
if validation fails
Lesson 1225Path and query parameters
Returns the removed item
so you can use it immediately
Lesson 331`.pop(i)`
Reuse functions
across multiple projects without copy-pasting
Lesson 695Creating your own module
Reversibility
You can iterate in reverse more explicitly
Lesson 469`collections.OrderedDict`
Reversible
Many migrations can be rolled back if something goes wrong.
Lesson 1240Migrations
Review it
Migrations are stored as `.
Lesson 1240Migrations
Revision
A single migration file with a unique ID
Lesson 1253Alembic migrations
Rich ecosystem
Libraries like NumPy, pandas, scikit-learn, TensorFlow, and PyTorch
Lesson 1128What is machine learning
Rich information
Each match object has `.
Lesson 838`re.finditer`
Right join
Keep *all* rows from the right DataFrame; fill with `NaN` where the left has no match.
Lesson 1076Join typesLesson 1246JOINs
ROC
(Receiver Operating Characteristic) curves visualize performance across *all possible thresholds*.
Lesson 1155ROC and AUC
ROCm
For AMD GPUs (less common)
Lesson 1177Installing PyTorch
Rollback
→ all changes are discarded
Lesson 1252Sessions and transactions
route
a URL path like `/` or `/about` — and a function that returns what to display when someone visits that URL.
Lesson 1212Hello, FlaskLesson 1218Templates with Jinja2
Routers
automatically generate URL patterns for your API endpoints, saving you from manually writing each route.
Lesson 1243Django REST framework
Row 0 (class 0)
2 correct, 0 mistakes
Lesson 1154Confusion matrix
Row 1 (class 1)
2 correct, 1 wrongly called class 2
Lesson 1154Confusion matrix
Row 2 (class 2)
1 correct, 1 wrongly called class 0
Lesson 1154Confusion matrix
Run and Debug
icon in the left sidebar (or press `Ctrl+Shift+D` / `Cmd+Shift+D`)
Lesson 956VS Code debugger
Run directly
`python my_script.
Lesson 697`if __name__ == '__main__':`
Run inference
(make predictions) using the model.
Lesson 1281Project: ML model API
Run with `kernprof`
, the tool that comes with `line_profiler`
Lesson 976Line profilers
Runs the loop
until your coroutine completes
Lesson 914Event loop concept

S

Safe
GET doesn't modify anything on the server.
Lesson 1197Methods: GET/POST/PUT/DELETE
Safety
Prevents accidentally mixing up argument order
Lesson 489Keyword-only argumentsLesson 1250SQLAlchemy Core
Same familiar API
If you know `requests`, you already mostly know `httpx`
Lesson 1210`httpx` for async HTTP
Same functionality
Your app runs identically
Lesson 1267Multi-stage builds
Sample size matters
larger samples (n ≥ 30 is a common rule) make the normal approximation better.
Lesson 1121Central limit theorem
Sampling
is the act of drawing observations from a population.
Lesson 1120Sampling and the law of large numbers
Sampling without replacement
means grabbing several random items from a collection, but once an item is picked, it's removed from the pool.
Lesson 789`random.sample(pop, k)`
Scalability
As your app grows, keep it maintainable by dividing it logically
Lesson 1220Flask Blueprints
Scale up
As traffic grows or you need specific features (managed databases, caching, queues), AWS or GCP provide comprehensive ecosystems—at the cost of complexity.
Lesson 1274Cloud deployment options
Scan algorithms
(running max, min, or custom reductions)
Lesson 811`accumulate`
Schedules your coroutine
(`main()`) onto that loop
Lesson 914Event loop concept
Science
Reproducibility is crucial in simulations and experiments
Lesson 790`random.seed()`
Scientific research
Solving complex math and physics problems
Lesson 1What is Python?
SciPy
provides a comprehensive toolkit for advanced statistics.
Lesson 1127SciPy for stats
Seaborn
makes statistical visualizations elegant.
Lesson 1106Plotly intro
Search for "Python"
in the search box at the top
Lesson 8Installing VS Code for Python
Security
hides your app server's internal port and can filter bad requests.
Lesson 1273Reverse proxy with Nginx
Security / Ethical Hacking
Lesson 1287Specialization paths
Security features
Protection against common vulnerabilities (SQL injection, cross-site scripting, CSRF)
Lesson 1234Why Django
Security Logging Failures
Not logging security events or failing to monitor logs for attacks.
Lesson 1277Application security basics
Security Misconfiguration
Default passwords, debug mode in production, exposed secret keys in environment variables checked into Git.
Lesson 1277Application security basics
See updated values
If the outer function modifies the variable, the closure sees the change
Lesson 513Closure cell objects
See values instantly
– What *is* that variable right now?
Lesson 950Print-debugging
SELECT
→ Read data from tables
Lesson 1245SELECT, INSERT, UPDATE, DELETE
Select your preferences
Lesson 1177Installing PyTorch
Self-describing
Field names make data structure obvious
Lesson 1200JSON over HTTP
Self-documentation
Names like `Coordinates` or `UserID` convey meaning better than raw types.
Lesson 878`TypeAlias`
Sensitive data
like `.
Lesson 990`.gitignore`
Separation of concerns
Keep cross-cutting logic (logging, caching, validation) separate from core function logic.
Lesson 744Why decorators
sequentially
(one after another), your program spends most of its time just *waiting*: waiting for the server to respond, waiting for data to arrive over the network, waiting for the disk to write the file.
Lesson 891Why threadsLesson 1143Gradient boosting
Serialize
Python objects (like Pydantic models) into JSON
Lesson 1227Response models
Serializers
convert Django models to JSON (and validate incoming JSON back to models).
Lesson 1243Django REST framework
Server capabilities
Can build full dashboard applications (advanced feature)
Lesson 1108Bokeh intro
Server encodes
response data → JSON
Lesson 1200JSON over HTTP
Server processes
the data
Lesson 1200JSON over HTTP
Server processes the request
the server figures out what you need
Lesson 1196How HTTP works
Server reads
the session ID, retrieves your data, and "remembers" you
Lesson 1207Sessions and cookies
Server receives
JSON, decodes to its native data structures
Lesson 1200JSON over HTTP
Server sends
JSON back with `Content-Type: application/json` and HTTP status
Lesson 1200JSON over HTTP
Server sends a response
you get back data and a status message
Lesson 1196How HTTP works
Server-Side Request Forgery (SSRF)
Allowing an attacker to make your server send requests to internal systems.
Lesson 1277Application security basics
Services
Each service is a container.
Lesson 1269Docker Compose
Session management
Maintain cookies and headers across multiple requests
Lesson 1202`requests` library
Session object
handles cookies automatically across multiple requests:
Lesson 1207Sessions and cookies
set
the nth bit (counting from the right, starting at 0), use bitwise OR with a "mask":
Lesson 228Bit manipulation idiomsLesson 397Set literal `{}`
Sets
Python uses a hash table to jump directly to where the element *should* be.
Lesson 423Fast membership tests
Setup and teardown hooks
for preparing and cleaning up test environments
Lesson 927`unittest.TestCase`
SGD
(Stochastic Gradient Descent) — the classic approach
Lesson 1182Optimizers in PyTorch
shadow
built-in names by creating variables with the same name (like `len = 5`).
Lesson 496Built-in scopeLesson 500Shadowing built-ins
shallow
because it only copies the top-level list structure.
Lesson 347Shallow copy with sliceLesson 348`list.copy()`
shallow copy
a new list object containing references to the same elements as the original.
Lesson 347Shallow copy with sliceLesson 446`.copy()`Lesson 854`copy` module
Share your work
with colleagues or the community
Lesson 1187Saving and loading models
Shared state
All parts of your program see the same module instance, including any variables or objects it creates.
Lesson 692Re-imports & caching
Short codes
`'r'`, `'b'`, `'g'`, `'k'` (black), `'c'` (cyan), `'m'` (magenta), `'y'` (yellow)
Lesson 1092Customizing styles
Short, throwaway functions
passed as arguments
Lesson 507Lambda vs def
Shortcut for one-shot hashing
Lesson 859`hashlib`
Should we accelerate
in consistent directions?
Lesson 1174Optimizers
Should we adapt
the step size per weight?
Lesson 1174Optimizers
Show deployed projects
Live demos (a running API, a Jupyter notebook on Binder) are more impressive than code alone
Lesson 1289Building a portfolio
Show print statements
(`-s`):
Lesson 934Running pytest
Sign-based replacement
Lesson 1035`np.where`
Silently succeeds
if all tests pass (no output!
Lesson 948Running doctests
Simple API
Clear, readable method names that match HTTP verbs (`requests.
Lesson 1202`requests` library
Simple enough
to generalize to new, unseen data
Lesson 1133Overfitting and underfitting
Simple math
Time differences work without worrying about DST gaps
Lesson 779UTC vs local time
Simpler syntax
less boilerplate
Lesson 932Why pytest
Simulating probabilities
Lesson 785`random.random()`
Single column
`df['column_name']` → returns a **Series**
Lesson 1046Column selection
Single expressions
that fit comfortably on one line
Lesson 507Lambda vs def
Single inheritance
means one class (the **child** or **subclass**) extends another class (the **parent** or **superclass**), inheriting all its methods and attributes.
Lesson 635Single inheritance
Single linkage
minimum distance between any two points
Lesson 1164Hierarchical clustering
Single Page Application (SPA)
loads one HTML page and dynamically updates content as the user interacts with it—no full page reloads.
Lesson 1282Project: small SPA-backed web app
Single-element tuples
`(5,)` — note the trailing comma!
Lesson 371Tuple literal `()`
Site-packages directories
(where pip installs third-party packages)
Lesson 829`sys.path`
Size-mutable
You can add/remove columns and rows
Lesson 1040`pd.DataFrame` basics
Skew < 0
*left-skewed* (long tail to the left, mass on the right)
Lesson 1115Skew and kurtosis
Skew = 0
symmetric (like a normal distribution)
Lesson 1115Skew and kurtosis
Skew > 0
*right-skewed* (long tail to the right, mass on the left)
Lesson 1115Skew and kurtosis
Slice
tuples: `my_tuple[1:3]` returns a new tuple
Lesson 378Tuples are immutable
Sliding window problems
Maintain a window of recent elements efficiently.
Lesson 793`deque`
Small to medium files
where you need all lines at once
Lesson 570`.readlines()`
Smaller images
Often 50-70% size reduction
Lesson 1267Multi-stage builds
Solve real problems
or demonstrate technical depth
Lesson 1289Building a portfolio
Sorting by multiple columns
Lesson 1073Sorting
Sorting dictionaries by values
Lesson 508Lambdas in `sorted(key=...)`
Spam filter
High precision (don't block real emails) even if some spam slips through.
Lesson 1153Accuracy, precision, recall, F1
Specifying the orientation
Lesson 1082Reading JSON
Splitting text
Extract domain from email addresses
Lesson 1150Feature engineering
SQL
(Structured Query Language) is a specialized language for managing and querying data stored in **relational databases**.
Lesson 1244SQL fundamentals
SQL databases
(like SQLite, PostgreSQL, MySQL, etc.
Lesson 1083Reading SQL
SQL query string
Any valid SQL statement—`SELECT`, `JOIN`, etc.
Lesson 1083Reading SQL
SSL verification
Secure connections enabled by default
Lesson 1202`requests` library
SSL/TLS termination
Nginx handles HTTPS certificates; your app sees plain HTTP.
Lesson 1273Reverse proxy with Nginx
Stability
– Prevents surprise breakage from automatic updates
Lesson 709Installing a specific version
Stability and performance
without file-watching overhead
Lesson 1272Uvicorn for ASGI
Stacks from either end
You can treat it like two stacks in one.
Lesson 793`deque`
Stage
changes with `git add`
Lesson 984`git add` / `git commit`
Staged files
ready for your next commit
Lesson 983`git status` / `git diff`
Standard deviation (σ)
How spread out the data is.
Lesson 1118Normal distribution
standard library
, a vast collection of pre-written modules that handle everything from file operations to date manipulation, from regular expressions to HTTP requests.
Lesson 690Standard library importsLesson 969Import sorting with isort
Standard library directories
(where built-in modules live)
Lesson 829`sys.path`
Standard workflows
You want the official, widely-documented Python tooling
Lesson 719pip vs conda
Star unpacking
lets you use `*` before a variable name to collect all the "extra" values into a list:
Lesson 376Star unpacking
Start simple
Begin with a weak initial prediction (often just the mean target value)
Lesson 1143Gradient boostingLesson 1274Cloud deployment options
State
(data/attributes) — what the object *knows*
Lesson 605Why OOP
State management
Track app state (tasks list, user auth) in frontend
Lesson 1282Project: small SPA-backed web app
State-of-the-art performance
Built by top researchers
Lesson 1192Pretrained models with Hugging Face
Statement
"Make me a coffee" — This *does* something.
Lesson 13Statements and expressionsLesson 510Lambda limitations
Statements
are instructions that *do* something or *make something happen*.
Lesson 13Statements and expressions
Static analysis tools
like `mypy` that read your code without running it
Lesson 870Hints don't enforce
Static analyzers
like `mypy` can catch `greet(123)` *before you run the code*
Lesson 867Why type hints
static method
is a plain function that lives inside a class namespace but doesn't receive `self` (the instance) or `cls` (the class) automatically.
Lesson 627Static methodsLesson 628When to use each
Statistical focus
Functions like distribution plots, violin plots, box plots, and regression plots are built-in and require minimal code.
Lesson 1099Why seaborn
Statistical models
that require one observation per row
Lesson 1070`.melt()`
status code
a three-digit number telling you what happened:
Lesson 1196How HTTP worksLesson 1198Status codes
Step Into
Dive into a function call
Lesson 957PyCharm debugger basics
Step Out
Finish the current function and return
Lesson 957PyCharm debugger basics
Step Over
Execute the current line, move to the next
Lesson 957PyCharm debugger basics
Stop after first failure
(`-x`):
Lesson 934Running pytest
Stop when fast enough
perfection is the enemy of good
Lesson 979When to optimize
Stopping early
if selectors runs out:
Lesson 810`compress`
Streaming training data
means loading small batches of examples *on-the-fly*, processing them during training, then discarding them to make room for the next batch.
Lesson 1185DataLoader and Dataset
String to numeric
When numbers are loaded as text
Lesson 1060Changing dtypes
structural typing
(also called "static duck typing").
Lesson 651Protocols (typing)Lesson 882Protocols
Structured logging
means emitting logs as JSON objects with consistent field names.
Lesson 965Structured logging
Stubbing during development
– Create the class structure first, fill in details later
Lesson 607Empty class with `pass`
subclass
that inherits attributes and methods from a **parent class** using Python's single-inheritance syntax.
Lesson 635Single inheritanceLesson 887`Self` type
Subject to change
You might rename or remove it later without warning
Lesson 41Leading underscore convention
Subplots
let you arrange multiple plots (called "axes" in matplotlib) in rows and columns within one figure —like dividing a canvas into panels.
Lesson 1090Subplots
Subsequent requests
Your browser automatically includes that cookie in the headers
Lesson 1207Sessions and cookies
Subtraction (`-`)
Finds the difference between integers
Lesson 49Integer arithmetic
Success rate
percentage of non-error responses
Lesson 1276Monitoring and metrics
Sum everything
Add all weighted inputs together, plus a **bias** term: `z = w₁×x₁ + w₂×x₂ + w₃×x₃ + b`
Lesson 1168Perceptrons and neurons
Support `nonlocal`
The inner function can modify the shared variable using the `nonlocal` keyword
Lesson 513Closure cell objects
Supports groups
Access capturing groups via `.
Lesson 838`re.finditer`
SVG
– Vector format, scalable without quality loss, ideal for editing later:
Lesson 1096Saving figures
SyntaxError
happens when Python reads your code and finds something that breaks the language rules—like a typo, missing colon, or incorrect indentation.
Lesson 23SyntaxError vs runtime errorLesson 116Raw string limitations
System monitor
Check disk space, send an alert if it's low
Lesson 1284Project: automation script

T

Tabs vs spaces
PEP 8 says use spaces (and never mix them)
Lesson 25Intro to PEP 8
Talk Python To Me
(hosted by Michael Kennedy) features deep-dive interviews with library authors, framework creators, and community leaders.
Lesson 1288Staying current
Target
(also called *labels*, *output*, or *y*): The answer you're trying to *predict*
Lesson 1131Features and targets
Target A
All arrows land within 1 inch of the bullseye (low variance).
Lesson 1112Variance and std dev
Target B
Arrows land anywhere within 10 inches (high variance).
Lesson 1112Variance and std dev
Team collaboration
Different developers can own different apps
Lesson 1236Apps within a project
Template engine
Generate HTML dynamically
Lesson 1234Why Django
Template generates HTML
Placeholders get replaced with actual values
Lesson 1238Views and templates
templates
you're describing the exact shape you expect, with slots that can either demand a specific value or capture whatever's there.
Lesson 269Sequence patternsLesson 1218Templates with Jinja2Lesson 1238Views and templates
TensorFlow
is Google's deep learning framework, originally released in 2015.
Lesson 1195TensorFlow / Keras preview
Test discovery
is unittest's ability to automatically find and execute all test files in your project.
Lesson 931Test discovery
Test files
typically start with `test_` (e.
Lesson 992`tests/` directory
Test functions
inside those files also start with `test_` (e.
Lesson 992`tests/` directory
Test manually first
Run it a few times before scheduling
Lesson 1284Project: automation script
Test set
(~10-20%): Data held completely separate until the very end.
Lesson 1132Training, validation, test
Test with invalid keys
Make sure your error-handling works when auth fails (typically a 401 or 403 status code).
Lesson 1206Headers and auth
Test with small numbers
before scaling up
Lesson 280Avoiding infinite loops
Testability
Swap out dependencies in tests (e.
Lesson 1230Dependency injection
Testable
Run migrations on a staging database first.
Lesson 1240Migrations
Testing approaches
how fixtures are structured, what gets mocked, how edge cases are covered.
Lesson 1285Reading other people's code
Text handling
Python 3 properly distinguishes between text (words, sentences) and raw data (bytes), preventing common errors
Lesson 3Python 2 vs Python 3
Text mode (`'r'`)
– Python treats the file as containing text (strings).
Lesson 558Text vs binary mode
That's it
No imports, no classes, no special methods.
Lesson 932Why pytest
Think of it like
Teaching a child to identify animals by showing them pictures labeled "cat," "dog," "bird.
Lesson 1129Supervised vs unsupervised
Third-party
library imports (packages you installed with pip)
Lesson 969Import sorting with isort
Third-party extensions
Allow external libraries to add modules to your package namespace.
Lesson 705Namespace packages
Third-party libraries
using it as a generic error
Lesson 555`RuntimeError`
Thread object
pointing to that function
Lesson 892`threading.Thread`
Thread safety
immutable objects are inherently safer in concurrent code
Lesson 671Frozen dataclasses
Threads
allow you to start multiple tasks that can run *concurrently*.
Lesson 891Why threads
Throughput
requests per second (RPS)
Lesson 1276Monitoring and metrics
Timeout handling
Prevent your program from hanging on slow servers
Lesson 1202`requests` library
Timing is unpredictable
– You don't know exactly *when* it will run
Lesson 665`__del__`
title
or **author** (the content), while `.
Lesson 1073SortingLesson 1091Labels, titles, legends
Too large
You *jump wildly* past the optimal setting, overshooting the minimum repeatedly.
Lesson 1175Learning rate
Too loose
(high bias): The string won't produce the right note — it's *underfitting* the musical pattern
Lesson 1133Overfitting and underfitting
Too small
You move *millimeters* at a time.
Lesson 1175Learning rate
Too tight
(high variance): The string breaks — it's *overfitting* by being too rigid and sensitive
Lesson 1133Overfitting and underfitting
Tool-specific settings
Lesson 993`pyproject.toml`
traceback
a detailed error report that shows exactly what happened and where.
Lesson 22Reading error tracebacksLesson 527Reading a traceback
Track progress
through a calculation (partial sums, cumulative interest)
Lesson 811`accumulate`
Traditional
`Union[int, str]` (requires `from typing import Union`)
Lesson 872Union types
Traditional syntax
Lesson 872Union types
Train and save
your model using `pickle` or `joblib`.
Lesson 1281Project: ML model API
Training score
how well the model performs on the data it was trained on
Lesson 1161Learning curves
Training set
(~60-80%): The data your model learns from.
Lesson 1132Training, validation, test
Transform (keeps all items)
`[x if condition else y for x in lst]`
Lesson 358Conditional expression in comprehension
Transposition
flips an array along its diagonal — rows become columns, and columns become rows.
Lesson 1020`transpose` and `.T`
Travis CI
, **Jenkins**
Lesson 1275CI/CD basics
true division
, which means it always returns a float—even when you divide two integers that could divide evenly.
Lesson 61True division `/`Lesson 91Implicit type coercionLesson 197`/` true division
True Negative (TN)
correctly predicted "No"
Lesson 1154Confusion matrix
True Positive (TP)
correctly predicted "Yes"
Lesson 1154Confusion matrix
truncates
a number—meaning it chops off the decimal portion entirely and returns just the integer part.
Lesson 65`math.trunc`Lesson 67Float to int conversionLesson 92Explicit conversion to int
Tuple packing
happens when you write comma-separated values without explicit parentheses, and Python automatically bundles them into a tuple.
Lesson 374Tuple packing
Tuple replacement
You want tuple performance but hate `data[0]`, `data[1]`.
Lesson 792`namedtuple` recap
two arguments
to `range()`, you can set both where to start and where to stop.
Lesson 286`range(start, stop)`Lesson 370`reduce()` from functools
Two characters combined
(decomposed): `e` (U+0065) + `´` (U+0301, a combining accent)
Lesson 193Unicode normalization preview
Two-sided
"There *is* a difference" (could be higher *or* lower)
Lesson 1122Hypothesis testing intro
Type checking
`isinstance(value, expected_type)`
Lesson 634Validation in setters
type hints
directly into the definition, making your code clearer and enabling better editor support.
Lesson 396`typing.NamedTuple` class syntaxLesson 1223Why FastAPI
Type loss
Everything is text.
Lesson 1085Parquet / Feather formats

U

Ubiquity
Nearly every data science tutorial, research paper, and notebook uses it
Lesson 1087Why matplotlib
UMAP
(Uniform Manifold Approximation and Projection) are dimensionality reduction techniques designed specifically for **visualization**.
Lesson 1166t-SNE and UMAP
Unary `-`
(negative sign): Flips the sign of a number
Lesson 201Unary `+` and `-`
Unary `+`
(positive sign): Leaves the number unchanged (rarely used, but legal)
Lesson 201Unary `+` and `-`
Understand code faster
see at a glance what types a function expects
Lesson 521Annotating parameters
Understanding distributions
seeing each variable's shape at a glance
Lesson 1104Pair plots
Unicode
string by default.
Lesson 105Strings are unicode
Uniform
every value in a range is equally likely (like rolling a fair die)
Lesson 1034Random sampling
Union types
let you declare this possibility explicitly in your type hints.
Lesson 872Union types
Universal
works with Spark, SQL engines, R, etc.
Lesson 1085Parquet / Feather formats
Unix/Linux/macOS
`\n` (line feed only)
Lesson 593Newline handling on CSV
Unlicense
Public domain dedication.
Lesson 995LICENSE files
unsupervised learning
, you have **unlabeled data**—no correct answers provided.
Lesson 1129Supervised vs unsupervisedLesson 1167Anomaly detection
Unsupported operations between types
Lesson 549`TypeError`
Untracked files
Git doesn't know about yet (new Python scripts you created)
Lesson 983`git status` / `git diff`
Update
You typically modify something inside the loop so it eventually stops (otherwise it runs forever!
Lesson 273`while` basicsLesson 560`'+'` read/write modesLesson 1245SELECT, INSERT, UPDATE, DELETE
Update gate
Decides how much new information to add
Lesson 1190LSTMs and GRUs
Update predictions
Add this tree's predictions (scaled by a learning rate) to the ensemble
Lesson 1143Gradient boosting
Update weights
call `optimizer.
Lesson 1184Training loop
Upgrade/Downgrade
Moving forward or backward through versions
Lesson 1253Alembic migrations
Upgrading
Use `pip install --upgrade scikit-learn` to get the latest version.
Lesson 1135Installing scikit-learn
URL
(where you're sending the request)
Lesson 1196How HTTP works
URL dispatcher
to map incoming web requests to the right code.
Lesson 1237URL routing in Django
URL prefix
to all routes in a Blueprint:
Lesson 1220Flask Blueprints
URL routing
Map web addresses to your Python functions
Lesson 1234Why DjangoLesson 1238Views and templates
Usage
– Quick examples showing how to run your code
Lesson 994`README.md`
Use
Default choice for hidden layers in most modern networks
Lesson 1169Activation functions
Use `'a'`
when you're adding to a log file, appending new records, or building up data over time without losing history.
Lesson 576Truncating vs appending
Use `'w'`
when you're generating a completely new report, config file, or output—anything where old data is obsolete.
Lesson 576Truncating vs appending
Use `async def`
if your route calls `await` for database queries, HTTP requests, file operations, or any async library.
Lesson 1229Async routes
Use `jsonify()`
Explicitly creates a JSON response with the correct headers
Lesson 1216Returning JSON
Use `pyproject.toml`
to *declare* your project's direct dependencies and metadata.
Lesson 1256Pinning dependencies
Use `requirements.txt`
to *lock* exact versions for deployment, CI/CD, or reproducing a working environment.
Lesson 1256Pinning dependencies
Use a comprehension (brackets)
when:
Lesson 741Comprehension vs generator
Use a generator (parentheses)
when:
Lesson 741Comprehension vs generator
Use ASGI
for async frameworks like FastAPI, or when you need WebSockets, HTTP/2, or need to handle many concurrent I/O-bound requests efficiently.
Lesson 1270WSGI vs ASGI
Use regular `def`
if your route only does fast, synchronous work (e.
Lesson 1229Async routes
Use this first
to identify which high-level operations are slow.
Lesson 974Reading profile output
Use WSGI
for traditional frameworks like Flask or Django when you don't need async features.
Lesson 1270WSGI vs ASGI
User authentication
Login, logout, permissions, and password management
Lesson 1234Why Django
Users know what's safe
they won't depend on internal details you might change
Lesson 622Public vs private API
Using `and`
Both conditions must be `True` for the whole expression to be `True`.
Lesson 256Comparison with `and`/`or`
Using `or`
At least one condition must be `True` for the whole expression to be `True`.
Lesson 256Comparison with `and`/`or`
Using the loop variable
Lesson 281`for` basics
UTC (Coordinated Universal Time)
is the universal reference point—no DST shifts, no regional quirks.
Lesson 779UTC vs local time
UTF-8
, which can represent all Unicode characters:
Lesson 190Encoding strings to bytesLesson 561Encoding argument
UUID
(Universally Unique IDentifier) is a 128-bit number designed to be unique across space and time —even without coordination between systems.
Lesson 858`uuid` module
Uvicorn
– an ASGI server that runs your FastAPI application
Lesson 1222Installing FastAPILesson 1272Uvicorn for ASGI

V

Valid identifiers
follow all the rules:
Lesson 34Valid vs invalid identifiers
Validates
the value matches that type
Lesson 1225Path and query parameters
Validation
Checking if a list is empty (`len(lst) == 0`) or has the expected number of items
Lesson 363`len(lst)`
Validation score
how well it performs on unseen validation data
Lesson 1161Learning curves
Validation set
(~10-20%): Data used to tune your model and make decisions during development.
Lesson 1132Training, validation, test
Vectorization
Operations apply to entire arrays at once without explicit loops
Lesson 1002Why NumPy
Verbose output
(`-v` or `--verbose`):
Lesson 934Running pytest
Verify
confirm a variable holds the kind of data you think it does
Lesson 85The `type()` functionLesson 587Relative vs absolute paths
Verify assumptions
– Is this list actually empty?
Lesson 950Print-debugging
Verifying an installation
"Did `pip install` actually work?
Lesson 711`pip list`
Version control
different training checkpoints
Lesson 1187Saving and loading models
VGG
(uniform design), **ResNet** (skip connections), and **Inception** (multi-scale filters) each introduced innovations that shaped modern deep learning.
Lesson 1188Convolutional networks (CNNs)
View executes
The view fetches data (e.
Lesson 1238Views and templates
view object
containing all the keys in your dictionary.
Lesson 437`.keys()`Lesson 440Dict views are live
View renders template
The view passes data to a template file
Lesson 1238Views and templates
Views, not copies
Slicing returns a *view* on the original data when possible
Lesson 1015Slicing arrays
ViewSets
or **APIView** classes handle HTTP requests (GET, POST, PUT, DELETE) and return JSON responses.
Lesson 1243Django REST framework
Virtual environment folders
like `venv/` or `.
Lesson 990`.gitignore`
Virtual environments
solve this by creating isolated "bubbles" for each project—separate copies of Python and its own set of installed packages.
Lesson 714Virtual environmentsLesson 720`pipx` for tools
Virtual Machines
emulate an entire computer.
Lesson 1261What is Docker
Visit pytorch.org
and navigate to the "Get Started" section
Lesson 1177Installing PyTorch
Visualization
You can't plot 50-dimensional data, but you can plot 2D or 3D.
Lesson 1165PCALesson 1166t-SNE and UMAP
VM
might take minutes to start and use gigabytes of disk/RAM
Lesson 1261What is Docker
VMs
like shipping separate houses to different locations — each house has its own foundation, walls, plumbing, and electrical system.
Lesson 1261What is Docker
Vulnerable and Outdated Components
Using old versions of libraries with known exploits.
Lesson 1277Application security basics

W

Wait for a subset
to complete
Lesson 910`as_completed` / `wait`
Web applications
Building websites and online services
Lesson 1What is Python?
Web Development
Companies like Instagram, Spotify, and YouTube use Python to build and run their websites.
Lesson 2Why learn PythonLesson 1287Specialization paths
Weights are applied
Each input is multiplied by a **weight** (importance factor): `[w₁, w₂, w₃]`
Lesson 1168Perceptrons and neurons
What
was changed (commit message)
Lesson 986`git log`
What files have changed
(`git status`)
Lesson 983`git status` / `git diff`
What it does
(one sentence)
Lesson 1289Building a portfolio
What problems excite you
Predicting outcomes?
Lesson 1287Specialization paths
What type of error
occurred (`SyntaxError`)
Lesson 22Reading error tracebacks
When
it was made (timestamp)
Lesson 986`git log`
Which classes
your model struggles with (high off-diagonal counts)
Lesson 1154Confusion matrix
Which file
had the problem (`hello.
Lesson 22Reading error tracebacks
Which line number
(`line 3`)
Lesson 22Reading error tracebacks
Whitespace
Spaces around operators (`x = 1`, not `x=1`), no trailing whitespace.
Lesson 966PEP 8 reminders
Who
made the change (author)
Lesson 986`git log`
why
decorators exist in Python: they let you cleanly wrap logic around many different functions without repeating yourself.
Lesson 744Why decoratorsLesson 745First-class function recapLesson 1174Optimizers
Why Adam is popular
Works well out-of-the-box on many problems with minimal tuning.
Lesson 1174Optimizers
Why does this fail
Even in raw strings, Python still uses backslashes to escape the closing quote character.
Lesson 116Raw string limitations
Why does this matter
It matches mathematical convention.
Lesson 200`**` exponentiation
Why it works
OR with 1 always produces 1; OR with 0 leaves the bit unchanged.
Lesson 228Bit manipulation idioms
Why this order
Docker caches each instruction as a layer.
Lesson 1264Writing a Python Dockerfile
Why you built it
(the problem or motivation)
Lesson 1289Building a portfolio
With
it, you send only the 2 MB of actual source code you need.
Lesson 1268`.dockerignore`
With `and`
If the first lock is broken, you don't need to check the second — you already can't open the door.
Lesson 214Short-circuit semantics
With `or`
If the first lock opens, you don't need to check the second — you're already in.
Lesson 214Short-circuit semantics
With a number `n`
, it returns only the top `n` items:
Lesson 467`Counter.most_common()`
With decorators
, you write the wrapping logic *once* as a decorator, then "stamp" it onto any function with a single `@decorator_name` line.
Lesson 744Why decorators
Without arguments
, `most_common()` returns a list of *all* `(element, count)` tuples sorted from most to least frequent:
Lesson 467`Counter.most_common()`
Without context managers
, you have to remember cleanup manually:
Lesson 757Why context managers
Without decorators
, you'd have to manually wrap every function call or duplicate code inside each function body.
Lesson 744Why decorators
Workaround
Use module-level functions instead of lambdas, pass paths instead of file objects, or use serialization-friendly data structures.
Lesson 905Pickling requirements
Works with any framework
Flask, FastAPI, Django—just load it before initializing the app.
Lesson 1258`python-dotenv`
Works with cross-validation
Each fold refits the entire pipeline
Lesson 1151Pipelines
Write correct code first
clarity beats speed initially
Lesson 979When to optimize
Write for your audience
Tailor your portfolio if applying for data roles (emphasize ML projects) vs.
Lesson 1289Building a portfolio
Write mode (`'w'`)
This *truncates* the file, meaning it **immediately erases all existing content** the moment you open it.
Lesson 576Truncating vs appending
Wrong
"There's a 98% chance the coin is biased.
Lesson 1123p-values explained
Wrong path
`"files/report.
Lesson 552`FileNotFoundError`
WSGI
(Web Server Gateway Interface) is Python's original standard for synchronous web applications.
Lesson 1270WSGI vs ASGI

X

X-axis
False Positive Rate (FPR) = FP / (FP + TN)
Lesson 1155ROC and AUC
XGBoost
(Extreme Gradient Boosting): Highly optimized, parallel processing, handles missing values, regularization built-in
Lesson 1143Gradient boosting

Y

Y-axis
True Positive Rate (TPR) = TP / (TP + FN) — this is just recall!
Lesson 1155ROC and AUC
You can conditionally decorate
apply a decorator only under certain conditions by using if/else logic with manual decoration.
Lesson 746Manual decoration
You have freedom
you can refactor private methods without breaking anyone's code
Lesson 622Public vs private API
Your editor
knows `name` is a string, so it offers autocomplete for string methods
Lesson 867Why type hints

Z

Zero gradients
from the previous step
Lesson 1184Training loop
Zero-based
the first element is at index `0`
Lesson 1013Indexing 1D arrays
Zero-copy
reads (memory-mapped)
Lesson 1085Parquet / Feather formats