\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.

\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}.

\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{}
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.

\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. -
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}

\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.
