{"id":"10e43d29-e78c-43df-8070-14e8d8655910","slug":"learning-ai-ml","kind":"mcp","name":"Learning-AI-ML","summary":"Beginner-to-advanced AI engineer course: 96 runnable Jupyter notebooks covering Python, ML, deep learning, LLMs & RAG, AI agents, MLOps and interview prep, with exercises, real-data projects and inter","owner":"MayankKumarPokhriyal","repoUrl":"https://github.com/MayankKumarPokhriyal/Learning-AI-ML","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-02-22T15:29:18.000Z","addedAt":"2026-10-21T08:24:55.084Z","logoUrl":"https://avatars.githubusercontent.com/u/45043071?u=75d1c6cbbe0c32e35fc291c45e023c9c980a19f0&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["data-analytics","search"],"tags":["agentic-ai","ai-agents","artificial-intelligence","computer-vision","course","data-science","deep-learning","generative-ai"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T03:20:03.678Z","sample":false,"url":"https://conduits.dev/tools/learning-ai-ml","language":"Jupyter Notebook","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<div align=\"center\">\n\n# AI Full Stack Engineer Course\n\n**From `print(\"hello\")` to shipping RAG apps, AI agents and production ML systems.**\n\n96 Jupyter notebooks that **actually run**. Each one has hands-on exercises with instant feedback, from-scratch builds, a real-data project and interview Q&A.\n\n[![Notebook checks](https://github.com/MayankKumarPokhriyal/Learning-AI-ML/actions/workflows/notebooks.yml/badge.svg?branch=main)](https://github.com/MayankKumarPokhriyal/Learning-AI-ML/actions/workflows/notebooks.yml)\n![Notebooks](https://img.shields.io/badge/notebooks-96-success)\n![Modules](https://img.shields.io/badge/modules-18-informational)\n![Python](https://img.shields.io/badge/python-3.12-3776AB?logo=python&logoColor=white)\n![Level](https://img.shields.io/badge/level-Beginner%20%E2%86%92%20Advanced-orange)\n![License](https://img.shields.io/badge/license-MIT-blue)\n[![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)](CONTRIBUTING.md)\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-Mayank%20Kumar%20Pokhriyal-0A66C2?logo=linkedin&logoColor=white)](https://www.linkedin.com/in/mayank-kumar-pokhriyal/)\n\n[Start here](#start-here-pick-your-level) · [Quick start](#quick-start) · [Course map](#course-at-a-glance) · [Study plan](docs/STUDY_PLAN.md) · [How to study](#how-to-study-day-to-day) · [Branches](#branches-main-and-learning) · [Troubleshooting](#troubleshooting)\n\n</div>\n\n---\n\n## Contents\n\n- [Why this course](#why-this-course)\n- [Start here: pick your level](#start-here-pick-your-level)\n- [Quick start](#quick-start)\n- [How every notebook works](#how-every-notebook-works)\n- [The roadmap](#the-roadmap)\n- [Course at a glance](#course-at-a-glance)\n- [Study plans](#study-plans)\n- [Getting started (full setup)](#getting-started-full-setup)\n- [How to study day to day](#how-to-study-day-to-day)\n- [Branches: `main` and `learning`](#branches-main-and-learning)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [Repository structure](#repository-structure)\n- [Companion resources](#companion-resources)\n- [About the author](#about-the-author)\n- [License](#license)\n\n---\n\n## Why this course\n\n- **Beginner-first.** Module 00 starts with what a variable is. Every term is defined the first time it appears.\n- **Everything runs for real.** Every notebook is executed top to bottom with its outputs saved. There are no simulated results or invented metrics, and conclusions are computed from the data. The whole course is re-run with every exercise solution before release.\n- **You write code, not just read it.** Every notebook has ✍️ *Your Turn* exercises and a graded 🟢/🟡/🔴 practice set. Run a cell and you instantly see ✅ correct, ⏳ not attempted, or ❌ with a hint. Solutions stay hidden until you want them.\n- **Built for interviews.** Each notebook has a 🔧 *Build It From Scratch* section (softmax, k-NN, backprop, attention, gradient boosting and more, with only NumPy or PyTorch). It also has 10–15 real interview questions with 30-second answers, deeper follow-ups and common wrong answers, plus a quick quiz. Module 15 covers coding rounds, ML/LLM/agentic system design and behavioral rounds.\n- **Current tools (2026).** NumPy 2, pandas 3, scikit-learn 1.9, PyTorch 2.14, Transformers 5, LangChain/LangGraph, OpenAI Agents SDK, PydanticAI, MCP, A2A, MLflow 3, Airflow 3, Spark 4.\n- **No API keys required.** LLM notebooks run against a free local model (`gpt-oss-20b` via llama.cpp) through the OpenAI-compatible API. The same code works with Ollama, LM Studio, OpenAI or Anthropic by changing three environment variables.\n- **Verified resources.** Every video, paper and doc link is checked automatically, and its title matches its label.\n\n**Who it's for:** beginners who want one ordered path into AI; students and software engineers moving into ML or AI engineering; and anyone preparing for **ML engineer, AI/LLM engineer, AI agent engineer, MLOps or data science interviews**.\n\n---\n\n## Start here: pick your level\n\nEvery notebook labels its sections 🟢 beginner, 🟡 intermediate or 🔴 interview depth, so you can go as deep as you're ready for.\n\n| If you are… | Start with | Then | Focus on |\n|---|---|---|---|\n| 🟢 **New to programming** | [00 · Python Basics](AI_Full_Stack_Engineer_Course/00_Foundations/01_Python_Basics.ipynb) | Follow [the study plan](docs/STUDY_PLAN.md) from week 1, in order. Skip *(optional)* notebooks. | 🟢 sections, ✍️ Your Turn exercises, the 📝 cheat sheet |\n| 🟡 **Comfortable with Python, new to ML** | [01 · NumPy](AI_Full_Stack_Engineer_Course/01_Core_Scientific_Computing/01_NumPy.ipynb) → [03 · ML Fundamentals](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/01_ML_Fundamentals_From_Scratch.ipynb) | The classical ML series (03), then deep learning (04) and GenAI (08) | 🔧 Build It From Scratch, 🏋️ practice sets, 🚀 mini projects |\n| 🔴 **Working engineer moving into AI** | [08 · LLM APIs & Prompting](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/01_LLM_APIs_and_Prompting.ipynb) | Agentic AI (16), production (09–10), multimodal (17), capstones 03–05 | 🔴 exercises, measured comparisons, 🎤 debugging and design questions |\n| 🎯 **Interviewing soon** | [15 · Interview Prep](AI_Full_Stack_Engineer_Course/15_Interview_Prep/) | ML coding drills, DSA patterns, ML/LLM/agentic system design, behavioral | Timed drills, [flashcards](#flashcards-for-spaced-repetition), every 🎤 Interview Q&A |\n\nWant a specific role? See the [goal-based tracks](#goal-based-tracks).\n\n---\n\n## Quick start\n\nFor experienced users on macOS (Apple Silicon) or Linux. Full, step-by-step instructions for every OS are in [Getting started](#getting-started-full-setup).\n\n```bash\ngit clone https://github.com/MayankKumarPokhriyal/Learning-AI-ML.git\ncd Learning-AI-ML\ngit switch learning                      # do your work here; main stays clean\nuv venv --python 3.12 && source .venv/bin/activate\nuv pip install -r requirements.txt\npython tools/check_setup.py              # verify everything\ntools/start_notebook.sh                  # opens classic Jupyter Notebook\n```\n\n---\n\n## How every notebook works\n\nEvery notebook follows the same rhythm (full spec: [docs/NOTEBOOK_TEMPLATE.md](docs/NOTEBOOK_TEMPLATE.md)):\n\n| Section | What you do |\n|---|---|\n| 🤔 What Is It? · 🎯 Why It Matters | Plain-English intuition, and where it shows up in jobs and interviews |\n| ✅ By the End You Can · 📋 Contents · ⚙️ Setup | Learning goals, then one setup cell (with the first-run cost: downloads, model calls, time) |\n| 1…N Concept sections | Intuition → runnable code → ✍️ **Your Turn** → 💡 **Interview angle** |\n| 🔧 Build It From Scratch | Implement the core idea yourself and check it against the library |\n| ⚠️ Common Pitfalls | Runnable ❌ wrong / ✅ right pairs |\n| 🏋️ Practice Exercises | 🟢 ×3 · 🟡 ×2 · 🔴 ×1 interview-style, with instant feedback |\n| 🚀 Mini Project | A real dataset, end to end, plus 🗣️ how to talk about it in an interview |\n| 🎤 Interview Q&A · 🧪 Quick Quiz | Answer out loud first, then reveal |\n| 📚 Resources · 📝 Cheat Sheet · ➡️ What's Next | Verified docs, videos and papers; a one-table summary; the next notebook |\n\n---\n\n## The roadmap\n\n```mermaid\nflowchart TD\n    P1[Phase 1 · Foundations<br/>Python, internals, packaging]\n    P2[Phase 2 · Data & Math<br/>NumPy, Pandas, SQL, math, statistics, visualization]\n    P3[Phase 3 · Classical ML<br/>one algorithm at a time: supervised, unsupervised, practical ML]\n    P4[Phase 4 · Deep Learning<br/>neural nets & transformers from scratch, PyTorch]\n    P5[Phase 5 · Specializations<br/>NLP, computer vision, reinforcement learning]\n    P6[Phase 6 · Generative AI<br/>LLM APIs, RAG, agents & MCP, evaluation, fine-tuning]\n    P7[Phase 7 · Production<br/>MLOps, serving, Docker & CI, big data, AutoML]\n    P8[Phase 8 · Agentic AI & Multimodal<br/>agent architectures, memory, multi-agent & A2A, evaluation, security, diffusion, VLMs, voice]\n    P9[Phase 9 · Capstones & Interview Prep]\n    P1 --> P2 --> P3 --> P4 --> P5 --> P6 --> P7 --> P8 --> P9\n```\n\nNotebooks marked *(optional)* are useful but rarely needed for interviews, so skim or skip them if time is short.\n\n---\n\n## Course at a glance\n\n### Phase 1 — Foundations · [`00_Foundations/`](AI_Full_Stack_Engineer_Course/00_Foundations/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [Python Basics](AI_Full_Stack_Engineer_Course/00_Foundations/01_Python_Basics.ipynb) | Types, containers and their costs, functions, mutability, errors, files |\n| 02 | [Python Builtins](AI_Full_Stack_Engineer_Course/00_Foundations/02_Python_Builtins.ipynb) | Generators, closures, decorators, context managers, collections, itertools |\n| 03 | [OOP in Python](AI_Full_Stack_Engineer_Course/00_Foundations/03_OOP_in_Python.ipynb) | Classes, MRO, dunder methods, dataclasses, a scikit-learn-style API from scratch |\n| 04 | [Virtual Env & Packaging](AI_Full_Stack_Engineer_Course/00_Foundations/04_Virtual_Env_and_Packaging.ipynb) | venv, uv, lock files, `pyproject.toml`, building and testing a package |\n| 05 | [Python Internals & Concurrency](AI_Full_Stack_Engineer_Course/00_Foundations/05_Python_Internals_and_Concurrency.ipynb) | References, GC, the GIL, threads vs processes vs asyncio |\n\n### Phase 2 — Data & Math · [`01_Core_Scientific_Computing/`](AI_Full_Stack_Engineer_Course/01_Core_Scientific_Computing/) · [`02_Data_Visualization/`](AI_Full_Stack_Engineer_Course/02_Data_Visualization/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [NumPy](AI_Full_Stack_Engineer_Course/01_Core_Scientific_Computing/01_NumPy.ipynb) | Vectorization, broadcasting, views vs copies, linear regression from scratch |\n| 02 | [Pandas](AI_Full_Stack_Engineer_Course/01_Core_Scientific_Computing/02_Pandas.ipynb) | pandas 3 idioms, groupby/window functions, joins, reshaping, leakage-safe cleaning |\n| 03 | [SQL with DuckDB](AI_Full_Stack_Engineer_Course/01_Core_Scientific_Computing/03_SQL_with_DuckDB.ipynb) | Joins, CTEs, window functions, classic SQL interview problems |\n| 04 | [Math for ML](AI_Full_Stack_Engineer_Course/01_Core_Scientific_Computing/04_Math_for_ML.ipynb) | Vectors, matrices, SVD/PCA, gradients, chain rule, entropy |\n| 05 | [Statistics & Probability](AI_Full_Stack_Engineer_Course/01_Core_Scientific_Computing/05_Statistics_and_Probability.ipynb) | CLT, confidence intervals, hypothesis tests, power, A/B testing |\n| 01 | [Matplotlib & Seaborn](AI_Full_Stack_Engineer_Course/02_Data_Visualization/01_Matplotlib_and_Seaborn.ipynb) | The plots every ML engineer makes, EDA that tells the truth |\n| 02 | [Plotly](AI_Full_Stack_Engineer_Course/02_Data_Visualization/02_Plotly.ipynb) *(optional)* | Interactive charts and ML dashboards |\n\n### Phase 3 — Classical Machine Learning · [`03_Classical_Machine_Learning/`](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/)\n\nAn **algorithm-by-algorithm series**, like a dedicated playlist, with one algorithm per notebook. Each one has an 🃏 **Algorithm Card** (objective, key hyperparameters, scaling needs, complexity, strengths and weaknesses, when to use it, best libraries). Each also covers the math at interview depth, experiments that break its assumptions, validation curves, and a fair head-to-head against neighbouring algorithms. You implement the algorithm in NumPy and check it against scikit-learn.\n\n**The big picture**\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [ML Fundamentals From Scratch](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/01_ML_Fundamentals_From_Scratch.ipynb) | Supervised vs unsupervised, losses, L1/L2, bias–variance, CV, metrics, calibration, in NumPy |\n| 02 | [Scikit-Learn](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/02_Scikit_Learn.ipynb) | Pipelines, CV strategies, tuning, imbalance, thresholds, persistence |\n\n**Supervised learning**\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 03 | [Linear Regression](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/03_Linear_Regression.ipynb) | OLS, gradient descent, Ridge/Lasso/ElasticNet, assumptions and diagnostics, statsmodels inference |\n| 04 | [Logistic Regression](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/04_Logistic_Regression.ipynb) | Log-loss, odds ratios, regularization, multiclass, thresholds and calibration |\n| 05 | [K-Nearest Neighbors](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/05_K_Nearest_Neighbors.ipynb) | Distance metrics, choosing k, scaling, KD/ball trees, the curse of dimensionality |\n| 06 | [Naive Bayes](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/06_Naive_Bayes.ipynb) | Bayes' rule, Gaussian/Multinomial/Bernoulli NB, smoothing, text classification |\n| 07 | [Support Vector Machines](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/07_Support_Vector_Machines.ipynb) | Margins, hinge loss, the kernel trick, C and gamma, SVR |\n| 08 | [Decision Trees](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/08_Decision_Trees.ipynb) | Gini vs entropy, CART splits, pruning, feature importance pitfalls |\n| 09 | [Random Forest & Bagging](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/09_Random_Forest_and_Bagging.ipynb) | Bootstrap, variance reduction, OOB error, Extra Trees, permutation importance |\n| 10 | [Gradient Boosting](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/10_Gradient_Boosting.ipynb) | XGBoost, LightGBM, CatBoost, and boosting math from scratch |\n| 11 | [Ensembles: Voting, Stacking & AdaBoost](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/11_Ensembles_Voting_Stacking_AdaBoost.ipynb) | Hard/soft voting, leakage-free stacking, AdaBoost's exponential loss |\n\n**Unsupervised learning**\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 12 | [Clustering: K-Means & Hierarchical](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/12_Clustering_KMeans_and_Hierarchical.ipynb) | Lloyd's algorithm, k-means++, choosing k, linkages and dendrograms, cluster profiling |\n| 13 | [Clustering: DBSCAN & Gaussian Mixtures](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/13_Clustering_DBSCAN_and_Gaussian_Mixtures.ipynb) | Density clustering, HDBSCAN, EM, BIC/AIC, soft assignments |\n| 14 | [Dimensionality Reduction: PCA, t-SNE, UMAP](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/14_Dimensionality_Reduction_PCA_tSNE_UMAP.ipynb) | PCA via SVD, explained variance, t-SNE and UMAP for visualization, when not to trust them |\n| 15 | [Anomaly Detection](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/15_Anomaly_Detection.ipynb) | Isolation Forest, LOF, One-Class SVM, PyOD, evaluating with few labels |\n\n**Practical ML**\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 16 | [Feature Engineering & Selection](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/16_Feature_Engineering_and_Selection.ipynb) | Encoding, transforms, interactions, filter/wrapper/embedded selection without leakage |\n| 17 | [Imbalanced Data & Model Evaluation](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/17_Imbalanced_Data_and_Model_Evaluation.ipynb) | Resampling and SMOTE done right, class weights, PR curves, cost-based thresholds |\n| 18 | [Model Interpretability: SHAP & LIME](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/18_Model_Interpretability_SHAP_LIME.ipynb) | Shapley values, SHAP and LIME, partial dependence, explaining models honestly |\n| 19 | [Recommender Systems](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/19_Recommender_Systems.ipynb) | Collaborative filtering, matrix factorization, implicit feedback, ranking metrics |\n| 20 | [Time-Series Forecasting](AI_Full_Stack_Engineer_Course/03_Classical_Machine_Learning/20_Time_Series_Forecasting.ipynb) | Decomposition, ETS/ARIMA with statsmodels, lag features with boosting, backtesting |\n\n### Phase 4 — Deep Learning · [`04_Deep_Learning/`](AI_Full_Stack_Engineer_Course/04_Deep_Learning/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [Neural Networks From Scratch](AI_Full_Stack_Engineer_Course/04_Deep_Learning/01_Neural_Networks_From_Scratch.ipynb) | Backprop by hand, a tiny autograd engine, optimizers, dropout |\n| 02 | [PyTorch](AI_Full_Stack_Engineer_Course/04_Deep_Learning/02_PyTorch.ipynb) | Tensors, autograd, training loops done right, CNNs, mixed precision |\n| 03 | [Transformers From Scratch](AI_Full_Stack_Engineer_Course/04_Deep_Learning/03_Transformers_From_Scratch.ipynb) | BPE, attention, RoPE, a mini-GPT, KV cache |\n| 04 | [Keras 3 Overview](AI_Full_Stack_Engineer_Course/04_Deep_Learning/04_Keras_3_Overview.ipynb) *(optional)* | Multi-backend Keras, callbacks, custom layers |\n\n### Phase 5 — Specializations\n\n**NLP** · [`05_NLP/`](AI_Full_Stack_Engineer_Course/05_NLP/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [Classical NLP](AI_Full_Stack_Engineer_Course/05_NLP/01_Classical_NLP.ipynb) | Tokenization, spaCy, TF-IDF baselines, word2vec |\n| 02 | [Embeddings & Semantic Search](AI_Full_Stack_Engineer_Course/05_NLP/02_Embeddings_and_Semantic_Search.ipynb) | Bi- vs cross-encoders, FAISS, hybrid search, reranking, retrieval metrics |\n| 03 | [Hugging Face Transformers](AI_Full_Stack_Engineer_Course/05_NLP/03_HuggingFace_Transformers.ipynb) | Tokenizers, fine-tuning with Trainer, NER, LoRA intro |\n\n**Computer Vision** · [`06_Computer_Vision/`](AI_Full_Stack_Engineer_Course/06_Computer_Vision/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [OpenCV](AI_Full_Stack_Engineer_Course/06_Computer_Vision/01_OpenCV.ipynb) | Filtering, edges, contours, feature matching, homography |\n| 02 | [CNNs & Transfer Learning](AI_Full_Stack_Engineer_Course/06_Computer_Vision/02_CNNs_and_Transfer_Learning.ipynb) | Convolution math, ResNets, fine-tuning, Grad-CAM |\n| 03 | [YOLO Object Detection](AI_Full_Stack_Engineer_Course/06_Computer_Vision/03_YOLO_Object_Detection.ipynb) | IoU, NMS, mAP from scratch; training and tracking with YOLO |\n\n**Reinforcement Learning** · [`07_Reinforcement_Learning/`](AI_Full_Stack_Engineer_Course/07_Reinforcement_Learning/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [Gymnasium & Q-Learning](AI_Full_Stack_Engineer_Course/07_Reinforcement_Learning/01_Gymnasium_and_Q_Learning.ipynb) | MDPs, Bellman equations, value iteration, Q-learning vs SARSA |\n| 02 | [Deep RL with Stable-Baselines3](AI_Full_Stack_Engineer_Course/07_Reinforcement_Learning/02_Deep_RL_with_Stable_Baselines3.ipynb) | DQN, REINFORCE from scratch, PPO, and how RLHF works |\n\n### Phase 6 — Generative AI & LLMs · [`08_Generative_AI_LLM/`](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [LLM APIs & Prompting](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/01_LLM_APIs_and_Prompting.ipynb) | Chat APIs, structured output, tool calling, streaming, cost & latency |\n| 02 | [RAG From Scratch](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/02_RAG_From_Scratch.ipynb) | Chunking, hybrid retrieval, reranking, grounded answers with citations |\n| 03 | [LangChain & LangGraph](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/03_LangChain_and_LangGraph.ipynb) | LCEL, stateful graphs, checkpoints, human-in-the-loop |\n| 04 | [LlamaIndex](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/04_LlamaIndex.ipynb) | Indexes, retrievers, query engines, workflows |\n| 05 | [Agents, Tool Calling & MCP](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/05_Agents_Tool_Calling_and_MCP.ipynb) | Agent loops, tool errors, MCP servers and clients, prompt-injection defenses |\n| 06 | [LLM Evaluation](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/06_LLM_Evaluation.ipynb) | Golden sets, retrieval metrics, LLM-as-judge, regression testing |\n| 07 | [Fine-Tuning with LoRA & DPO](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/07_Fine_Tuning_LoRA_and_DPO.ipynb) | SFT, LoRA/QLoRA, preference tuning, before/after evaluation |\n| 08 | [LLM Inference & Serving](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/08_LLM_Inference_and_Serving.ipynb) | KV-cache math, batching, quantization, vLLM and llama.cpp |\n| 09 | [Distributed Training Overview](AI_Full_Stack_Engineer_Course/08_Generative_AI_LLM/09_Distributed_Training_Overview.ipynb) *(optional)* | Data/tensor/pipeline parallelism, ZeRO, FSDP memory math |\n\n### Phase 7 — Production\n\n**MLOps** · [`09_MLOps/`](AI_Full_Stack_Engineer_Course/09_MLOps/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [MLflow](AI_Full_Stack_Engineer_Course/09_MLOps/01_MLflow.ipynb) | Tracking, registry aliases, serving, tracing |\n| 02 | [Weights & Biases](AI_Full_Stack_Engineer_Course/09_MLOps/02_Weights_and_Biases.ipynb) *(optional)* | Experiment dashboards, artifacts, sweeps |\n| 03 | [DVC](AI_Full_Stack_Engineer_Course/09_MLOps/03_DVC.ipynb) | Data versioning, reproducible pipelines, experiments |\n| 04 | [Airflow](AI_Full_Stack_Engineer_Course/09_MLOps/04_Airflow.ipynb) | Airflow 3 TaskFlow DAGs, scheduling, testing, a retraining DAG |\n| 05 | [Model Monitoring & Drift](AI_Full_Stack_Engineer_Course/09_MLOps/05_Model_Monitoring_and_Drift.ipynb) | Drift statistics, monitoring without labels, retraining triggers |\n| 06 | [Kubeflow Pipelines](AI_Full_Stack_Engineer_Course/09_MLOps/06_Kubeflow_Pipelines.ipynb) *(optional)* | KFP v2 components, artifacts, control flow, local and Docker runs |\n\n**Model Serving** · [`10_Model_Serving/`](AI_Full_Stack_Engineer_Course/10_Model_Serving/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [FastAPI](AI_Full_Stack_Engineer_Course/10_Model_Serving/01_FastAPI.ipynb) | Model APIs, validation, async vs sync, testing (with a Flask comparison) |\n| 02 | [Docker & CI/CD](AI_Full_Stack_Engineer_Course/10_Model_Serving/02_Docker_and_CI_CD.ipynb) | Dockerfiles for ML, GitHub Actions, load testing |\n| 03 | [BentoML](AI_Full_Stack_Engineer_Course/10_Model_Serving/03_BentoML.ipynb) | Services, adaptive batching, packaging |\n| 04 | [Ray Serve](AI_Full_Stack_Engineer_Course/10_Model_Serving/04_Ray_Serve.ipynb) *(optional)* | Deployments, composition, autoscaling |\n\n**Data Processing** · [`11_Data_Processing/`](AI_Full_Stack_Engineer_Course/11_Data_Processing/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [Polars](AI_Full_Stack_Engineer_Course/11_Data_Processing/01_Polars.ipynb) | Expressions, lazy queries, pushdown, fair benchmarks |\n| 02 | [PySpark](AI_Full_Stack_Engineer_Course/11_Data_Processing/02_PySpark.ipynb) | Spark 4, joins and shuffles, AQE, skew, MLlib |\n| 03 | [Dask](AI_Full_Stack_Engineer_Course/11_Data_Processing/03_Dask.ipynb) *(optional)* | Partitions, task graphs, distributed scheduler |\n\n**AutoML & Experimentation** · [`12_AutoML_Experimentation/`](AI_Full_Stack_Engineer_Course/12_AutoML_Experimentation/)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [Optuna](AI_Full_Stack_Engineer_Course/12_AutoML_Experimentation/01_Optuna.ipynb) | TPE, pruning, multi-objective tuning, tuning without leakage |\n| 02 | [Ray Tune](AI_Full_Stack_Engineer_Course/12_AutoML_Experimentation/02_Ray_Tune.ipynb) | Distributed tuning, ASHA, population-based training |\n| 03 | [AutoGluon](AI_Full_Stack_Engineer_Course/12_AutoML_Experimentation/03_AutoGluon.ipynb) *(optional)* | Strong tabular baselines in minutes |\n\n### Phase 8 — Agentic AI & Multimodal · [`16_Agentic_AI/`](AI_Full_Stack_Engineer_Course/16_Agentic_AI/) · [`17_Multimodal_and_Generative_Models/`](AI_Full_Stack_Engineer_Course/17_Multimodal_and_Generative_Models/)\n\n**Agentic AI:** how to design, build, evaluate, secure and ship AI agents. Every pattern, framework and defense is measured on real tasks against a local LLM. (The study plan puts this module right after Model Serving.)\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [Agent Architectures & Workflow Patterns](AI_Full_Stack_Engineer_Course/16_Agentic_AI/01_Agent_Architectures_and_Workflow_Patterns.ipynb) | Chaining, routing, parallelization, orchestrator–workers, evaluator–optimizer; ReAct vs plan-and-execute vs ReWOO vs Reflexion; loop control |\n| 02 | [Context Engineering & Agent Memory](AI_Full_Stack_Engineer_Course/16_Agentic_AI/02_Context_Engineering_and_Agent_Memory.ipynb) | Context budgets, compaction, tool-output handling, prompt caching, working/episodic/semantic memory, LangGraph stores |\n| 03 | [Code Agents, Browser Agents & Computer Use](AI_Full_Stack_Engineer_Course/16_Agentic_AI/03_Code_Agents_Browser_Agents_and_Computer_Use.ipynb) | Tool design for agents, code-as-action, sandboxing, Playwright web agents, coding-agent loops |\n| 04 | [Multi-Agent Systems & A2A](AI_Full_Stack_Engineer_Course/16_Agentic_AI/04_Multi_Agent_Systems_and_A2A.ipynb) | Supervisor, handoffs, debate, blackboard; why multi-agent systems fail; the A2A protocol vs MCP |\n| 05 | [Agent Frameworks Compared](AI_Full_Stack_Engineer_Course/16_Agentic_AI/05_Agent_Frameworks_Compared.ipynb) | One agent built in the raw SDK, OpenAI Agents SDK, PydanticAI, smolagents and LangGraph, measured; CrewAI, AutoGen and ADK explained |\n| 06 | [Agent Evaluation & Benchmarks](AI_Full_Stack_Engineer_Course/16_Agentic_AI/06_Agent_Evaluation_and_Benchmarks.ipynb) | Outcome vs trajectory metrics, pass^k, simulated users, trajectory judges, CI gates, SWE-bench/τ-bench/GAIA |\n| 07 | [Agent Security & Guardrails](AI_Full_Stack_Engineer_Course/16_Agentic_AI/07_Agent_Security_and_Guardrails.ipynb) | Prompt injection, the lethal trifecta, least privilege, human-in-the-loop, dual-LLM/CaMeL, NeMo Guardrails, red teaming |\n| 08 | [Production Agents](AI_Full_Stack_Engineer_Course/16_Agentic_AI/08_Production_Agents_Observability_Reliability_Cost.ipynb) | Tracing, SLOs, retries and idempotency, durable execution, streaming job APIs, cost control, safe rollouts |\n\n**Multimodal & Generative Models**\n\n| # | Notebook | You will learn |\n|---|---|---|\n| 01 | [Generative Models: VAEs, GANs & Diffusion](AI_Full_Stack_Engineer_Course/17_Multimodal_and_Generative_Models/01_Generative_Models_VAEs_GANs_Diffusion.ipynb) | Autoencoders to VAEs, GANs, a diffusion model from scratch, latent diffusion and guidance |\n| 02 | [Vision-Language Models & Multimodal RAG](AI_Full_Stack_Engineer_Course/17_Multimodal_and_Generative_Models/02_Vision_Language_Models_and_Multimodal_RAG.ipynb) | CLIP/SigLIP, small VLMs, document understanding, multimodal retrieval |\n| 03 | [Speech AI & Voice Agents](AI_Full_Stack_Engineer_Course/17_Multimodal_and_Generative_Models/03_Speech_AI_and_Voice_Agents.ipynb) | Whisper speech recognition, text-to-speech, latency budgets and turn-taking for voice agents |\n\n### Phase 9 — Capstones, Templates & Interview Prep\n\n**Capstone projects** · [`13_Capstone_Projects/`](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/). Each one is a notebook walkthrough **plus a real project folder** with code, tests, a Dockerfile and a CI workflow you can put on your résumé.\n\n| # | Project | Project folder |\n|---|---|---|\n| 01 | [End-to-End ML Project](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/01_End_to_End_ML_Project.ipynb) | [`churn_service/`](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/churn_service/) |\n| 02 | [End-to-End DL Project](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/02_End_to_End_DL_Project.ipynb) | [`image_classifier/`](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/image_classifier/) |\n| 03 | [LLM RAG Assistant](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/03_LLM_RAG_Assistant_Project.ipynb) | [`rag_assistant/`](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/rag_assistant/) |\n| 04 | [AI Agent](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/04_AI_Agent_Project.ipynb) | [`ai_agent/`](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/ai_agent/) |\n| 05 | [Multi-Agent System: AI Data Analyst Team](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/05_Multi_Agent_System_Project.ipynb) | [`data_analyst_agents/`](AI_Full_Stack_Engineer_Course/13_Capstone_Projects/data_analyst_agents/) |\n\n**Templates** · [`14_Templates/`](AI_Full_Stack_Engineer_Course/14_Templates/), fill-in starters for your own projects: [ML](AI_Full_Stack_Engineer_Course/14_Templates/01_ML_Template.ipynb) · [DL](AI_Full_Stack_Engineer_Course/14_Templates/02_DL_Template.ipynb) · [LLM](AI_Full_Stack_Engineer_Course/14_Templates/03_LLM_Template.ipynb)\n\n**Interview Prep** · [`15_Interview_Prep/`](AI_Full_Stack_Engineer_Course/15_Interview_Prep/)\n\n| # | Notebook | Round it prepares you for |\n|---|---|---|\n| 01 | [ML Coding Drills](AI_Full_Stack_Engineer_Course/15_Interview_Prep/01_ML_Coding_Drills.ipynb) | \"Implement X in NumPy/PyTorch\" coding rounds |\n| 02 | [ML Theory & Statistics Questions](AI_Full_Stack_Engineer_Course/15_Interview_Prep/02_ML_Theory_and_Statistics_Questions.ipynb) | Conceptual ML/stats screens |\n| 03 | [ML System Design](AI_Full_Stack_Engineer_Course/15_Interview_Prep/03_ML_System_Design.ipynb) | Recommenders, fraud, search ranking design rounds |\n| 04 | [LLM System Design](AI_Full_Stack_Engineer_Course/15_Interview_Prep/04_LLM_System_Design.ipynb) | RAG, agents, evaluation, cost/latency design rounds |\n| 05 | [Behavioral & Project Storytelling](AI_Full_Stack_Engineer_Course/15_Interview_Prep/05_Behavioral_and_Project_Storytelling.ipynb) | \"Walk me through your project\" and behavioral rounds |\n| 06 | [DSA Coding Patterns — Part 1](AI_Full_Stack_Engineer_Course/15_Interview_Prep/06_DSA_Coding_Patterns_Part_1.ipynb) | LeetCode-style rounds: arrays & hashing, two pointers, sliding window, stacks, binary search |\n| 07 | [DSA Coding Patterns — Part 2](AI_Full_Stack_Engineer_Course/15_Interview_Prep/07_DSA_Coding_Patterns_Part_2.ipynb) | Linked lists, trees, graphs, heaps, dynamic programming, backtracking |\n| 08 | [Agentic AI System Design](AI_Full_Stack_Engineer_Course/15_Interview_Prep/08_Agentic_AI_System_Design.ipynb) | \"Design an agent that…\" rounds: architecture, tools and permissions, memory, evaluation, security, cost |\n\n---\n\n## Study plans\n\n### Full course, week by week\n\n**[docs/STUDY_PLAN.md](docs/STUDY_PLAN.md)** has a checkbox for every notebook in order. It also explains how to study a single notebook and sets out a weekly rhythm with review days and mock interviews. Budget roughly 6–8 hours per notebook.\n\n| Pace | Duration |\n|---|---|\n| Full-time (~6 h/day) | about 21 weeks |\n| Part-time (2–3 h/day) | about 12 months |\n\n| Weeks (full-time) | Focus |\n|---|---|\n| 1–3 | Python, NumPy, Pandas, SQL, math, statistics, visualization (00–02) |\n| 3–7 | Classical ML algorithm series (03), with DSA practice starting in week 3 |\n| 7–9 | Deep learning, NLP, computer vision, RL (04–07) |\n| 9–11 | Generative AI & LLMs (08) |\n| 11–13 | MLOps and model serving (09–10) |\n| 13–15 | Agentic AI (16), then multimodal and generative models (17) |\n| 16 | Data processing and AutoML (11–12) |\n| 17–19 | Capstones and your own portfolio project (13–14) |\n| 20–21 | Interview prep (15) and mock interviews |\n\n### Goal-based tracks\n\n- **ML Engineer:** 00 → 01 → 02/01 → 03 → 04/01–02 → 09/01, 03, 05 → 10/01–02 → 12/01 → Capstone 01 → 15/01–03\n- **LLM / GenAI Engineer:** 00 → 01/01–02, 04 → 03/01 → 04/01–03 → 05/02–03 → 08 (all) → 10/01–02 → 16/01–02, 06–07 → 17/02 → Capstones 03–05 → 15/01, 04–05, 08\n- **AI Agent Engineer:** 00 → 01/01–02 → 03/01, 04 → 04/01–03 → 05/02 → 08/01–03, 05–06 → 10/01–02 → 16 (all) → 17/03 → Capstones 04–05 → 15/04, 06–08\n- **MLOps Engineer:** 00 → 01/02–03 → 03/02 → 09 (all) → 10 (all) → 11/01–02 → 12/01 → Capstone 01 → 15/03\n- **Computer Vision Engineer:** 00 → 01/01, 04 → 02/01 → 04/01–02 → 06 (all) → 09/01 → 10/01–02 → Capstone 02\n- **Data Scientist:** 00/01–02 → 01 (all) → 02/01 → 03 (all) → 12/01 → Capstone 01 → 15/01–03, 06\n- **Interview sprint (4 weeks, if you already know the basics):** every 🔧 *Build It From Scratch* section in modules 01–04 and 08 → all Interview Q&A sections (as flashcards) → module 15\n\n### Flashcards for spaced repetition\n\n```bash\npython tools/export_flashcards.py            # → flashcards/ai_course_interview_flashcards.csv\npython tools/export_flashcards.py --include-quiz\n```\n\nThis exports every 🎤 interview question in the course (1,600+ cards), with its answer, as a CSV that Anki can import directly. Cards are tagged by module and notebook, so you can review only what you've finished.\n\n---\n\n## Getting started (full setup)\n\nSetup takes about 15–30 minutes, most of it downloading packages. You need no API keys and no GPU.\n\n### What you need\n\n| | |\n|---|---|\n| **Operating system** | **macOS 14 (Sonoma) or newer on Apple Silicon**, **Linux** (x86-64 or ARM64), or **Windows 10/11** (x86-64). Intel Macs are not supported, because current PyTorch, Ray and FAISS publish no Intel-Mac packages; use a Linux machine or a cloud VM instead. |\n| **Memory** | 16 GB RAM recommended; 8 GB works for most notebooks if you run one at a time. The optional 20B local LLM for modules 08 and 16 needs about 16 GB by itself (smaller models work too; see [the local LLM step](#6-optional-local-llm-for-modules-08-and-16)). |\n| **Disk** | About 12 GB: 4 GB for the main environment, plus 8 GB of datasets and models downloaded as you progress. Doing everything takes about 30 GB, including the optional environments (3.5 GB) and the local LLM (12 GB). |\n| **Software** | [Git](https://git-scm.com/downloads) and [uv](https://docs.astral.sh/uv/getting-started/installation/). uv installs Python 3.12 for you. |\n\nInstall uv if you don't have it:\n\n```bash\n# macOS / Linux\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n# Windows (PowerShell)\npowershell -ExecutionPolicy ByPass -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n```\n\n### 1. Fork (or clone) and switch to the `learning` branch\n\nClick **Fork** at the top of this page so you can push your own progress, then:\n\n```bash\ngit clone https://github.com/<your-username>/Learning-AI-ML.git\ncd Learning-AI-ML\ngit switch learning        # your workspace; main stays as the clean course\n```\n\nJust want to read? `git clone https://github.com/MayankKumarPokhriyal/Learning-AI-ML.git` works too. See [Branches](#branches-main-and-learning) for how the two branches work.\n\n### 2. Create the main environment\n\n```bash\nuv venv --python 3.12\nsource .venv/bin/activate          # Windows: .venv\\Scripts\\activate\nuv pip install -r requirements.txt\n```\n\n- **Linux without an NVIDIA GPU:** add `--torch-backend=cpu` to the install command. It downloads the CPU build of PyTorch instead of several GB of CUDA libraries.\n- **No uv?** Run `python3.12 -m venv .venv`, activate it, then `pip install -r requirements.txt`.\n\nThis one environment runs every notebook except the five listed in step 4.\n\n### 3. Check your setup\n\n```bash\npython tools/check_setup.py\n```\n\nThe check:\n\n- confirms Python 3.12 and every pinned package;\n- test-imports the libraries that need native code (PyTorch, XGBoost, LightGBM, FAISS, spaCy, OpenCV, the agent frameworks);\n- checks that Jupyter will use this environment;\n- reports which optional pieces (Java, Docker, Playwright's browser, FFmpeg, a local LLM, the extra environments) you still need, and for which notebooks.\n\nFix anything marked ❌ before you start. Anything marked ⏭️ can wait until you reach the notebook that needs it.\n\n### 4. Optional: separate environments for five notebooks\n\nThese notebooks need library versions that conflict with the main environment, so each gets its own small environment. Create one only when you reach that notebook:\n\n| Notebook | Environment |\n|---|---|\n| `08_Generative_AI_LLM/04_LlamaIndex` | `llamaindex` |\n| `09_MLOps/04_Airflow` | `airflow` (on Windows, use [WSL2](https://learn.microsoft.com/windows/wsl/install): Airflow doesn't run natively on Windows) |\n| `09_MLOps/05_Model_Monitoring_and_Drift` | `monitoring` |\n| `09_MLOps/06_Kubeflow_Pipelines` | `kfp` |\n| `12_AutoML_Experimentation/03_AutoGluon` | `autogluon` |\n\n```bash\n# replace airflow with the environment you need\nuv venv .venvs/airflow --python 3.12\nuv pip install --python .venvs/airflow -r requirements-airflow.txt\n```\n\nKeep the `.venvs/<name>` folder names. On macOS and Linux, the launcher in step 7 finds them and adds a kernel for each one. On Windows, register the kernel yourself:\n\n```powershell\n.venvs\\airflow\\Scripts\\python -m ipykernel install --user --name ai-course-airflow --display-name \"AI course: airflow env\"\n```\n\n### 5. Optional: system tools for a few notebooks\n\n| Needed for | macOS | Ubuntu / Debian | Windows |\n|---|---|---|---|\n| XGBoost / LightGBM | `brew install libomp` | preinstalled | preinstalled |\n| PySpark (`11_Data_Processing/02_PySpark`) | `brew install openjdk@17` | `sudo apt install openjdk-17-jdk` | [Temurin JDK 17](https://adoptium.net/temurin/releases/?version=17), then set `JAVA_HOME` |\n| Docker notebook, capstone containers, Kubeflow's Docker runner | [Docker Desktop](https://www.docker.com/products/docker-desktop/) | [Docker Engine](https://docs.docker.com/engine/install/) | [Docker Desktop](https://www.docker.com/products/docker-desktop/) |\n| Local LLM (modules 08 and 16, capstones 03–05, speech notebook) | `brew install llama.cpp` | [llama.cpp releases](https://github.com/ggml-org/llama.cpp/releases) | [llama.cpp releases](https://github.com/ggml-org/llama.cpp/releases) |\n| Browser agents (`16_Agentic_AI/03`) | `python -m playwright install chromium` | `python -m playwright install --with-deps chromium` | `python -m playwright install chromium` |\n| Audio decoding for the speech notebook (`17_Multimodal_and_Generative_Models/03`, via torchcodec) | `brew install ffmpeg` | `sudo apt install ffmpeg` | a shared FFmpeg build from [ffmpeg.org](https://ffmpeg.org/download.html) on your `PATH` |\n\n### 6. Optional: local LLM for modules 08 and 16\n\nThe LLM notebooks call an OpenAI-compatible API. The free default is `gpt-oss-20b` served by llama.cpp. The first start downloads about 12 GB:\n\n```bash\nllama-server -hf ggml-org/gpt-oss-20b-GGUF --port 8080 --jinja -c 32768 -np 2\n```\n\n`--jinja` enables tool calling, and `-c 32768 -np 2` gives two parallel requests with 16k tokens of context each, which is what the agent notebooks expect. Leave it running in its own terminal. Stop it (Ctrl+C) while you work through the deep learning and multimodal notebooks, to free memory.\n\nTo use a different server or a smaller model, set these variables **in the terminal you start Jupyter from**:\n\n| Variable | Default | Examples |\n|---|---|---|\n| `LLM_BASE_URL` | `http://127.0.0.1:8080/v1` | Ollama `http://localhost:11434/v1` · LM Studio `http://localhost:1234/v1` · OpenAI `https://api.openai.com/v1` |\n| `LLM_MODEL` | `gpt-oss-20b` | any model your server provides |\n| `LLM_API_KEY` | `local` | your provider's key (never commit it) |\n\n```bash\nexport LLM_BASE_URL=http://localhost:11434/v1 LLM_MODEL=<model-name>    # macOS / Linux\n$env:LLM_BASE_URL=\"http://localhost:11434/v1\"; $env:LLM_MODEL=\"<model-name>\"   # Windows PowerShell\n```\n\nSmaller models work, but tool calling and structured output are less reliable than with the default.\n\n### 7. Launch Jupyter\n\n**macOS / Linux:**\n\n```bash\ntools/start_notebook.sh      # classic Jupyter Notebook, with the course kernels registered\n```\n\nThe launcher makes the default **Python 3** kernel use `.venv`, even if you already have another Python kernel installed. It also adds a kernel for each environment in `.venvs/` and prints which notebooks need which kernel. Your global Jupyter settings are not changed.\n\n**Windows (or if you prefer JupyterLab):** with `.venv` activated, run `jupyter notebook` or `jupyter lab`. If `check_setup.py` warned that the **python3** kernel points at a different Python, run this once: `python -m ipykernel install --user --name python3 --display-name \"Python 3 (AI course)\"`.\n\nOpen [`00_Foundations/01_Python_Basics.ipynb`](AI_Full_Stack_Engineer_Course/00_Foundations/01_Python_Basics.ipynb) (or your [starting point](#start-here-pick-your-level)) and follow [docs/STUDY_PLAN.md](docs/STUDY_PLAN.md).\n\n---\n\n## How to study day to day\n\n### Recommended setup: classic Jupyter Notebook on your own machine\n\n| Tool | Use it for | Why |\n|---|---|---|\n| **Jupyter Notebook, locally** (recommended) | Learning: every notebook, cell by cell | The course is built and verified this way. Everything works locally: the local LLM, Docker, Playwright and the separate environments. |\n| **VS Code** | The capstone project folders (`13_Capstone_Projects/*/`): code, tests, Dockerfiles, git | A real editor, debugger and terminal for project code. Notebooks also open fine here: pick `.venv` as the kernel. |\n| **Google Colab** | Optional: only the few cells that need an NVIDIA GPU (QLoRA, vLLM) | Colab has no local LLM server, no Docker, no separate environments, and sessions reset, so most notebooks won't run as designed there. |\n\n### A daily routine\n\n1. **Start Jupyter.** `cd Learning-AI-ML && source .venv/bin/activate && tools/start_notebook.sh`\n2. **Start extras only when a notebook needs them.**\n   - **Local LLM:** modules 08 and 16, capstones 03–05 and the speech notebook ([step 6](#6-optional-local-llm-for-modules-08-and-16)). Stop it during deep learning and multimodal notebooks.\n   - **Docker Desktop:** the Docker notebook and capstone containers.\n3. **Open today's notebook** from the [study plan](docs/STUDY_PLAN.md) and choose **Kernel → Restart & Clear Output**.\n4. **Run one cell at a time** with **Shift + Enter**. Before each run, predict the output; after it, change one thing and re-run.\n5. **Solve every ✍️ Your Turn cell** until the checker shows ✅. Open a solution only after a real attempt.\n6. **Say each 💡 Interview angle and 🎤 Q&A answer out loud** before revealing the answer. Keep a *mistakes log*.\n7. **Keep one notebook open at a time** and shut finished ones down from the **Running** tab. Memory matters for the LLM and deep learning notebooks.\n8. **Commit your progress** on the `learning` branch (see below) and review 20 flashcards.\n\nEach notebook's ⚙️ Setup section tells you its **first-run cost**: downloads, LLM calls and time. Agent notebooks replay model replies from a cache in `_outputs/` on later runs, so re-runs are much faster.\n\n---\n\n## Branches: `main` and `learning`\n\n| Branch | What it is | Who changes it |\n|---|---|---|\n| **`main`** | The complete, verified course: every notebook with real saved outputs, the tools and the docs. | Only course updates (pull requests). Never do exercises here. |\n| **`learning`** | Your workspace: the same course, where you run notebooks, type answers and keep notes. | You. Mistakes here never touch `main`. |\n\n```bash\ngit switch learning                                   # work here\ngit add -A && git commit -m \"Week 4: logistic regression exercises\"\ngit push                                              # back up your progress (to your fork)\n\ngit switch main && git pull                           # get course updates…\ngit switch learning && git merge main                 # …and bring them into your workspace\n\ngit restore --source main -- AI_Full_Stack_Engineer_Course/<module>/<notebook>.ipynb   # reset one notebook to the course version\n```\n\nIf a merge from `main` conflicts in a notebook you've been editing, keep your version, or take the course version with the `git restore` command above. **Using a fork?** Add the original course as `upstream` once (`git remote add upstream https://github.com/MayankKumarPokhriyal/Learning-AI-ML.git`). Then refresh your `main` with `git switch main && git pull upstream main && git push origin main` and merge it into `learning` as above.\n\n---\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| `ModuleNotFoundError` for a package that is installed | The notebook is running on a different Python. Run `python tools/check_setup.py`, start Jupyter with `tools/start_notebook.sh`, or choose the `.venv` kernel (**Kernel → Change kernel**). |\n| `libomp.dylib` / `XGBoostError` / LightGBM fails to load (macOS) | `brew install libomp`, then restart the kernel. |\n| PySpark: \"Java not found\" or \"needs Java 17\" | Install Java 17 or 21 ([step 5](#5-optional-system-tools-for-a-few-notebooks)), set `JAVA_HOME`, restart the kernel. |\n| Docker Desktop is open but `docker info` returns an error (for example *500 Internal Server Error*) | The engine is stuck. Run `docker desktop restart` (or quit and reopen Docker Desktop), wait until `docker info` works, then re-run the cell. |\n| An LLM cell hangs or says the server is unreachable | Check `curl http://127.0.0.1:8080/health` returns `{\"status\":\"ok\"}`. Start the server ([step 6](#6-optional-local-llm-for-modules-08-and-16)), and remember the first run of an agent notebook makes real model calls, so it is slow. |\n| The kernel dies or the machine slows to a crawl | Out of memory. Shut down other notebooks (**Running** tab → Shutdown), stop `llama-server` if the notebook doesn't need it, and re-run. |\n| A cell prints `⏭️ Skipped …` | That cell needs something optional: an NVIDIA GPU, a paid API key, Docker, or Kubernetes. The message says exactly what to set up; the rest of the notebook still works. |\n| A dataset download fails | Re-run the cell (public servers hiccup). Downloads are cached in each module's `_outputs/` folder; delete that folder to force a fresh download. |\n| You broke a notebook and want the original back | `git restore --source main -- AI_Full_Stack_Engineer_Course/<module>/<notebook>.ipynb` |\n| Timed DSA checks don't stop a slow solution (Windows) | Expected: the timeout uses a Unix signal, so on Windows the time is only reported after the call finishes. |\n\n---\n\n## Contributing\n\nFound a bug, a dead link, an outdated API, or have an idea for a notebook? Contributions are welcome.\n\n- **Report an issue:** use the [issue forms](../../issues/new/choose) (notebook bug or content request).\n- **Send a fix:** read [CONTRIBUTING.md](CONTRIBUTING.md) for the notebook checklist, then open a pull request against `main`.\n- **Be kind:** see the [Code of Conduct](CODE_OF_CONDUCT.md). Security concerns go through [SECURITY.md](SECURITY.md).\n\nNotebooks are checked with [`tools/nb.py`](tools/nb.py) (structure, execution, exercise solutions, links), and a GitHub Actions workflow runs the structure check on every pull request. The authoring spec is [docs/NOTEBOOK_TEMPLATE.md](docs/NOTEBOOK_TEMPLATE.md), and [docs/COURSE_MAP.md](docs/COURSE_MAP.md) lists every notebook with its kind and environment.\n\nIf a notebook helped you learn something or land a job, a [star on the repo](../../stargazers) means a lot.\n\n---\n\n## Repository structure\n\n```\nLearning-AI-ML/\n├── README.md\n├── CONTRIBUTING.md · CODE_OF_CONDUCT.md · SECURITY.md · LICENSE\n├── requirements.txt                       main environment (pinned)\n├── requirements-<env>.txt                 five small extra environments\n├── .github/                               CI workflow, issue forms, PR template\n├── docs/                                  study plan, course map, notebook template spec\n├── tools/\n│   ├── check_setup.py                     verify your installation\n│   ├── start_notebook.sh                  launch Jupyter Notebook with the course kernels\n│   ├── export_flashcards.py               interview Q&A → Anki CSV\n│   └── nb.py                              build / run / check / link-check notebooks\n└── AI_Full_Stack_Engineer_Course/\n    ├── 00_Foundations/                    Python, internals, packaging\n    ├── 01_Core_Scientific_Computing/      NumPy, Pandas, SQL, math, statistics\n    ├── 02_Data_Visualization/             Matplotlib & Seaborn, Plotly\n    ├── 03_Classical_Machine_Learning/     20 notebooks: supervised, unsupervised, practical ML\n    ├── 04_Deep_Learning/                  NNs & transformers from scratch, PyTorch, Keras\n    ├── 05_NLP/                            classical NLP, embeddings, Hugging Face\n    ├── 06_Computer_Vision/                OpenCV, CNNs, YOLO\n    ├── 07_Reinforcement_Learning/         tabular RL, deep RL\n    ├── 08_Generative_AI_LLM/              APIs, RAG, LangGraph, agents & MCP, evaluation, fine-tuning, serving\n    ├── 09_MLOps/                          MLflow, W&B, DVC, Airflow, monitoring, Kubeflow\n    ├── 10_Model_Serving/                  FastAPI, Docker & CI/CD, BentoML, Ray Serve\n    ├── 11_Data_Processing/                Polars, PySpark, Dask\n    ├── 12_AutoML_Experimentation/         Optuna, Ray Tune, AutoGluon\n    ├── 13_Capstone_Projects/              5 end-to-end projects with real code\n    ├── 14_Templates/                      starter notebooks\n    ├── 15_Interview_Prep/                 ML coding drills, DSA patterns, theory, ML/LLM/agentic system design, storytelling\n    ├── 16_Agentic_AI/                     agent architectures, memory, code & browser agents, multi-agent & A2A, evaluation, security, production\n    └── 17_Multimodal_and_Generative_Models/  diffusion, vision-language models, speech and voice agents\n```\n\n---\n\n## Companion resources\n\n- [3Blue1Brown — Neural Networks](https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi): the best visual explanation of how neural networks learn\n- [Andrej Karpathy — Neural Networks: Zero to Hero](https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ): build GPT from scratch\n- [fast.ai — Practical Deep Learning](https://course.fast.ai/): top-down deep learning\n- [Hugging Face Learn](https://huggingface.co/learn): LLMs, agents, and more\n- [Made With ML](https://madewithml.com/): MLOps best practices\n\n---\n\n## About the author\n\nHi, I'm **Mayank Kumar Pokhriyal**, an AI/ML engineer with several years of industry experience building and shipping machine learning systems. I created this course because, when I was learning, I had to stitch together dozens of disconnected tutorials, courses and docs to figure out what actually mattered in the real world. This is the single, opinionated roadmap I wish I'd had when I started: beginner-friendly at the entry, production-grade at the exit.\n\nIf this course helps you, I'd love to hear about it. Connect with me, ask questions, or share what you built:\n\n[**LinkedIn — linkedin.com/in/mayank-kumar-pokhriyal**](https://www.linkedin.com/in/mayank-kumar-pokhriyal/)\n\n---\n\n## License\n\nReleased under the [MIT License](LICENSE). Datasets and pretrained models used by the notebooks keep their own licences, which each notebook states where it downloads them.\n"}