summaryrefslogtreecommitdiff
path: root/book/module2/problem_solving_strategies.tex
diff options
context:
space:
mode:
Diffstat (limited to 'book/module2/problem_solving_strategies.tex')
-rw-r--r--book/module2/problem_solving_strategies.tex122
1 files changed, 0 insertions, 122 deletions
diff --git a/book/module2/problem_solving_strategies.tex b/book/module2/problem_solving_strategies.tex
deleted file mode 100644
index 2f7a360..0000000
--- a/book/module2/problem_solving_strategies.tex
+++ /dev/null
@@ -1,122 +0,0 @@
-\section{Algorithmic thinking}\label{algorithmic-thinking}
-
-In engineering, solving a problem begins long before we start coding or
-building models. Like any other engineering challenge, computational
-problems must first be clearly framed and understood. In this section,
-you will learn to \textbf{apply algorithmic thinking} to systematically
-approach engineering problems, \textbf{translate real-world situations
-into structured programming logic}, and \textbf{use computational tools
-to implement, test, and refine solutions}.
-
-Before diving into code, it's crucial to define the problem carefully,
-frame the problem so that logically so that a computer can understand
-then execute so that
-
-\subsection{Define the Problem}\label{define-the-problem}
-
-As any other engineering problem, we need to frame it before we can
-start working on it. So before jumping straight into coding or building
-models, clearly define the engineering problem.
-
-\begin{enumerate}
-\def\labelenumi{\arabic{enumi}.}
-\tightlist
-\item
- List your givens, this includes any constants or equations. What
- inputs do we know?
-\item
- Find: List what you're trying to solve for. What outputs do we need to
- find?
-\item
- Establish the assumptions based on your engineering knowledge that you
- deem to be appropriate to use for the problem. This determines what
- mathematical models we can apply to the problem (i.e.~equations or
- formulas).
-\item
- Solution: Show the works of the problem, this will include any code
- used together with documentation or any explanations of the code.
-\item
- Comment: reflect and comment on your findings.
-\end{enumerate}
-
-\subsection{Think Algorithmically}\label{think-algorithmically}
-
-Since we are going to use computers to compute our calculate we first
-need to break the problem into logical steps that a computer can follow.
-This can be done with tools such as flowchart or psuedo-code.
-
-\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 pseudo-code 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}
-
-\subsubsection{Flowchart for fixing
-lamp}\label{flowchart-for-fixing-lamp}
-
-\begin{figure}
-\centering
-\includegraphics{figures/LampFlowchart.png}
-\caption{Lamp Flowchart}
-\end{figure}
-
-\subsubsection{Psuedo-Code for processing and plotting stress-strain
-data:}\label{psuedo-code-for-processing-and-plotting-stress-strain-data}
-
-\begin{enumerate}
-\def\labelenumi{\arabic{enumi}.}
-\tightlist
-\item
- Import force and displacement data from file.
-\item
- Convert data from force and displacement to stress and strain.
-\item
- Plot the stress-strain curve.
-\item
- Identify the yield point or modulus.
-\end{enumerate}
-
-\subsection{Write \& Execute the Code}\label{write-execute-the-code}
-
-When writing the code it is important to ask yourself whether you're
-using the right tools, libraries or method to solve the problem.
-\textbf{Check for any syntax and logic errors} then debug line-by-line
-using print statements or by using a debugging tool.
-
-\subsection{Verify and Validate}\label{verify-and-validate}
-
-When writing code it is crucial to test and confirm your code. It is
-therefore important to ask yourself the following questions. Does the
-code do what you intended it to do? And, is the mathematical model used
-in the code valid for the current problem?
-
-\subsection{Exercise: Design a derivative finding
-algorithm}\label{exercise-design-a-derivative-finding-algorithm}
-
-Set up the problem and write pseudo-code to calculate the gradient of an
-unknown function.
-
-\begin{enumerate}
-\def\labelenumi{\arabic{enumi}.}
-\tightlist
-\item
- \textbf{Given:}
-\item
- **Find:
-\item
- \textbf{Assumptions:}
-\item
- \textbf{Solution:}
-\item
- \textbf{Comment:}
-\end{enumerate}