Python
The most popular first language: simple, powerful, versatile
Learn to write Python programs from zero: from variables and conditions all the way to functions, classes and working with files. In every lesson you run the code right in your browser and see the result. By the end of the course you will be able to build a small but real project on your own.
Course content
Python basics
BeginnerWrite your first program and get to know variables, data types, arithmetic and strings.
- 1What is Python? Your first programFind out what Python is and where it is used, and write your first program with print().10 min
- 2Variables, data types and arithmeticStore values in variables, meet the basic data types, do calculations and convert one type into another.15 min
- 3Strings and f-stringsLearn to work with text: joining, indexes, slices, handy methods and templates with f-strings.15 min
Conditions and loops
BeginnerTeach your program to make decisions and to repeat work.
Data structures
IntermediateStore and process many values with lists, tuples, sets and dictionaries.
- 6ListsKeep many values in one list: access items, add and remove them, sort them and loop over the list.17 min
- 7Tuples and setsLearn to use tuples for data that should not change and sets for collections without duplicates.14 min
- 8DictionariesStore data as key: value pairs: create a dictionary, change it, loop over it and use it for counting.16 min
Functions and modules
IntermediateSplit code into reusable functions, use the standard library and handle errors gracefully.
- 9FunctionsWrite your own functions: parameters, returning values with return, default values and variable scope.17 min
- 10Modules and the standard libraryUse ready-made tools: import, the math, random and datetime modules and other handy parts of the standard library.15 min
- 11Handling errors: try and exceptStop your program from crashing: recognise exceptions, catch them with try/except/else/finally and raise your own.15 min
Advanced Python
AdvancedWrite concise code, build classes, work with files and combine everything in a project.
- 12List and dictionary comprehensionsBuild lists, dictionaries and sets in one line: comprehensions, filter conditions and generator expressions.14 min
- 13Object-oriented programming: classes and objectsBundle data and behaviour together: classes, objects, __init__, methods, self and inheritance.20 min
- 14Files and a mini project: grade calculatorLearn to write to and read from files, then combine everything from the course in a grade calculator project.20 min
Python in depth
AdvancedGenerators, decorators, typing, async code, testing and the secrets of professional Python.
- 15Iterators and generatorsHow a `for` loop really works: the iteration protocol, `__iter__`/`__next__`, generators with `yield`, lazy evaluation, `yield from` and memory-friendly pipelines.22 min
- 16Decorators and closuresFunctions as objects, the LEGB rule, closures and `nonlocal`, writing decorators, decorators with arguments, `functools.wraps` and caching with `lru_cache`.22 min
- 17Context managers and the with statementWhat `with` really does: `__enter__` and `__exit__`, handling exceptions in `__exit__`, writing managers with `contextlib.contextmanager`, and the ready-made tools `suppress`, `redirect_stdout` and `ExitStack`.18 min
- 18Type hints and dataclassesWriting types into your code: `list[int]`, `int | None`, `Callable`, `Literal`, generics and `Protocol`, checking with mypy, plus `@dataclass`, `field`, `frozen`, `order` and `slots`.22 min
- 19Advanced OOP: special methods, properties and the MROMake your classes behave like built-in types: `__repr__`/`__str__`, `__eq__`/`__lt__`/`__hash__`, operator overloading, the container protocol, `@property`, class and static methods, the MRO, `super()` and `abc.ABC`.25 min
- 20Regular expressions with reSearching text by pattern: `re.search`, `findall`, `finditer`, character classes and quantifiers, groups and named groups, greedy vs lazy matching, `sub`, `split`, flags and `compile`.22 min
- 21Asynchronous Python: async and awaitRun waiting-heavy work concurrently: coroutines, `await`, the event loop, `asyncio.run`, `gather`, `create_task`, `TaskGroup`, timeouts, `async for` and the dangers of blocking the loop.22 min
- 22Packages, modules and virtual environmentsStructure a project like a professional: modules vs packages, `__init__.py`, relative imports, `if __name__ == '__main__'`, `venv`, `pip`, `requirements.txt`, `pyproject.toml` and version specifiers.20 min
- 23Testing with pytestWrite automated tests: how pytest finds tests, assert rewriting, checking exceptions and floats, fixtures, `tmp_path` and `parametrize`.20 min
- 24Performance, Big-O and the collections moduleWrite fast code: Big-O notation, the cost of list, dict and set operations, measuring with `timeit` and `cProfile`, `Counter`, `defaultdict`, `deque`, `namedtuple` and `itertools`.22 min
Web and automation
AdvancedJSON and CSV files, APIs, a web service with FastAPI and scripts that automate everyday work.
- 25Working with JSON and CSVTurn data into text and back with the `json` module, keep Azerbaijani letters readable with `ensure_ascii=False`, read and write tables correctly with the `csv` module, and handle files with `pathlib`.20 min
- 26Web APIs and the requests libraryHow HTTP works: methods, status codes, headers and JSON. GET and POST requests with `requests`, `params`, `headers`, `timeout`, `raise_for_status`, error handling and keeping API keys safe.18 min
- 27Web services with FastAPIBuild a small REST API with FastAPI: path and query parameters, validation with Pydantic models, 201 and 404 responses, automatic docs (`/docs`), running the server on your computer and testing it with `TestClient`.20 min
- 28Automation scriptsHand routine work over to Python: sort files with `pathlib` and `shutil`, find old files with `datetime`, build a command-line interface with `argparse`, keep a log with `logging`, and run the script on schedule with cron or Task Scheduler.20 min
Data science: NumPy, pandas, matplotlib
UniversityArray computing, tabular data analysis, charts, statistics and machine learning with scikit-learn.
- 29NumPy basics: arraysMeet the NumPy array (ndarray): type and shape, creating arrays, reproducible random numbers, indexing, slicing, boolean masks and aggregation along axes.25 min
- 30NumPy: vectorization and linear algebraReplace loops with array expressions, master the broadcasting rules, reshape arrays, and use `np.linalg` to solve linear systems and find determinants and eigenvalues.25 min
- 31pandas basics: Series and DataFrameWork with tabular data in pandas: Series and DataFrame, reading CSV, `head`, `info`, `describe`, selecting with `loc` and `iloc`, filtering, sorting and new columns.25 min
- 32Data analysis with pandasThe core tools for real data: missing values, `groupby` and `agg`, joining tables with `merge`, `pivot_table`, `map` and `apply`, dates, and a mini analysis of a café chain's sales.25 min
- 33Visualization with matplotlibBuild line, bar and scatter charts, histograms and subplots, label axes, titles and legends properly, choose the number of bins and learn the rules of honest, readable charts.25 min
- 34Statistics with PythonDescriptive statistics, outliers, the normal distribution and `scipy.stats`, the central limit theorem, confidence intervals, the t-test and correlation — with formulas, worked examples and runnable code.25 min
- 35Machine learning with scikit-learnscikit-learn's unified interface: splitting data, linear and logistic regression, decision trees, MSE, R², accuracy, the confusion matrix, precision and recall, cross-validation and pipelines that protect against data leakage.25 min
AI and deep learning with PyTorch
UniversityFrom gradient descent to neural networks: tensors, autograd, training loops, CNNs and transformers.
- 36Machine learning conceptsTypes of machine learning, features and labels, data splits, loss functions, gradient descent, overfitting and the bias–variance trade-off — with runnable NumPy examples.25 min
- 37PyTorch: tensorsInstall PyTorch and learn its core data type: creating tensors, dtype and shape, reshape/view, indexing, broadcasting, matrix multiplication with @, GPUs and NumPy interop.22 min
- 38PyTorch: autograd and automatic differentiationHow PyTorch computes derivatives for you: the computational graph, requires_grad, backward() and .grad, the chain rule, gradient accumulation, torch.no_grad() and gradient descent with autograd.22 min
- 39PyTorch: building neural networksFrom an artificial neuron to a multilayer network: z = w·x + b, activation functions (ReLU, sigmoid, tanh, softmax), nn.Linear layers, nn.Module and nn.Sequential, the forward pass and parameter counts.22 min
- 40PyTorch: the training loopDataset and DataLoader, loss functions, the SGD and Adam optimizers, the full training loop, eval mode and accuracy, saving a model with state_dict — by training a small classifier on synthetic data.25 min
- 41Convolutional neural networks (CNNs)Images as tensors (C × H × W), convolution and the output-size formula, filters, pooling, a small CNN for 28 × 28 images with a shape walk-through, MNIST with torchvision and transfer learning.25 min
- 42Transformers and large language modelsTokens and embeddings, self-attention Attention(Q, K, V) = softmax(QKᵀ/√dₖ)·V, multi-head attention, positional encoding, encoders and decoders, how LLMs learn by next-token prediction, fine-tuning, Hugging Face and responsible AI.25 min