Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,20 @@ permissions:
pages: write

jobs:
lint-tex:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install chktex
run: |
sudo apt-get update
sudo apt-get install -y chktex texlive-latex-base
- name: Lint TeX files
run: |
find . -type f -name '*.tex' -exec chktex -q {} +
ubuntu-build:
runs-on: ubuntu-latest
needs: lint-tex
steps:
- uses: actions/checkout@v4
- name: Setup environment
Expand All @@ -31,6 +43,7 @@ jobs:
path: '*.html'
macos-build:
runs-on: macos-latest
needs: lint-tex
steps:
- uses: actions/checkout@v4
- name: Setup environment
Expand Down
14 changes: 7 additions & 7 deletions 00-intro/00-intro.tex
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,21 @@
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=2.5ex,dp=1ex,leftskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshortinstitute % Displays the university name
\usebeamerfont{author in head/foot}\insertshortinstitute% Displays the university name
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=2.5ex,dp=1ex,leftskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshorttitle % Displays the short title
\usebeamerfont{author in head/foot}\insertshorttitle% Displays the short title
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.1\paperwidth,ht=2.5ex,dp=1ex,rightskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertframenumber{} / \inserttotalframenumber
\usebeamerfont{author in head/foot}\insertframenumber{} / \inserttotalframenumber%
\end{beamercolorbox}}%
\vskip0pt%
}

\begin{document}

\begin{frame}
\titlepage
\titlepage%
\end{frame}

\begin{frame}{Contents}
Expand Down Expand Up @@ -61,7 +61,7 @@ \section{Introduction}
\end{itemize}
\end{frame}

\begin{frame}{Before we start the actual project...}
\begin{frame}{Before we start the actual project\ldots}
need to familiarize ourselves with key technologies used in the industry.

Next lectures plan:
Expand Down Expand Up @@ -91,8 +91,8 @@ \section{Introduction}

\begin{frame}{Reports}
\begin{itemize}
\item February - intermediate report
\item June - ITLab report
\item February --- intermediate report
\item June --- ITLab report
\end{itemize}
\end{frame}

Expand Down
51 changes: 24 additions & 27 deletions 01-git/01-git.tex
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,21 @@
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=2.5ex,dp=1ex,leftskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshortinstitute % Displays the university name
\usebeamerfont{author in head/foot}\insertshortinstitute% Displays the university name
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=2.5ex,dp=1ex,leftskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshorttitle % Displays the short title
\usebeamerfont{author in head/foot}\insertshorttitle% Displays the short title
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.1\paperwidth,ht=2.5ex,dp=1ex,rightskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertframenumber{} / \inserttotalframenumber
\usebeamerfont{author in head/foot}\insertframenumber{} / \inserttotalframenumber%
\end{beamercolorbox}}%
\vskip0pt%
}

\begin{document}

\begin{frame}
\titlepage
\titlepage%
\end{frame}

\begin{frame}{Contents}
Expand All @@ -52,26 +52,26 @@ \section{What are version control systems?}

\section{What version control systems exist? History and evolution}

\begin{frame}{Early Days of Computing (1950s - 1970s). SCCS}
\begin{frame}{Early Days of Computing (1950s--1970s). SCCS}
Before the development of dedicated version control systems, programmers used manual processes to manage changes. Early systems, like the Source Code Control System (SCCS), developed by Marc Rochkind at Bell Labs in 1972, were among the first tools created to automate version control. SCCS stored multiple versions of code and helped manage modifications through change sets, allowing programmers to revert to earlier versions if necessary.
\begin{block}{SCCS subcommands}
admin -i file.f s.file.f - Put subs under SCCS control.\\
get s.file.f - Retrieve, read only.\\
get -e s.file.f - Retrieve, read/write (e = edit).\\
get -p s.file.f - Retrieve, just peak.\\
delta s.file.f - Store changes.\\
prs s.file.f - List revisions.\\
admin -i file.f s.file.f --- Put subs under SCCS control.\\
get s.file.f --- Retrieve, read only.\\
get -e s.file.f --- Retrieve, read/write (e = edit).\\
get -p s.file.f --- Retrieve, just peak.\\
delta s.file.f --- Store changes.\\
prs s.file.f --- List revisions.\\
\end{block}

\footnotesize Source: \href{https://sites.science.oregonstate.edu/~landaur/nacphy/coping-with-unix/node169.html}{https://sites.science.oregonstate.edu/~landaur/nacphy/coping-with-unix/node169.html}
\end{frame}

\begin{frame}{Centralized Version Control Systems (1980s - 1990s)}
\begin{frame}{Centralized Version Control Systems (1980s--1990s)}
Centralized version control systems (CVCS) came to prominence during the 1980s. These systems required a single, central server where all files and version histories were stored. Developers had to be connected to this server to commit changes or retrieve updates.
\begin{itemize}
\item RCS (Revision Control System): Developed by Walter Tichy in the early 1980s, RCS is a more advanced system than SCCS. It introduced features like automated version numbering and handling of concurrent edits, but it was still a single-user system.
\item RCS (Revision Control System): Developed by Walter Tichy in the early 1980s, RCS is a more advanced system than SCCS.\@ It introduced features like automated version numbering and handling of concurrent edits, but it was still a single-user system.
\item CVS (Concurrent Versions System): Introduced in 1990, CVS extended RCS with support for multiple developers working on the same project. It allowed distributed teams to collaborate more effectively, although merging changes was often difficult.
\item SVN (Subversion): developed as an improvement over older systems like CVS. It was created by CollabNet in 2000 and later became an Apache project.
\item SVN (Subversion): developed as an improvement over older systems like CVS.\@ It was created by CollabNet in 2000 and later became an Apache project.
\end{itemize}
\end{frame}

Expand Down Expand Up @@ -155,13 +155,13 @@ \section{Basic Git commands}
\item Subject line (summary)
\begin{itemize}
\item Usually is short (up to 50 characters)
\item Imperative is used (e.g., "Fix bug in user login" or "Add tests for API endpoint").
\item Imperative is used (e.g., ``Fix bug in user login'' or ``Add tests for API endpoint'').
\item Avoid periods at the end of the line
\end{itemize}
\item Body (optional)
\begin{itemize}
\item Wrap lines at 72 characters
\item Explain why the change was made, rather than just what was done (the code diff itself explains the "what").
\item Explain why the change was made, rather than just what was done (the code diff itself explains the ``what'').
\end{itemize}
\end{itemize}
\begin{block}{Commit message example}
Expand All @@ -179,7 +179,7 @@ \section{Basic Git commands}
\item Make small, logical commits: Each commit should represent a single logical change. Avoid lumping multiple unrelated changes into one commit.
\begin{itemize}
\item If you can split your commit into two in many cases it is better to do this.
\item If your commit message contains the word "and" this might be a signal that commit can be split
\item If your commit message contains the word ``and'' this might be a signal that commit can be split
\end{itemize}
\item Write meaningful commit messages: This helps others (and future you) understand the purpose of each commit.
\item Commit often: Regular commits allow you to track progress and makes it easier to revert to a stable state if something goes wrong.
Expand All @@ -190,7 +190,6 @@ \section{Basic Git commands}
\begin{figure}[h]
\centering
\includegraphics[width=0.75\textwidth]{images/in-case-of-fire.png}
\label{fig:in-case-of-fire}
\end{figure}
{\footnotesize Source: \href{https://github.com/hendrixroa/in-case-of-fire}{https://github.com/hendrixroa/in-case-of-fire}}
\end{frame}
Expand All @@ -208,7 +207,7 @@ \section{Basic Git commands}
\end{block}
\item Commit changes:
\begin{block}{Command}
\texttt{git commit -m "Commit message"}
\texttt{git commit -m ``Commit message''}
\end{block}
\end{itemize}
\end{frame}
Expand All @@ -217,7 +216,7 @@ \section{Basic Git commands}
\footnotesize
In Git, a branch represents an independent line of development, enabling you to work on different features, fixes, or experiments without affecting the main line of the project.\\
\textbf{A branch} is a movable pointer to a commit. It allows users to develop different project directions in parallel.\\
e.g. several developers are working on several different independant features
e.g.\ several developers are working on several different independant features
\begin{itemize}
\item Create a new branch:
\begin{block}{Command}
Expand Down Expand Up @@ -328,7 +327,6 @@ \section{Git workflows overview}
\begin{figure}[h]
\centering
\includegraphics[width=1\textwidth]{images/github-flow.png}
\label{fig:github-flow}
\end{figure}
{\footnotesize Source: \href{https://github.com/a-a-ron/Github-Flow}{https://github.com/a-a-ron/Github-Flow}}
\end{frame}
Expand All @@ -338,11 +336,11 @@ \section{Git workflows overview}
\item A robust branching model for managing releases.
\item Defines specific branches:
\begin{itemize}
\item \textbf{master} - contains production-ready code.
\item \textbf{develop} - integration branch for features.
\item \textbf{feature branches} - for new features.
\item \textbf{release branches} - prepare for a new production release.
\item \textbf{hotfix branches} - quick fixes for production.
\item \textbf{master} --- contains production-ready code.
\item \textbf{develop} --- integration branch for features.
\item \textbf{feature branches} --- for new features.
\item \textbf{release branches} --- prepare for a new production release.
\item \textbf{hotfix branches} --- quick fixes for production.
\end{itemize}
\item Benefits:
\begin{itemize}
Expand All @@ -356,7 +354,6 @@ \section{Git workflows overview}
\begin{figure}[h]
\centering
\includegraphics[height=0.87\textheight]{images/git-flow.png}
\label{fig:git-flow}
\end{figure}
\end{frame}

Expand Down
14 changes: 7 additions & 7 deletions 02-cmake/02-cmake.tex
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,21 @@
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=2.5ex,dp=1ex,leftskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshortinstitute % Displays the university name
\usebeamerfont{author in head/foot}\insertshortinstitute% Displays the university name
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=2.5ex,dp=1ex,leftskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshorttitle % Displays the short title
\usebeamerfont{author in head/foot}\insertshorttitle% Displays the short title
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.1\paperwidth,ht=2.5ex,dp=1ex,rightskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertframenumber{} / \inserttotalframenumber
\usebeamerfont{author in head/foot}\insertframenumber{} / \inserttotalframenumber%
\end{beamercolorbox}}%
\vskip0pt%
}

\begin{document}

\begin{frame}
\titlepage
\titlepage%
\end{frame}

\begin{frame}{Contents}
Expand All @@ -64,7 +64,7 @@

\section{Building C++ projects}

\begin{frame}[fragile]{C++ "Hello, World" example}
\begin{frame}[fragile]{C++ ``Hello, World'' example}
\lstset{style=CStyle, caption=Hello World example}
\begin{lstlisting}
#include <iostream>
Expand Down Expand Up @@ -95,7 +95,7 @@ \section{Building C++ projects}
\begin{itemize}
\item Open the Command Prompt.
\item Navigate to the directory containing \texttt{main.cpp}.
\item If using MinGW:
\item If using MinGW\@:
\begin{lstlisting}[language=bash]
g++ -o hello.exe main.cpp
hello.exe
Expand Down Expand Up @@ -165,7 +165,7 @@ \section{Building C++ projects}
\end{frame}

\begin{frame}[fragile]{Building simple main.cpp with add library on Windows}
Using MinGW:
Using MinGW\@:
\begin{itemize}
\item Compile \texttt{add.cpp}:
\begin{lstlisting}[language=bash]
Expand Down
48 changes: 24 additions & 24 deletions 03-linux/03-linux.tex
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,21 @@
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=2.5ex,dp=1ex,leftskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshortinstitute % Displays the university name
\usebeamerfont{author in head/foot}\insertshortinstitute% Displays the university name
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=2.5ex,dp=1ex,leftskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshorttitle % Displays the short title
\usebeamerfont{author in head/foot}\insertshorttitle% Displays the short title
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.1\paperwidth,ht=2.5ex,dp=1ex,rightskip=1em,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertframenumber{} / \inserttotalframenumber
\usebeamerfont{author in head/foot}\insertframenumber{} / \inserttotalframenumber%
\end{beamercolorbox}}%
\vskip0pt%
}

\begin{document}

\begin{frame}
\titlepage
\titlepage%
\end{frame}

\begin{frame}{Contents}
Expand Down Expand Up @@ -83,7 +83,7 @@ \section{Introduction}
\item Personal computers
\item Embedded systems
\item Networking equipment
\item and many others...
\item and many others\ldots
\end{itemize}
\end{frame}

Expand All @@ -100,7 +100,7 @@ \section{History}

\begin{frame}{UNIX history}
\begin{itemize}
\item Origins at Bell Labs (1969-1970)
\item Origins at Bell Labs (1969--1970)
\item UNIX Expansion (1970s)
\begin{itemize}
\footnotesize
Expand All @@ -121,7 +121,7 @@ \section{History}
\item POSIX Standard was introduced
\end{itemize}
\item Rise of Linux and Open Source (1990s)
\item Modern UNIX and Legacy (2000s - Present)
\item Modern UNIX and Legacy (2000s---Present)
\end{itemize}
\end{frame}

Expand Down Expand Up @@ -173,7 +173,7 @@ \section{Linux}
\item SPARC (32-bit and 64-bit)
\item Itanium (IA-64, 64-bit)
\item LoongArch
\item and many others...
\item and many others\ldots
\end{itemize}

\footnotesize Full up-to-date list: \href{https://en.wikipedia.org/wiki/List_of_Linux-supported_computer_architectures}{https://en.wikipedia.org/wiki/List\_of\_Linux-supported\_computer\_architectures}
Expand Down Expand Up @@ -250,40 +250,40 @@ \section{Basic Linux commands}

\begin{frame}{Files navigation}
\begin{itemize}
\item \texttt{pwd} : Print working directory
\item \texttt{ls} : List directory contents
\item \texttt{cd} : Change directory
\item \texttt{mkdir} : Create a new directory
\item \texttt{pwd}: Print working directory
\item \texttt{ls}: List directory contents
\item \texttt{cd}: Change directory
\item \texttt{mkdir}: Create a new directory
\end{itemize}
\begin{exampleblock}{Examples}
\begin{itemize}
\item \texttt{ls -l} : Detailed list
\item \texttt{cd /home/user} : Navigate to user's home
\item \texttt{ls -l}: Detailed list
\item \texttt{cd /home/user}: Navigate to user's home
\end{itemize}
\end{exampleblock}
\end{frame}

\begin{frame}{File Manipulations}
\begin{itemize}
\item \texttt{touch} : Create an empty file or update timestamp
\item \texttt{cp} : Copy files or directories
\item \texttt{mv} : Move or rename files
\item \texttt{rm} : Remove files or directories
\item \texttt{cat} : Concatenate and display files
\item \texttt{touch}: Create an empty file or update timestamp
\item \texttt{cp}: Copy files or directories
\item \texttt{mv}: Move or rename files
\item \texttt{rm}: Remove files or directories
\item \texttt{cat}: Concatenate and display files
\end{itemize}
\begin{exampleblock}{Examples}
\begin{itemize}
\item \texttt{touch file.txt} : Create a new file
\item \texttt{rm -r folder} : Remove a directory and its contents
\item \texttt{touch file.txt}: Create a new file
\item \texttt{rm -r folder}: Remove a directory and its contents
\end{itemize}
\end{exampleblock}
\end{frame}

\begin{frame}{Text Editors}
\begin{itemize}
\item \textbf{nano} : Simple text editor
\item \textbf{vim} : Advanced text editor with modal editing
\item \textbf{code} : Visual Studio Code (GUI only)
\item \textbf{nano}: Simple text editor
\item \textbf{vim}: Advanced text editor with modal editing
\item \textbf{code}: Visual Studio Code (GUI only)
\end{itemize}
\begin{exampleblock}{Opening a File}
\begin{itemize}
Expand Down
Loading
Loading