{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ch10-title",
   "metadata": {},
   "source": [
    "# OOP"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ch10-overview",
   "metadata": {},
   "source": [
    "Object-oriented programming is a paradigm for organizing data and behavior together in reusable types.\n",
    "\n",
    "- Classes as blueprints for objects\n",
    "- Instances as concrete objects with their own state\n",
    "- Methods as behavior attached to objects\n",
    "- Encapsulation, inheritance, polymorphism, and abstraction\n",
    "- Advanced class features for Pythonic designs\n",
    "\n",
    "This chapter starts with foundational ideas, works through practical examples, and builds toward more advanced OOP techniques.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1000-video",
   "metadata": {},
   "source": [
    "<h2>Video</h2>\n",
    "\n",
    "This overview introduces classes, instances, attributes, and methods in Python.\n",
    "\n",
    "```{raw} html\n",
    "<iframe width=\"100%\" height=\"400\" src=\"https://www.youtube-nocookie.com/embed/ZDa-Z5JzLYM\" title=\"Python OOP Tutorial 1: Classes and Instances\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen referrerpolicy=\"strict-origin-when-cross-origin\"></iframe>\n",
    "```\n",
    "\n",
    "> *[Python OOP Tutorial 1: Classes and Instances](https://youtube.com/watch?v=ZDa-Z5JzLYM) by Corey Schafer*"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ch10-goals",
   "metadata": {},
   "source": [
    "<h2>Learning Goals</h2>\n",
    "\n",
    "By the end of this chapter, you will be able to:\n",
    "\n",
    "1. Explain what object-oriented programming is and why it is useful\n",
    "2. Distinguish between a class and an instance\n",
    "3. Create a simple class with attributes and methods\n",
    "4. Recognize everyday Python values as instances of classes\n",
    "5. Use methods such as `__init__`, `__str__`, and operator overloads\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ch10-flow",
   "metadata": {},
   "source": [
    "<h2>Chapter Flow</h2>\n",
    "\n",
    "```{tableofcontents}\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1000-slides",
   "metadata": {},
   "source": [
    "<h2><a href=\"overview.html\" target=\"_blank\" style=\"color: var(--pst-color-link, #176de8);\">Chapter Overview Slides</a></h2>"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
