summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kolset <christian.kolset@gmail.com>2025-04-24 23:28:53 -0600
committerChristian Kolset <christian.kolset@gmail.com>2025-04-24 23:28:53 -0600
commit0fc68d39cf23955f443c75fa536922b45cf2e1dc (patch)
tree3411ce1ba48b1cc39f67ed132a1059ac435aa40f
parent1cdf11068535106b87c4b696e9aba025f23fabde (diff)
Updated .tex files
-rw-r--r--book/module0/intro_to_anaconda.tex12
-rw-r--r--book/module0/module0.tex4
-rw-r--r--book/module1/1_excel_to_python.tex119
-rw-r--r--book/module1/array.tex3
-rw-r--r--book/module1/intro_to_anaconda.tex16
-rw-r--r--book/module1/module1.tex22
-rw-r--r--book/module1/spyder_getting_started.tex8
-rw-r--r--book/module2/ai_assisted_programming.tex52
-rw-r--r--book/module2/module2.tex5
-rw-r--r--book/module2/problem_solving_strategies.tex127
-rw-r--r--book/module2/version_control.tex42
-rw-r--r--book/module3/module3.tex2
-rw-r--r--book/module4/module4.tex2
-rw-r--r--book/module5/module5.tex2
14 files changed, 336 insertions, 80 deletions
diff --git a/book/module0/intro_to_anaconda.tex b/book/module0/intro_to_anaconda.tex
index e4ac639..e35138a 100644
--- a/book/module0/intro_to_anaconda.tex
+++ b/book/module0/intro_to_anaconda.tex
@@ -21,8 +21,6 @@ indicated, Navigator is a tool in the Anaconda toolbox that allows the
user to select and configure python environments and libraries. Let's
see how we can do this.
-\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
-
\subsection{Getting Started}\label{getting-started}
Note to windows 10 users: Some installation instances do not allow users
@@ -32,7 +30,7 @@ the folder and click on \emph{Anaconda Navigator} to launch the program.
\begin{figure}
\centering
-\includegraphics{../tutorials/figures/installingAnaconda_windows_launched.png}
+\includegraphics{figures/installingAnaconda_windows_launched.png}
\caption{Anaconda Navigator screen}
\end{figure}
@@ -67,7 +65,7 @@ environment for us to use Spyder with.
\begin{figure}
\centering
-\includegraphics{https://mintlify.s3.us-west-1.amazonaws.com/anaconda-29683c67/images/nav-env-labeled.png}
+\includegraphics{figures/anaconda_environment_page.png}
\caption{Environment Page}
\end{figure}
@@ -81,7 +79,7 @@ environment for us to use Spyder with.
\begin{figure}
\centering
-\includegraphics{https://mintlify.s3.us-west-1.amazonaws.com/anaconda-29683c67/images/nav-getting-started-create.png}
+\includegraphics{figures/anaconda_create_new_environment.png}
\caption{Create new environment}
\end{figure}
@@ -121,7 +119,7 @@ library we will be using for this class.
\begin{figure}
\centering
-\includegraphics{https://mintlify.s3.us-west-1.amazonaws.com/anaconda-29683c67/images/nav-pkg-list.png}
+\includegraphics{figures/anaconda_select_package_to_manage.png}
\caption{Select environment to manage}
\end{figure}
@@ -181,7 +179,7 @@ other applications.
\begin{figure}
\centering
-\includegraphics{https://mintlify.s3.us-west-1.amazonaws.com/anaconda-29683c67/images/nav-tabs.png}
+\includegraphics{figures/anaconda_homepage.png}
\caption{Anaconda Home Page}
\end{figure}
diff --git a/book/module0/module0.tex b/book/module0/module0.tex
index 7fe4a51..9b3c8dc 100644
--- a/book/module0/module0.tex
+++ b/book/module0/module0.tex
@@ -1,3 +1,3 @@
-\chapter{Module 0}
-\input{module0/intro_to_anaconda}
+\chapter{Getting Started}
\input{module0/intro_to_programming}
+\input{module0/intro_to_anaconda}
diff --git a/book/module1/1_excel_to_python.tex b/book/module1/1_excel_to_python.tex
new file mode 100644
index 0000000..300c951
--- /dev/null
+++ b/book/module1/1_excel_to_python.tex
@@ -0,0 +1,119 @@
+\section{Excel to Python}\label{excel-to-python}
+
+\begin{itemize}
+\tightlist
+\item
+ Importing
+\item
+ Plotting
+\item
+ Statistical analysis
+\end{itemize}
+
+\subsection{\texorpdfstring{\textbf{How Excel Translates to
+Python}}{How Excel Translates to Python}}\label{how-excel-translates-to-python}
+
+Here's how common Excel functionalities map to Python:
+
+\begin{longtable}[]{@{}
+ >{\raggedright\arraybackslash}p{(\columnwidth - 2\tabcolsep) * \real{0.2911}}
+ >{\raggedright\arraybackslash}p{(\columnwidth - 2\tabcolsep) * \real{0.7089}}@{}}
+\toprule\noalign{}
+\begin{minipage}[b]{\linewidth}\raggedright
+\textbf{Excel Feature}
+\end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright
+\textbf{Python Equivalent}
+\end{minipage} \\
+\midrule\noalign{}
+\endhead
+\bottomrule\noalign{}
+\endlastfoot
+Formulas (SUM, AVERAGE) & \texttt{numpy}, \texttt{pandas}
+(\texttt{df.sum()}, \texttt{df.mean()}) \\
+Sorting \& Filtering & \texttt{pandas.sort\_values()},
+\texttt{df{[}df{[}\textquotesingle{}col\textquotesingle{}{]}\ \textgreater{}\ value{]}} \\
+Conditional Formatting & \texttt{matplotlib} for highlighting \\
+Pivot Tables & \texttt{pandas.pivot\_table()} \\
+Charts \& Graphs & \texttt{matplotlib}, \texttt{seaborn},
+\texttt{plotly} \\
+Regression Analysis & \texttt{scipy.stats.linregress},
+\texttt{sklearn.linear\_model} \\
+Solver/Optimization & \texttt{scipy.optimize} \\
+VBA Macros & Python scripting with \texttt{openpyxl}, \texttt{pandas},
+or \texttt{xlwings} \\
+\end{longtable}
+
+\subsection{Statistical functions}\label{statistical-functions}
+
+\paragraph{SUM}\label{sum}
+
+Built-in:
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\NormalTok{my\_array }\OperatorTok{=}\NormalTok{ [}\DecValTok{1}\NormalTok{, }\DecValTok{2}\NormalTok{, }\DecValTok{3}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{5}\NormalTok{]}
+\NormalTok{total }\OperatorTok{=} \BuiltInTok{sum}\NormalTok{(my\_array)}
+\BuiltInTok{print}\NormalTok{(total) }\CommentTok{\# Output: 15}
+\end{Highlighting}
+\end{Shaded}
+
+Numpy:
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\ImportTok{import}\NormalTok{ numpy }\ImportTok{as}\NormalTok{ np}
+
+\NormalTok{my\_array }\OperatorTok{=}\NormalTok{ np.array([}\DecValTok{1}\NormalTok{, }\DecValTok{2}\NormalTok{, }\DecValTok{3}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{5}\NormalTok{])}
+\NormalTok{total }\OperatorTok{=}\NormalTok{ np.}\BuiltInTok{sum}\NormalTok{(my\_array)}
+\BuiltInTok{print}\NormalTok{(total) }\CommentTok{\# Output: 15}
+\end{Highlighting}
+\end{Shaded}
+
+\subsubsection{Average}\label{average}
+
+Built-in:
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\NormalTok{my\_array }\OperatorTok{=}\NormalTok{ [}\DecValTok{1}\NormalTok{, }\DecValTok{2}\NormalTok{, }\DecValTok{3}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{5}\NormalTok{]}
+\NormalTok{average }\OperatorTok{=} \BuiltInTok{sum}\NormalTok{(my\_array) }\OperatorTok{/} \BuiltInTok{len}\NormalTok{(my\_array)}
+\BuiltInTok{print}\NormalTok{(average) }\CommentTok{\# Output: 3.0}
+\end{Highlighting}
+\end{Shaded}
+
+Numpy:
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\ImportTok{import}\NormalTok{ numpy }\ImportTok{as}\NormalTok{ np}
+
+\NormalTok{my\_array }\OperatorTok{=}\NormalTok{ np.array([}\DecValTok{1}\NormalTok{, }\DecValTok{2}\NormalTok{, }\DecValTok{3}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{5}\NormalTok{])}
+\NormalTok{average }\OperatorTok{=}\NormalTok{ np.mean(my\_array)}
+\BuiltInTok{print}\NormalTok{(average) }\CommentTok{\# Output: 3.0}
+\end{Highlighting}
+\end{Shaded}
+
+\subsection{Plotting}\label{plotting}
+
+We can use the package \emph{matplotlib} to plot our graphs in python.
+Matplotlib provides data visualization tools for the Scientific Python
+Ecosystem. You can make very professional looking figures with this
+tool.
+
+Here is a section from the matplotlib documentation page that you can
+run in python.
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\ImportTok{import}\NormalTok{ matplotlib.pyplot }\ImportTok{as}\NormalTok{ plt}
+
+\NormalTok{fig, ax }\OperatorTok{=}\NormalTok{ plt.subplots() }\CommentTok{\# Create a figure containing a single Axes.}
+\NormalTok{ax.plot([}\DecValTok{1}\NormalTok{, }\DecValTok{2}\NormalTok{, }\DecValTok{3}\NormalTok{, }\DecValTok{4}\NormalTok{], [}\DecValTok{1}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{2}\NormalTok{, }\DecValTok{3}\NormalTok{]) }\CommentTok{\# Plot some data on the Axes.}
+\NormalTok{plt.show() }\CommentTok{\# Show the figure.}
+\end{Highlighting}
+\end{Shaded}
+
+Check out the documentation pages for a
+\href{https://matplotlib.org/stable/users/explain/quick_start.html\#a-simple-example}{simple
+example} or more information on the types of plots you came create
+\href{https://matplotlib.org/stable/plot_types/index.html}{here}.
diff --git a/book/module1/array.tex b/book/module1/array.tex
index db176e7..c9fc302 100644
--- a/book/module1/array.tex
+++ b/book/module1/array.tex
@@ -40,8 +40,7 @@ would be stress.
\item
From
\href{https://numpy.org/doc/2.2/user/absolute_beginners.html}{Numpy
- documentation}
- \includegraphics{https://www.mathworks.com/help/examples/matlab/win64/nddemo_02.gif}
+ documentation} \includegraphics{figures/multi-dimensional-array.gif}
\end{itemize}
If the load on this block changes over time, then we may want to add a
diff --git a/book/module1/intro_to_anaconda.tex b/book/module1/intro_to_anaconda.tex
index bc548c9..935b3f5 100644
--- a/book/module1/intro_to_anaconda.tex
+++ b/book/module1/intro_to_anaconda.tex
@@ -7,10 +7,10 @@ write our python code.
The Anaconda website nicely describes \emph{Navigator} as:
-a graphical user interface (GUI) that enables you to work with packages
-and environments without needing to type conda commands in a terminal
-window.Find the packages you want, install them in an environment, run
-the packages, and update them -- all inside Navigator.
+\emph{a graphical user interface (GUI) that enables you to work with
+packages and environments without needing to type conda commands in a
+terminal window.Find the packages you want, install them in an
+environment, run the packages, and update them -- all inside Navigator.}
To better understand how Navigator works and interacts with the anaconda
ecosystem see the figure below.
@@ -63,7 +63,7 @@ environment for us to use Spyder with.
\begin{figure}
\centering
-\includegraphics{https://mintlify.s3.us-west-1.amazonaws.com/anaconda-29683c67/images/nav-env-labeled.png}
+\includegraphics{figures/anaconda_environment_page.png}
\caption{Environment Page}
\end{figure}
@@ -77,7 +77,7 @@ environment for us to use Spyder with.
\begin{figure}
\centering
-\includegraphics{https://mintlify.s3.us-west-1.amazonaws.com/anaconda-29683c67/images/nav-getting-started-create.png}
+\includegraphics{figures/anaconda_create_new_environment.png}
\caption{Create new environment}
\end{figure}
@@ -117,7 +117,7 @@ library we will be using for this class.
\begin{figure}
\centering
-\includegraphics{https://mintlify.s3.us-west-1.amazonaws.com/anaconda-29683c67/images/nav-pkg-list.png}
+\includegraphics{figures/anaconda_select_package_to_manage.png}
\caption{Select environment to manage}
\end{figure}
@@ -177,7 +177,7 @@ other applications.
\begin{figure}
\centering
-\includegraphics{https://mintlify.s3.us-west-1.amazonaws.com/anaconda-29683c67/images/nav-tabs.png}
+\includegraphics{figures/anaconda_homepage.png}
\caption{Anaconda Home Page}
\end{figure}
diff --git a/book/module1/module1.tex b/book/module1/module1.tex
index 58db30b..6ed476b 100644
--- a/book/module1/module1.tex
+++ b/book/module1/module1.tex
@@ -1,16 +1,16 @@
-\chapter{Module 1}
-\input{module1/array}
-\input{module1/arrays}
+\chapter{Module 1: Introductory Programming Concepts}
+\input{module1/intro_to_programming}
+\input{module1/installing_anaconda}
+\input{module1/intro_to_anaconda}
+\input{module1/jupyter_lab_notebook}
+\input{module1/spyder_getting_started}
\input{module1/basics_of_python}
-\input{module1/classes_and_objects}
-\input{module1/computational_expense}
-\input{module1/computing_fundamentals}
+\input{module1/array}
\input{module1/control_structures}
\input{module1/functions}
+\input{module1/classes_and_objects}
\input{module1/fundamentals_of_programming}
-\input{module1/installing_anaconda}
-\input{module1/intro_to_anaconda}
-\input{module1/intro_to_programming}
-\input{module1/jupyter_lab_notebook}
+\input{module1/computing_fundamentals}
\input{module1/open_source_software}
-\input{module1/spyder_getting_started}
+\input{module1/1_excel_to_python}
+\input{module1/computational_expense}
diff --git a/book/module1/spyder_getting_started.tex b/book/module1/spyder_getting_started.tex
index d1e20fe..70a3d41 100644
--- a/book/module1/spyder_getting_started.tex
+++ b/book/module1/spyder_getting_started.tex
@@ -14,7 +14,7 @@ Using Anaconda we will select the environment we created earlier
\begin{figure}
\centering
-\includegraphics{https://docs.spyder-ide.org/current/_images/mainwindow_default_1610.png}
+\includegraphics{figures/spyder_interface.png}
\caption{Spyder Interface}
\end{figure}
@@ -29,7 +29,7 @@ This pane is used to write your scripts. The
\begin{figure}
\centering
-\includegraphics{https://docs.spyder-ide.org/5/_images/editor-components.png}
+\includegraphics{figures/editor_key_components.png}
\caption{Editor key components}
\end{figure}
@@ -65,7 +65,7 @@ computations, assign and modify variables.
\begin{figure}
\centering
-\includegraphics{https://docs.spyder-ide.org/5/_images/console-standard.png}
+\includegraphics{figures/spyder_ipython_console.png}
\caption{IPython Console}
\end{figure}
@@ -100,6 +100,6 @@ you to inspect the data in a spreadsheet like view.
\begin{figure}
\centering
-\includegraphics{https://docs.spyder-ide.org/5/_images/variable-explorer-standard.png}
+\includegraphics{figures/spyder_variable_explorer.png}
\caption{Variable Explorer}
\end{figure}
diff --git a/book/module2/ai_assisted_programming.tex b/book/module2/ai_assisted_programming.tex
index 2fee22b..4d6dcde 100644
--- a/book/module2/ai_assisted_programming.tex
+++ b/book/module2/ai_assisted_programming.tex
@@ -11,17 +11,23 @@ suggestions and allows you to focus on solving the problem at hand
rather. AI is a technology that is constantly improving. As engineers we
need to \emph{understand} how we can use AI as a tool to achieve our
goals more efficiently. This section cover good practices of how we can
-implement AI and lists some AI assistant tools that we can use. \#\#
-Good vs.~Bad uses of AI Don't try to get AI to do work \emph{for you}
-but \emph{with you}. You need to understand what you're doing. If you
-don't understand what the AI is doing, then you're not in control of the
-work. You're not going to go far until something unexpected happens.
+implement AI and lists some AI assistant tools that we can use.
+
+\subsection{Good vs.~Bad uses of AI}\label{good-vs.-bad-uses-of-ai}
+
+Don't try to get AI to do work \emph{for you} but \emph{with you}. You
+need to understand what you're doing. If you don't understand what the
+AI is doing, then you're not in control of the work. You're not going to
+go far until something unexpected happens.
AI is a great learning tool, research as show that students can benefit
from using AI as personal tutor
\href{https://hbsp.harvard.edu/inspiring-minds/ai-as-personal-tutor}{more}.
-\#\# Available tools Below is a comprehensive list of tools that are
-available at not cost to you.
+
+\subsection{Available tools}\label{available-tools}
+
+Below is a comprehensive list of tools that are available at not cost to
+you.
\begin{longtable}[]{@{}ll@{}}
\toprule\noalign{}
@@ -44,12 +50,16 @@ aiXcoder & Free \\
Many of the tools above come with similar, if not, the same features.
Some of the tools come as chatbots on the web and others are extensions
-that can be implemented in your favorite IDE. \#\# VSCode and GitHub
-Copilot Integration We will not cover how to use VSCode in this course,
-however it is a very versatile IDE that comes with many other extension,
-for example git, github and github copilot integration. There are also
-other extensions for other IDE's however we will only cover some basic
-features that the GithHub Copilot extension in VSCode can do.
+that can be implemented in your favorite IDE.
+
+\subsection{VSCode and GitHub Copilot
+Integration}\label{vscode-and-github-copilot-integration}
+
+We will not cover how to use VSCode in this course, however it is a very
+versatile IDE that comes with many other extension, for example git,
+github and github copilot integration. There are also other extensions
+for other IDE's however we will only cover some basic features that the
+GithHub Copilot extension in VSCode can do.
Copilot Comes with the following features: - Get code suggestions as you
type - Ask questions about the code - Inline chat to generate code. -
@@ -57,9 +67,13 @@ Fix and debug code using the chat window - Generate code documentation
\href{https://code.visualstudio.com/}{VSCode}
\href{https://code.visualstudio.com/docs/copilot/setup-simplified}{Copilot
-extension} \#\# A note on integrity If you have a
-non-disclosure-agreement (NDA) with your employer, it may not always be
-possible to use AI for security and integrity reasons as you may risk
-exposing confidential information with third party vendors. It is highly
-recommended to be able to be able to write program independently of an
-AI assistant. Always think before you share data.
+extension}
+
+\subsection{A note on intellectual
+property}\label{a-note-on-intellectual-property}
+
+If you have a non-disclosure-agreement (NDA) with your employer, it may
+not always be possible to use AI for security and integrity reasons as
+you may risk exposing confidential information with third party vendors.
+It is highly recommended to be able to be able to write program
+independently of an AI assistant. Always think before you share data.
diff --git a/book/module2/module2.tex b/book/module2/module2.tex
index f16e7e2..2781a0e 100644
--- a/book/module2/module2.tex
+++ b/book/module2/module2.tex
@@ -1,5 +1,6 @@
-\chapter{Module 2}
+\chapter{Module 2: Algorithm Development}
+\input{module2/problem_solving_strategies}
+\input{module2/intro_to_numerical_methods}
\input{module2/ai_assisted_programming}
\input{module2/debugging_code}
-\input{module2/intro_to_numerical_methods}
\input{module2/version_control}
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}
diff --git a/book/module2/version_control.tex b/book/module2/version_control.tex
index 3c5ac6a..1c327c6 100644
--- a/book/module2/version_control.tex
+++ b/book/module2/version_control.tex
@@ -17,8 +17,6 @@ In this section is divided up into two major sections. The first section
project. The second section will cover how to use git with GitHub to
\emph{collaborate} on projects.
-\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
-
\subsection{Git}\label{git}
Git is a version control program that tracks changes to files and
@@ -51,25 +49,25 @@ committed:
This leads us to the three main sections of a Git project: the working
tree, the staging area, and the Git directory.
-\includegraphics{https://git-scm.com/book/en/v2/images/areas.png} \#\#\#
-Branching In git, branches allow for parallel workflow on a project. It
-give contributors the ability to work different features at the same
-time. Each branch represents an independent line of development, and
-once a feature or fix is complete, it can be merged back into the main
-branch. Here is a common branching structure used in many Git projects:
-- Main Branch - The main branch (a.k.a. master branch) is the default
-branch in a Git repository and contains the stable version of the code.
-- Development Branch - is created to develop a new feature or fix a bug
-without affecting the main branch. It isn't necessarily always stable,
-but whenever it gets to a stable state, it can be merged into master. -
+\includegraphics{figures/git_areas.png} \#\#\# Branching In git,
+branches allow for parallel workflow on a project. It give contributors
+the ability to work different features at the same time. Each branch
+represents an independent line of development, and once a feature or fix
+is complete, it can be merged back into the main branch. Here is a
+common branching structure used in many Git projects: - Main Branch -
+The main branch (a.k.a. master branch) is the default branch in a Git
+repository and contains the stable version of the code. - Development
+Branch - is created to develop a new feature or fix a bug without
+affecting the main branch. It isn't necessarily always stable, but
+whenever it gets to a stable state, it can be merged into master. -
Topic Branch - A topic branch is a short-lived branch that you create
and use for a single particular feature or related work.
-\includegraphics{https://git-scm.com/book/en/v2/images/lr-branches-2.png}
-\#\#\# Best Practices - Use descriptive commit messages. - Commit early
-and often. - Keep commits focused on a single change. - Use feature
-branches for new features or bug fixes. - Review and test changes before
-merging. - Resolve conflicts promptly. - Keep the commit history clean
-and organized.
+\includegraphics{figures/git_silo_branching.png} \#\#\# Best Practices -
+Use descriptive commit messages. - Commit early and often. - Keep
+commits focused on a single change. - Use feature branches for new
+features or bug fixes. - Review and test changes before merging. -
+Resolve conflicts promptly. - Keep the commit history clean and
+organized.
\subsubsection{Basic Commands}\label{basic-commands}
@@ -114,19 +112,19 @@ be using for this course.
\textbf{Centralized}: The project has only one central hub or
\emph{repository}, can accept code and everybody synchronizes their work
with it. This model is suitable for small and closed-sourced projects.
-\includegraphics{https://git-scm.com/book/en/v2/images/centralized_workflow.png}
+\includegraphics{figures/git_workflow_centralized.png}
\textbf{Integration-Manager:} There are multiple public variants of the
code original code known as \emph{forks}. The integration manager can
decide what features to pull from the forks. This is the model that is
similar to the one used on GitHub
-\includegraphics{https://git-scm.com/book/en/v2/images/integration-manager.png}
+\includegraphics{figures/git_workflow_int_manager.png}
\textbf{Dictator and Lieutenants Workflow:} This is similar to the
integration-manager model, however due to the size of the project. A
rank of integration managers is formed. one example of this is the
development of the Linux kernel.
-\includegraphics{https://git-scm.com/book/en/v2/images/benevolent-dictator.png}
+\includegraphics{figures/git_workflow_dictator.png}
GitHub is designed around a particular collaboration workflow, centered
on Pull Requests. This flow works whether you're collaborating with a
diff --git a/book/module3/module3.tex b/book/module3/module3.tex
index 30dfa79..3e93796 100644
--- a/book/module3/module3.tex
+++ b/book/module3/module3.tex
@@ -1,4 +1,4 @@
-\chapter{Module 3}
+\chapter{Module 3: Applications of Computational Mathematics}
\input{module3/non_linear_eqn_solver}
\input{module3/supersonic}
\input{module3/system_of_equations}
diff --git a/book/module4/module4.tex b/book/module4/module4.tex
index a8e0676..48e3475 100644
--- a/book/module4/module4.tex
+++ b/book/module4/module4.tex
@@ -1,3 +1,3 @@
-\chapter{Module 4}
+\chapter{Module 4: Data Analysis and Visualization}
\input{module4/linear_regression}
\input{module4/plotting}
diff --git a/book/module5/module5.tex b/book/module5/module5.tex
index a644df8..c274e38 100644
--- a/book/module5/module5.tex
+++ b/book/module5/module5.tex
@@ -1 +1 @@
-\chapter{Module 5}
+\chapter{Module 5: Introduction to AI for Engineering Problems}