From 0fc68d39cf23955f443c75fa536922b45cf2e1dc Mon Sep 17 00:00:00 2001
From: Christian Kolset <christian.kolset@gmail.com>
Date: Thu, 24 Apr 2025 23:28:53 -0600
Subject: Updated .tex files

---
 book/module2/problem_solving_strategies.tex | 127 ++++++++++++++++++++++++++++
 1 file changed, 127 insertions(+)
 create mode 100644 book/module2/problem_solving_strategies.tex

(limited to 'book/module2/problem_solving_strategies.tex')

diff --git a/book/module2/problem_solving_strategies.tex b/book/module2/problem_solving_strategies.tex
new file mode 100644
index 0000000..4b908f8
--- /dev/null
+++ b/book/module2/problem_solving_strategies.tex
@@ -0,0 +1,127 @@
+\section{Algorithmic thinking}\label{algorithmic-thinking}
+
+\subsection{Learning Objectives}\label{learning-objectives}
+
+By the end of this lesson, students will be able to:
+
+\begin{itemize}
+\tightlist
+\item
+  Apply algorithmic thinking to solve engineering problems using
+  computational tools.
+\item
+  Translate engineering problems into structured programming logic.
+\item
+  Use software tools to implement, test, and refine engineering
+  solutions.
+\end{itemize}
+
+\subsection{Define the Problem}\label{define-the-problem}
+
+Like many other classes we need to frame the problem before working it.
+So before jumping straight into coding or building models, clearly
+define the engineering problem.
+
+\begin{itemize}
+\tightlist
+\item
+  \textbf{List knowns and unknowns.} What inputs are given? What outputs
+  are required?
+\item
+  \textbf{Establish system constraints and assumptions.} Identify
+  physical laws, design requirements, and performance limits.
+\item
+  \textbf{Clarify computational objectives.} What are you trying to
+  calculate, simulate, or optimize?
+\end{itemize}
+
+\subsection{Think Algorithmically}\label{think-algorithmically}
+
+Since we are going to use computers to calculate our solution we first
+need to break the problem into logical steps that a computer can follow.
+
+\begin{itemize}
+\tightlist
+\item
+  \textbf{Define the inputs and outputs.} What variables will the
+  program take in, and what results will it produce?
+\item
+  \textbf{Break the problem into sub-tasks.} Identify steps such as data
+  input, logic processing and output.
+\item
+  \textbf{Outline the algorithm.} Write pseudocode or flowcharts that
+  describe the computational steps.
+\item
+  \textbf{Identify patterns or formulas.} Can loops, conditionals, or
+  equations be used to automate parts of the solution?
+\end{itemize}
+
+\textbf{Example:} For processing stress-strain data: 1. Import data from
+a file. 2. Convert force and displacement to stress and strain. 3. Plot
+the stress-strain curve. 4. Identify the yield point or modulus.
+
+\subsection{Write \& Execute the Code}\label{write-execute-the-code}
+
+\begin{itemize}
+\tightlist
+\item
+  \textbf{Choose the right tools.} Are there libraries I can use to get
+  to my objective more effectively?
+\item
+  \textbf{Write modular code.} Use functions to separate different tasks
+  (e.g., reading data, computing values, plotting).
+\item
+  \textbf{Check for syntax and logic errors.} Debug line-by-line using
+  print statements or a debugger.
+\end{itemize}
+
+\textbf{Example:} Write a Python script that uses NumPy and Matplotlib
+to load a CSV file, compute stress and strain, and generate plots.
+
+\subsection{Test and Validate}\label{test-and-validate}
+
+\begin{itemize}
+\tightlist
+\item
+  \textbf{Assess the feasibility of your results.} Do the values align
+  with expected physical behavior?
+\item
+  \textbf{Compare against established benchmarks.} Validate solutions
+  using experimental data, literature values, or known theoretical
+  limits.
+\item
+  \textbf{Check units and scaling.} Ensure computations are consistent
+  with physical meaning.
+\end{itemize}
+
+\textbf{Example:} If your plot shows stress values in the thousands when
+you expect hundreds, check unit conversions in your formula.
+
+\subsection{Case Study: Simulating a Spring-Mass
+System}\label{case-study-simulating-a-spring-mass-system}
+
+\textbf{Scenario:} Model the motion of a mass-spring-damper system using
+a numerical solver.
+
+\begin{enumerate}
+\def\labelenumi{\arabic{enumi}.}
+\tightlist
+\item
+  \textbf{Define the Problem:} Set up the differential equation from
+  Newton's Second Law.
+\item
+  \textbf{Develop a Strategy:} Discretize time, apply numerical
+  integration (e.g., Euler or Runge-Kutta).
+\item
+  \textbf{Execute the Code:} Write a Python function that computes
+  motion over time.
+\item
+  \textbf{Test the Model:} Compare results with analytical solutions for
+  undamped or lightly damped systems.
+\item
+  \textbf{Refine the Model:} Add adjustable damping and stiffness
+  parameters.
+\item
+  \textbf{Troubleshoot Issues:} If the model becomes unstable, reduce
+  the time step or use a more accurate integrator.
+\end{enumerate}
-- 
cgit v1.2.3

