\section{Modular Programming}\label{modular-programming} \subsection{1. Introduction}\label{introduction} \begin{itemize} \tightlist \item A. What is Object-Oriented Programming? \item B. Why use OOP? (vs.~procedural) \item C. Real-world analogies (e.g., modeling components like pumps, motors, or vehicles) \end{itemize} \subsection{2. Core OOP Concepts}\label{core-oop-concepts} \begin{itemize} \tightlist \item A. \textbf{Classes and Objects} \begin{itemize} \tightlist \item Definitions \item Syntax in Python \end{itemize} \item B. \textbf{Attributes and Methods} \begin{itemize} \tightlist \item Instance variables \item Functions inside classes \end{itemize} \item C. \textbf{Encapsulation} \begin{itemize} \tightlist \item Public vs private variables \item Using \texttt{\_\_init\_\_} and \texttt{self} \end{itemize} \item D. \textbf{Inheritance} \begin{itemize} \tightlist \item Parent and child classes \item Reuse and extension of code \end{itemize} \item E. \textbf{Polymorphism} \emph{(brief overview)} \begin{itemize} \tightlist \item Method overriding \item Flexibility in interfaces \end{itemize} \end{itemize} \subsection{3. Python OOP Syntax and Examples}\label{python-oop-syntax-and-examples} \begin{itemize} \tightlist \item A. Define a simple class (e.g., \texttt{Spring}) \item B. Instantiate objects and use methods \item C. Show \texttt{\_\_init\_\_}, \texttt{\_\_str\_\_}, custom methods \item D. Add a derived class (e.g., \texttt{DampedSpring} inherits from \texttt{Spring}) \end{itemize} \subsection{4. Engineering Applications of OOP}\label{engineering-applications-of-oop} \begin{itemize} \tightlist \item A. Modeling a mechanical system using classes \begin{itemize} \tightlist \item Example: Mass-Spring-Damper system \end{itemize} \item B. Creating reusable components (e.g., \texttt{Material}, \texttt{Beam}, \texttt{Force}) \item C. Organizing simulation code with OOP \end{itemize} \subsection{5. Hands-On Coding Activity}\label{hands-on-coding-activity} \begin{itemize} \tightlist \item A. Write a class for a basic physical component (e.g., \texttt{Motor}) \item B. Add behavior (e.g., \texttt{calculate\_torque}) \item C. Extend with inheritance (e.g., \texttt{ServoMotor}) \item D. Bonus: Integrate two objects to simulate interaction \end{itemize}