References ========== .. dropdown:: 🏛️ Lecture 1 :class-container: sd-border-secondary :open: .. card:: :class-card: sd-border-secondary **ENPM605 — L1: Course Introduction** Covers course structure, development environment setup, the Python execution pipeline, and introduction to Python variables. .. dropdown:: 🐍 Python Resources :class-container: sd-border-secondary .. grid:: 1 1 2 2 :gutter: 2 .. grid-item-card:: 📘 Python Official Tutorial :link: https://docs.python.org/3/tutorial/ :class-card: sd-border-secondary **Getting Started** Sections 3, 4, and 5 cover informal introduction, control flow, and data structures. +++ - Variables & Types - Control Flow - Data Structures .. grid-item-card:: 📏 PEP 8 Style Guide :link: https://peps.python.org/pep-0008/ :class-card: sd-border-secondary **Coding Conventions** Python's official style guide for writing clean, readable code. +++ - Naming Conventions - Whitespace & Indentation - Import Ordering .. grid-item-card:: 🔍 Python Language Reference :link: https://docs.python.org/3/reference/ :class-card: sd-border-secondary **Internals** Detailed reference for Python syntax, data model, and execution model. +++ - Data Model - Execution Model - Expressions & Statements .. grid-item-card:: 📦 Python Standard Library :link: https://docs.python.org/3/library/ :class-card: sd-border-secondary **Built-in Modules** Reference for all standard library modules used in this course. +++ - ``sys``, ``os``, ``ast`` - ``dis``, ``tokenize`` - ``keyword`` .. dropdown:: 🛠️ Development Tools :class-container: sd-border-secondary .. grid:: 1 1 2 2 :gutter: 2 .. grid-item-card:: 💻 Visual Studio Code :link: https://code.visualstudio.com/docs :class-card: sd-border-secondary **IDE Documentation** Getting started, extensions, and debugging guides. +++ - Python Extension - Dev Containers - Debugging .. grid-item-card:: 🐳 Docker Desktop :link: https://docs.docker.com/desktop/ :class-card: sd-border-secondary **Container Platform** Installation, setup, and container management. +++ - Installation Guides - Container Basics - Dev Environments .. grid-item-card:: ⚡ Ruff :link: https://docs.astral.sh/ruff/ :class-card: sd-border-secondary **Python Linter & Formatter** Fast, all-in-one tool for Python code quality. +++ - Configuration - Rule Reference - VS Code Integration .. grid-item-card:: 🐍 Python Extension for VS Code :link: https://marketplace.visualstudio.com/items?itemName=ms-python.python :class-card: sd-border-secondary **Language Support** IntelliSense, debugging, linting, and formatting. +++ - Interpreter Selection - REPL & Debugging - Testing .. dropdown:: 🤖 ROS 2 & Simulation Resources :class-container: sd-border-secondary .. grid:: 1 1 2 2 :gutter: 2 .. grid-item-card:: 📘 ROS 2 Jazzy :link: https://docs.ros.org/en/jazzy/ :class-card: sd-border-secondary **Official Documentation** ROS 2 Jazzy Jalisco documentation and tutorials. +++ - Installation - Tutorials - API Reference .. grid-item-card:: 🌍 Gazebo Harmonic :link: https://gazebosim.org/docs/harmonic/getstarted/ :class-card: sd-border-secondary **Simulation Environment** Getting started with Gazebo Harmonic for robot simulation. +++ - Installation - World Building - Sensor Plugins .. grid-item-card:: 🧭 Nav2 :link: https://docs.nav2.org/ :class-card: sd-border-secondary **Navigation Stack** The ROS 2 navigation framework used in the final project. +++ - Architecture - Configuration - Behavior Trees .. grid-item-card:: 🌳 py_trees :link: https://py-trees.readthedocs.io/ :class-card: sd-border-secondary **Behavior Trees for Python** Library for building application-level behavior trees. +++ - Getting Started - Composites & Decorators - Blackboards .. dropdown:: 📚 Python Books :class-container: sd-border-secondary .. grid:: 1 1 2 2 :gutter: 2 .. grid-item-card:: Mark Lutz :class-card: sd-border-secondary **Learning Python (5th Edition)** Comprehensive introduction to the Python language. .. grid-item-card:: Luciano Ramalho :class-card: sd-border-secondary **Fluent Python (2nd Edition)** Effective use of Python features for experienced programmers. .. grid-item-card:: Brett Slatkin :class-card: sd-border-secondary **Effective Python (2nd Edition)** 90 specific ways to write better Python. .. grid-item-card:: Martin Fowler *et al.* :class-card: sd-border-secondary **Refactoring: Improving the Design of Existing Code** The origin of the term "code smells" referenced in the linting section.