summaryrefslogtreecommitdiff
path: root/tutorials/module_1/classes_and_objects.md
diff options
context:
space:
mode:
Diffstat (limited to 'tutorials/module_1/classes_and_objects.md')
-rw-r--r--tutorials/module_1/classes_and_objects.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/tutorials/module_1/classes_and_objects.md b/tutorials/module_1/classes_and_objects.md
new file mode 100644
index 0000000..ec85633
--- /dev/null
+++ b/tutorials/module_1/classes_and_objects.md
@@ -0,0 +1,47 @@
+# Modular Programming
+
+## 1. Introduction
+
+- A. What is Object-Oriented Programming?
+- B. Why use OOP? (vs. procedural)
+- C. Real-world analogies (e.g., modeling components like pumps, motors, or vehicles)
+
+---
+## 2. Core OOP Concepts
+- A. **Classes and Objects**
+ - Definitions
+ - Syntax in Python
+- B. **Attributes and Methods**
+ - Instance variables
+ - Functions inside classes
+- C. **Encapsulation**
+ - Public vs private variables
+ - Using `__init__` and `self`
+- D. **Inheritance**
+ - Parent and child classes
+ - Reuse and extension of code
+- E. **Polymorphism** _(brief overview)_
+ - Method overriding
+ - Flexibility in interfaces
+
+---
+## 3. Python OOP Syntax and Examples
+- A. Define a simple class (e.g., `Spring`)
+- B. Instantiate objects and use methods
+- C. Show `__init__`, `__str__`, custom methods
+- D. Add a derived class (e.g., `DampedSpring` inherits from `Spring`)
+
+---
+## 4. Engineering Applications of OOP
+- A. Modeling a mechanical system using classes
+ - Example: Mass-Spring-Damper system
+- B. Creating reusable components (e.g., `Material`, `Beam`, `Force`)
+- C. Organizing simulation code with OOP
+
+---
+## 5. Hands-On Coding Activity
+- A. Write a class for a basic physical component (e.g., `Motor`)
+- B. Add behavior (e.g., `calculate_torque`)
+- C. Extend with inheritance (e.g., `ServoMotor`)
+- D. Bonus: Integrate two objects to simulate interaction
+