summaryrefslogtreecommitdiff
path: root/book/module1/classes_and_objects.tex
diff options
context:
space:
mode:
Diffstat (limited to 'book/module1/classes_and_objects.tex')
-rw-r--r--book/module1/classes_and_objects.tex74
1 files changed, 74 insertions, 0 deletions
diff --git a/book/module1/classes_and_objects.tex b/book/module1/classes_and_objects.tex
new file mode 100644
index 0000000..cb9f7ec
--- /dev/null
+++ b/book/module1/classes_and_objects.tex
@@ -0,0 +1,74 @@
+\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}
+
+\begin{longtable}[]{@{}
+ >{\raggedleft\arraybackslash}p{(\columnwidth - 0\tabcolsep) * \real{0.0556}}@{}}
+\toprule\noalign{}
+\begin{minipage}[b]{\linewidth}\raggedleft
+\#\# 2. Core OOP Concepts - A. \textbf{Classes and Objects} -
+Definitions - Syntax in Python - B. \textbf{Attributes and Methods} -
+Instance variables - Functions inside classes - C.
+\textbf{Encapsulation} - Public vs private variables - Using
+\texttt{\_\_init\_\_} and \texttt{self} - D. \textbf{Inheritance} -
+Parent and child classes - Reuse and extension of code - E.
+\textbf{Polymorphism} \emph{(brief overview)} - Method overriding -
+Flexibility in interfaces
+\end{minipage} \\
+\midrule\noalign{}
+\endhead
+\bottomrule\noalign{}
+\endlastfoot
+\#\# 3. Python OOP Syntax and Examples - A. Define a simple class (e.g.,
+\texttt{Spring}) - B. Instantiate objects and use methods - C. Show
+\texttt{\_\_init\_\_}, \texttt{\_\_str\_\_}, custom methods - D. Add a
+derived class (e.g., \texttt{DampedSpring} inherits from
+\texttt{Spring}) \\
+\end{longtable}
+
+\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}
+
+\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
+
+\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}