Skip to content

Commit

Permalink
Working on slides. Small touch-ups on labs.
Browse files Browse the repository at this point in the history
  • Loading branch information
mnordahl committed Aug 18, 2024
1 parent d3f0b5c commit 4382d44
Show file tree
Hide file tree
Showing 7 changed files with 156 additions and 52 deletions.
14 changes: 7 additions & 7 deletions courseplan/courseplan.tex
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ \section*{Allmänt}
I kursen Datorer och datoranvändning får du en översikt över datatekniska begrepp och praktiska färdigheter som du kommer att ha användning av under dina studier. Kursen läses av studenter från C- och D-programmen. För C-studenter ingår den som en del av kursen EITA65.

\item[Kursansvarig]
Mattias Nordahl, rum E2184, E-huset 2:a våningen.\\
Mattias Nordahl, rum E:2184, E-huset 2:a våningen.\\
E-post: \url{[email protected]}

\item[Administratör]
Ulrika Templing, rum E2179, E-huset 2:a våningen. Expeditionstid 9.30--11.30. Telefon 046--222 80 40, e-post \url{[email protected]}
Ulrika Templing, rum E:2179, E-huset 2:a våningen. Expeditionstid 9.30--11.30. Telefon 046--222 80 40, e-post \url{[email protected]}

\item[Hemsida]
\url{http://cs.lth.se/dod/}. Du bör titta på hemsidan regelbundet! Kort kursinformation finns också i Canvas, men hemsidan är den primära platsen för kursinformation.
\url{http://cs.lth.se/dod/}. Du bör titta på hemsidan regelbundet. Kort kursinformation finns också i Canvas, men hemsidan är den primära platsen för kursinformation.

\item[Kursens omfattning]
\begin{tabular}[t]{@{}ll}
Expand Down Expand Up @@ -64,8 +64,8 @@ \section*{Undervisning}
\begin{tabular}{lll}
\emph{Dag} & \emph{Ämne} & \emph{Anmärkning} \\ \midrule
Tisdag 3/9 & Introduktion, Linux/Unix & Förberedelse, lab 1 \\
Tisdag 10/9 & \LaTeX & Förberedelse, lab 2 \\
Tisdag 17/9 & Versionshantering, Git/GitHub & Förberedelse, lab 3 \\
Tisdag 10/9 & Versionshantering, Git/GitHub & Förberedelse, lab 2 \\
Tisdag 17/9 & \LaTeX & Förberedelse, lab 3 \\
Tisdag 24/9 & Maskinkod & Förberedelse, lab 4 \\
\end{tabular}
}
Expand All @@ -81,8 +81,8 @@ \section*{Undervisning}
\begin{tabular}{cl}
\emph{Laboration} & \emph{Ämne} \\ \midrule
D1 & Linux/Unix \\
D2 & \LaTeX \\
D3 & Git/GitHub \\
D2 & Git/GitHub \\
D3 & \LaTeX \\
D4 & Maskinkod \\
\end{tabular}
}
Expand Down
28 changes: 12 additions & 16 deletions lab-instructions/dodlabs.tex
Original file line number Diff line number Diff line change
Expand Up @@ -170,25 +170,25 @@ \subsection{Lab 1 --- Linux/Unix}
\item \texttt{Vad menas med att "gå till /usr/local/cs/dod/\dots"?}\\
Det är en absolut sökväg som finns tillgänglig när du är inloggad på skolans datorer. Att ``gå~till'' en sökväg innebär att ändra sitt \texttt{working directory}. (ILL~1.7)
\item \texttt{Om jag använder min egen laptop, hur kommer jag åt \code{/usr/local/cs/dod/\dots}}?\\
Du kan använda \code{ssh} för att logga in och arbeta på skoldatorerna (ILL~3.7), eller kopiera filer från skoldatorerna till din egen med \code{scp} eller \code{sftp} (ILL~4.2).
Du kan använda \code{ssh} för att logga in och arbeta på skoldatorerna (ILL~3.7), eller kopiera filer från skoldatorerna till din egen med \code{scp} eller \code{sftp} (ILL~4.2).
\end{itemize}

\subsection{Lab 2 --- \LaTeX}
\subsection{Lab 2 --- Versionshantering med Git}
\begin{itemize}
\item \texttt{Hur stänger jag vim!?}\\
Om du råkat öppna texteditorn \code{vim} (t.ex. genom att göra en git commit utan att ha ställt in en annan editor) kan du stänga den genom att trycka \code{:q} (kolon följt av \code{q}), sedan \code{Retur}. Om du redan provat annat kan du ha kommit in i något annat av Vim's editeringslägen. Tryck då först \code{Esc} för att gå tillbaka till det ``normala läget''.
\item \texttt{Hur arbetar man med texteditorn nano?} \\
nano är en terminalbaserat texteditor. Den körs alltså direkt i terminalen utan att öppna några nya fönster, vilket kan vara fördelaktigt ibland. I editorn kan du flytta markören med piltangenterna och skriva text som förväntat. I botten av terminalen visas också operationer som kan utföras och vilken knappkombination som ska tryckas. Där används tecknet \texttt{\^{}} (den lilla ``hatten'' vid sidan om \commandchar{return}) för att betyda Ctrl-knappen. Använd t.ex. \commandchar{control-o} för att spara (Write Out), \commandchar{control-x} för att avsluta eller \commandchar{control-g} för mer hjälp.
\end{itemize}

\subsection{Lab 3 --- \LaTeX}

\begin{itemize}
\item \texttt{Hur skriver jag specialtecken i \LaTeX{}?}\\
Det finns flera tecken som har särskild betydelse i \LaTeX{}. För att faktiskt skriva dessa tecken i texten, utan att de ska tolkas som specialtecken, behöver man ``bryta~ut'' dem (eng. \emph{escape}). Det görs med \emph{escape}-tecknet \texttt{\textbackslash} (bakåt snedstreck eller eng. backslash). Exempel på specialtecken är \texttt{\textbackslash\%} för procenttecken och \texttt{\textbackslash\$} för dollartecken. \texttt{\textbackslash}-tecknet är i sig också ett specialtecken och kan skrivas med kommandot \texttt{\textbackslash{textbackslash}}, eller \texttt{\textbackslash{backslash}} inom matematikläget.

\end{itemize}

\subsection{Lab 3 --- Versionshantering med Git}
\begin{itemize}
\item \texttt{Hur stänger jag vim!?}\\
Om du råkat öppna texteditorn \code{vim} (t.ex. genom att göra en git commit utan att ha ställt in en annan editor) kan du stänga den genom att trycka \code{:q} (kolon följt av \code{q}), sedan \code{Retur}. Om du redan provat annat kan du ha kommit in i något annat av Vim's editeringslägen. Tryck då först \code{Esc} för att gå tillbaka till det ``normala läget''.
\item \texttt{Hur arbetar man med texteditorn nano?} \\
nano är en terminalbaserat texteditor. Den körs alltså direkt i terminalen utan att öppna några nya fönster, vilket kan vara fördelaktigt ibland. I editorn kan du flytta markören med piltangenterna och skriva text som förväntat. I botten av terminalen visas också operationer som kan utföras och vilken knappkombination som ska tryckas. Där används tecknet \texttt{\^{}} (den lilla ``hatten'' vid sidan om \commandchar{return}) för att betyda Ctrl-knappen. Använd t.ex. \commandchar{control-o} för att spara (Write Out), \commandchar{control-x} för att avsluta eller \commandchar{control-g} för mer hjälp.
\end{itemize}

\subsection{Lab 4 --- Maskinkod}
\begin{itemize}
\item \emph{Inga frågor ännu.}
Expand All @@ -202,19 +202,15 @@ \subsection{Lab 4 --- Maskinkod}
\newpage
\include{./modules/unix/unix_terminal}


\newpage
\include{./modules/latex/latex}


\newpage
\include{./modules/git/git}

\newpage
\include{./modules/latex/latex}

\newpage
\include{./modules/machine-code/machine-code}


\newpage

\subsection*{Datorer och datoranvändning, godkända laborationsuppgifter}
Expand Down
54 changes: 30 additions & 24 deletions lab-instructions/modules/latex/latex.tex
Original file line number Diff line number Diff line change
@@ -1,59 +1,65 @@
\section{Laboration \arabic{section} --- \LaTeX}

\emph{Mål:} Du ska lära dig grunderna i \LaTeX och tillämpa dina kunskaper på ett exempel.
\emph{Mål:} Du ska lära dig grunderna i {\LaTeX} och tillämpa dina kunskaper på ett exempel.


\subsection*{Obligatoriska förberedelser (hemarbete)}
\begin{Hemarbete}\firmlist
\item Titta igenom föreläsningsbilderna till föreläsningen om \LaTeX.
\item Läs igenom kompendiet \emph{Att skriva rapporter med \LaTeX}, åtminstone så mycket så att du blir bekant med vad man kan göra med \LaTeX. Du behöver inte försöka memorera alla detaljer.
\item \label{hem:latexuppg} Med början på nästa sida finns ett exempel på en rapport som är producerad med \LaTeX. Studera rapporten och försök komma på vilka kommandon som behövs för att få texten att se ut som den gör. Markera i rapporten, eller i ett textdokument, vilka kommandon du tänker använda.
\item \label{hem:latexuppg} Med början två sidor fram finns ett exempel på en rapport som är producerad med \LaTeX. Studera rapporten och försök komma på vilka kommandon som behövs för att få texten att se ut som den gör. Markera i rapporten, eller i ett separat textdokument, vilka kommandon du behöver använda för att efterlikna rapporten.
\end{Hemarbete}

\subsection*{Kontrollfrågor}
\begin{Kontrollfragor}
\item Laborationsledaren kontrollerar att du gått igenom exempelrapporten och markerat vilka \LaTeX-kommandon du ska utnyttja för att formatera texten.
\halfblankline

% Förslag på faktiska kontrollfrågor. Eller räcker det med den ovan?
% \item På vilket sätt formaterar man text i \LaTeX. Hur markerar man t.ex. att ett ord ska vara fetstilt?
% \item Vad är \LaTeX och vad används det till?
% \item Vad är skillnaden mellan \LaTeX och vanliga textredigerare, som Word?
% \item Vilka är fördelarna med att använda \LaTeX för dokumentproduktion?
% \item Vad är ett \LaTeX-kommando och hur skrivs det i en dokumentfil?
% \item Vad är skillnaden mellan kompileringsprocessen för \LaTeX och vanlig textredigering?
% \item \LaTeX är helt textbaserat. Vad är processen för att producera det slutgiltiga, formaterade dokumentet?
% \item Vad är en paketfil i \LaTeX och hur inkluderar man den i dokumentet?
% \item Vilka är de grundläggande elementen för att skapa en titelsida i \LaTeX?
% \item Hur skapar du en fetstil i \LaTeX?
% \item Vad är kommandot för att kursivera text i \LaTeX?
% \item Hur skapar du en punktlista i \LaTeX?
% \item Vilket kommando används för att justera texten till vänster i \LaTeX?
% \item Hur inkluderar du citat i en \LaTeX-dokumentfil?
% \item Vilket kommando använder du för att infoga en radbrytning i \LaTeX?
% \item Hur skapar du en numrerad lista i \LaTeX?
% \item Hur skapar du en rubrik med ett kapitelnummer i \LaTeX?
% \item Vilket kommando används för att skapa en tabell i \LaTeX?
% \item På vilket sätt formaterar man text i {\LaTeX}. Hur markerar man t.ex. att ett ord ska vara fetstilt?
% \item Vad är {\LaTeX} och vad används det till?
\item Vad är skillnaden mellan {\LaTeX} och vanliga textredigerare, som MS Word?
\item Vilka fördelar finns med att använda {\LaTeX} för dokument?
\item Vad är ett {\LaTeX}-kommando och hur skrivs det i en dokumentfil?
\item Hur skapar man rubriker och underrubriker i {\LaTeX}?
\item Hur får man fet eller kursiv text i {\LaTeX}?
\item Vad betyder tecket \$ i {\LaTeX}?
\item Hur skriver du tecknet \$ i {\LaTeX}, utan att det tolkas som ett kommando?
% \item Vad är skillnaden mellan kompileringsprocessen för {\LaTeX} och vanlig textredigering?
% \item {\LaTeX} är helt textbaserat. Vad är processen för att producera det slutgiltiga, formaterade dokumentet?
% \item Vad är en paketfil i {\LaTeX} och hur inkluderar man den i dokumentet?
% \item Vilka är de grundläggande elementen för att skapa en titelsida i {\LaTeX}?
% \item Hur skapar du en fetstil i {\LaTeX}?
% \item Vad är kommandot för att kursivera text i {\LaTeX}?
% \item Hur skapar du en punktlista i {\LaTeX}?
% \item Vilket kommando används för att justera texten till vänster i {\LaTeX}?
% \item Hur inkluderar du citat i en {\LaTeX}-dokumentfil?
% \item Vilket kommando använder du för att infoga en radbrytning i {\LaTeX}?
% \item Hur skapar du en numrerad lista i {\LaTeX}?
% \item Hur skapar du en rubrik med ett kapitelnummer i {\LaTeX}?
% \item Vilket kommando används för att skapa en tabell i {\LaTeX}?

\end{Kontrollfragor}

\newpage

\subsection*{Datorarbete}

\textbf{Notis}: I instruktionerna nedan föreslår vi att ni använder programmet Texmaker för att arbeta med \LaTeX, men ni får lov att använda vilken editor ni vill. Det går också bra att använda onlineverktyg, så som Overleaf.

\begin{Datorarbete}
\item Skapa en ny katalog med namnet \file{dod/lab2} och gå till denna katalog.
\item Kopiera filen \file{/usr/local/cs/dod/lab2/rapportmall.tex} till din katalog. Ge den kopierade filen namnet \file{rapport.tex}. Filen innehåller en \LaTeX-mall för rapporter, liknande den mall som beskrivs i avsnitt 2.2 i \LaTeX-kompendiet och i föreläsningsbilderna.
\item Skapa en ny katalog med namnet \file{dod/lab3} och gå till denna katalog.
\item Kopiera filen \file{/usr/local/cs/dod/lab3/rapportmall.tex} till din katalog. Ge den kopierade filen namnet \file{rapport.tex}. Filen innehåller en \LaTeX-mall för rapporter, liknande den mall som beskrivs i avsnitt 2.2 i \LaTeX-kompendiet och i föreläsningsbilderna.

\item I filen \file{/usr/local/cs/dod/lab2/rapporttext.txt} finns texten till rapporten som beskrivs i uppgift H\ref{hem:latexuppg}, utan några \LaTeX-kommandon och utan några figurer. Lägg in innehållet i denna fil i din \file{.tex}-fil, mellan \verb!\begin{document}! och \verb!\end{document}!.
\item I filen \file{/usr/local/cs/dod/lab3/rapporttext.txt} finns texten till rapporten som beskrivs i uppgift H\ref{hem:latexuppg}, utan några \LaTeX-kommandon och utan några figurer. Lägg in innehållet i denna fil i din \file{.tex}-fil, mellan \verb!\begin{document}! och \verb!\end{document}!.

\item Starta Texmaker med kommandot \verb/texmaker & / (eller \verb/texmaker rapport.tex &/).

\item Lägg in lämpliga \LaTeX-kommandon i filen så att rapporten får (åtminstone ungefär) det utseende som beskrivs i uppgift H\ref{hem:latexuppg}. Se till att styckeindelningen och rubrikerna blir korrekta i hela dokumentet innan du ger dig på resten, till exempel de matematiska formlerna.

Arbeta stegvis: ändra lite, klicka på pilen till vänster om Quick Build så körs pdfLaTeX, titta på resultatet, ändra lite till, osv.

Bilderna som ska inkluderas i dokumentet finns i filerna \file{nrbild.pdf} och \file{konvbild.pdf} i katalogen \file{/usr/local/cs/dod/lab2/}, programkoden finns i filen \file{NewtonRaphson.java} i samma katalog.
Bilderna som ska inkluderas i dokumentet finns i filerna \file{nrbild.pdf} och \file{konvbild.pdf} i katalogen \file{/usr/local/cs/dod/lab3/}, programkoden finns i filen \file{NewtonRaphson.java} i samma katalog.

\item Prova gärna att skriva ut rapporten på skrivaren när du är nöjd med dokumentets utseende (ej obligatoriskt).

Expand Down
85 changes: 85 additions & 0 deletions lectures/machine-code/machine-code.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@

\title{Maskinkod}
\section{Maskinkod}


\begin{frame}
\begin{block}{\centering\Large Föreläsning \arabic{section} --- Maskinkod}
Förberedelse inför laboration 4.

\begin{itemize}
\item Vad är en dator?
\item Binära tal.
\item CPU och Minne.
\item Maskinkod och instruktioner.
\item Assembly-språk.
\item Kompilerare och tolkar.
\end{itemize}
\end{block}
\end{frame}

\begin{frame}[fragile=singleslide]
\frametitle{Bakgrund}



\end{frame}




% Slide 1: Introduction to Machine Code
% Overview of today’s lecture
% Importance of machine code in computer science

% Slide 2: What is a Computer?
% Basic definition and components of a computer (CPU, Memory, I/O)
% Role of software vs. hardware

% Slide 3: Understanding Binary Numbers
% Explanation of binary system (bits, bytes)
% Conversion between binary and decimal systems

% Slide 4: The Central Processing Unit (CPU)
% Structure and function of the CPU
% Role of the CPU in executing machine code

% Slide 5: Memory in Computing
% Types of memory (RAM, ROM, Cache)
% How memory works with the CPU

% Slide 6: Basics of Machine Code
% Definition and characteristics of machine code
% Differences between machine code, assembly language, and high-level programming languages

% Slide 7: Machine Instructions
% Components of a machine instruction (opcode, operands)
% How instructions are executed by the CPU

% Slide 8: Assembly Language Overview
% Introduction to assembly language as a low-level programming language
% Relationship between assembly language and machine code

% Slide 9: Writing Simple Machine Code
% Example of a simple program in machine code
% Explanation of what each part of the program does

% Slide 10: Machine Code and Modern Computing
% Relevance of machine code in contemporary software development
% Overview of how high-level languages are translated into machine code

% Slide 11: Compilers and Interpreters
% Explanation of compilers and interpreters
% How they translate high-level code into executable machine code

% Slide 12: Challenges of Working with Machine Code
% Difficulties and limitations of coding in machine code
% Importance of understanding machine code for debugging and optimization

% Slide 13: Conclusion
% Recap of the key points covered
% Encouragement to explore more about how programming languages work at the machine level

% Slide 14: Questions and Discussion
% Open the floor for questions
% Suggest further reading materials and resources
21 changes: 21 additions & 0 deletions lectures/machine-code/slides.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
\usepackage{selthcsslides}
\usecolortheme{lucolors}

% The Madrid theme, for some reason, does not show bullet points in itemize
% environments. This is a workaround to fix that.
\setbeamertemplate{itemize item}[default]
\setbeamertemplate{itemize subitem}[default]

% \usepackage[swedish]{babel}
% Swedish setup using polyglossia for better multilingual support
\usepackage{polyglossia}
Expand All @@ -13,6 +18,22 @@
\usepackage{url}
\usepackage{datetime2}

\usepackage{listings}
\lstset{resetmargins=true}


% Code listing environment that removes leading whitespace
\lstnewenvironment{GobbleCode}[2][\baselineskip]
{\lstset{
aboveskip=#1,
belowskip=#1,
resetmargins=true,
xleftmargin=0em,
gobble=#2,
tabsize=4,
}}
{}

\author[]{Mattias Nordahl}
\institute{\url{[email protected]}}
\date{}
Expand Down
5 changes: 1 addition & 4 deletions lectures/unix/slides.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

\includeonly{unix}

% Include before selthcsslides to avoid styles being overridden
% \usepackage{enumitem}

\usepackage{selthcsslides}
\usecolortheme{lucolors}

Expand All @@ -25,7 +22,7 @@
\lstset{resetmargins=true}


% Redefine the Code listing environment to reset margins for each listing
% Code listing environment that removes leading whitespace
\lstnewenvironment{GobbleCode}[2][\baselineskip]
{\lstset{
aboveskip=#1,
Expand Down
1 change: 0 additions & 1 deletion lectures/unix/unix.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
% !TeX root = ./slides.tex

\title{Unix/Linux}
\section{Unix/Linux}
Expand Down

0 comments on commit 4382d44

Please sign in to comment.