\section{AI Assisted Programming}\label{ai-assisted-programming}

\subsection{What is it?}\label{what-is-it}

Artificial Intelligence (AI) has been around for a long time. However,
not until recently did engineers make it easy and ``fun'' to work with.
By now you probably have a pretty good idea of what AI can do. However,
you may not have used an AI assistant before. As the name suggests, an
AI assistant can help you develop code, speed up your writing with code
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.

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.

\begin{longtable}[]{@{}ll@{}}
\toprule\noalign{}
Name & Features \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
GitHub Copilot & Paid, but free for students. Integrated in GitHub. \\
ChatGPT & Free, optional paid upgrade \\
Grok & Free, optional paid upgrade \\
Gemini & Free, optional paid upgrade \\
GPT4ALL & Free and Open-Source \\
Code GPT & Free and Open-Source \\
Cody & Free and Open-Source \\
DataLab AI & Free \\
Codeium & Free \\
aiXcoder & Free \\
\end{longtable}

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.

Copilot Comes with the following features: - Get code suggestions as you
type - Ask questions about the code - Inline chat to generate code. -
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.
