diff --git a/year3/semester1/CT3536: Games Programming/notes/CT3536-Notes.pdf b/year3/semester1/CT3536: Games Programming/notes/CT3536-Notes.pdf index 2e03a9af..090e0940 100644 Binary files a/year3/semester1/CT3536: Games Programming/notes/CT3536-Notes.pdf and b/year3/semester1/CT3536: Games Programming/notes/CT3536-Notes.pdf differ diff --git a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/presentation/presentation.pdf b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/presentation/presentation.pdf index 9605754b..a2123082 100644 Binary files a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/presentation/presentation.pdf and b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/presentation/presentation.pdf differ diff --git a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/presentation/presentation.tex b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/presentation/presentation.tex index 587f9a0b..9401dee4 100644 --- a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/presentation/presentation.tex +++ b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/presentation/presentation.tex @@ -46,11 +46,13 @@ \begin{frame}{Introduction} By the end of this presentation, I intend for you to have gained an understanding of: \begin{itemize} - \item What Vim is. + \item What Vim is and how it works. \item The benefits of Vim. \item The drawbacks of Vim. \item Why I prefer Vim for all my text-editing work. \item Whether or not Vim might be the right text editor for you. + \item What alternatives there are to Vim. + \item How you can get started with Vim. \end{itemize} \end{frame} @@ -94,7 +96,7 @@ being edited, via the shortcut keybindings. It is the default mode of the program. \item \textbf{Insert mode} (\texttt{i}) is for inserting new text. This mode is similar to the - default to the default behaviour of a more traditional text editor such as Notepad: text can be typed + default to the default behaviour of a more conventional text editor such as Notepad: text can be typed or removed with the backspace key, and navigation or selection can be done with the mouse or arrow keys. \item \textbf{Visual mode} (\texttt{v}) is for the selection of text blocks for manipulation, with the @@ -104,14 +106,128 @@ \end{itemize} \end{frame} -\begin{frame}{What are the Vim Keybindings?} +\begin{frame}{What are the Vim keybindings?} \begin{itemize} \item Too many to list here! \item Navigation in normal mode can be done with the \texttt{hjkl} (direction) keys, which correspond to the left, down, up, \& right arrow keys respectively, allowing quick navigation without removing your fingers from the home row. + \item These direction keys can be combined with numbers to repeat them a certain number of times, e.g.: + \texttt{5j} moves the cursor down 5 lines. + \item There are also a number of other direction keys: \texttt{w} to go forward a word of text, \texttt{b} to + go back a word of text, \texttt{gg} to go to the start of the file, \texttt{G} to go to the end of the + file. \end{itemize} \end{frame} +\begin{frame}{What are the Vim keybindings?} + \begin{itemize} + \item Vim keybindings typically take the form \textbf{action + direction}, i.e. the first key pressed + indicates the action to be performed and the second key pressed indicates the direction in which to do + it. + \item The most common action keys are \texttt{d} to delete text, \texttt{c} to change text, \texttt{y} to copy + (or \textbf{yank}) text, and \texttt{p} to paste text. + \item The action keys are combined with direction keys, e.g. \texttt{dG} deletes all the text from the cursor + to the end of the file, \texttt{y5w} copies the next 5 words to the clipboard, etc. + \item If you're trying to get the hang of Vim keybindings, the most important one for you to know is + \texttt{u} to undo the last action you performed, in case you made a mistake! + \end{itemize} +\end{frame} + +\begin{frame}{What are the benefits of Vim?} + \begin{itemize} + \item Lightweight \& minimal. + \item Speedy text editing with countless keybindings \& shortcuts. + \item Easy integration with other command-line programs. + \item Endlessly extensible through its configuration file (found at \mintinline{shell}{~/.vimrc}) + \item Lots of community-developed plugins to extend its functionality even further. + \item It's very easy to quickly record a \textbf{macro} to perform an option repeatedly. + \item Standard on most modern UNIX-like systems; if you use a Linux-based system or MacOS, you likely already + have it installed! + \item Most IDEs have a Vim mode, allowing you to use the Vim keybindings in many other programs too. + \end{itemize} +\end{frame} + +\begin{frame}{What are the drawbacks of Vim?} + \begin{itemize} + \item Steep learning curve: there are so many keybindings that almost nobody knows them all. + \item No graphics support: because it's terminal-based, there is no way to display an image inside Vim. + \item Only works for plaintext editing: can't be used to edit Word documents or PowerPoint presentations. + \item Very minimal by default: it requires a lot of configuration to bring it to feature parity with a modern + IDE. + \item Requires some knowledge of the terminal: not suited for people who have no technical background. + \end{itemize} +\end{frame} + +\begin{frame}{Why I prefer Vim} + \begin{itemize} + \item I spend most of my time on my computer editing plaintext code files, so the speed gained from using the + Vim keybindings is invaluable. + \item As a Linux user and programmer, I spend a lot of time in the terminal, so having a terminal-based editor + is very convenient for me. + \item Often for internship work, I will have to remotely connect to a server to edit its configurations and + the only text editor available is Vim. + \item I enjoy the fine-grained control over the program's behaviour that the Vim configuration file affords + me. + \item I think it looks cooler than other text editors! + \end{itemize} +\end{frame} + +\begin{frame}{Is Vim right for you?} + \begin{itemize} + \item Vim is right for you if spend a lot of time editing plaintext files, using the terminal, or remotely + accessing servers and you don't mind its steep learning curve. + If you want fine-grained control over the behaviour of your text editor, and the ability to endlessly + extend it, then Vim is a good choice. + It helps a lot if you have a technical background, but anyone can learn Vim! + \item Vim is not right for you if you rely heavily on graphical editors, e.g. Microsoft Word or PowerPoint, if + you don't want to spend time learning the keybindings, or if you want a text editor that is feature-rich + out of the box without any customisation. + If you rarely use the terminal in your day-to-day life, then a terminal-based text editor likely is not + suitable for your workflow. + \end{itemize} +\end{frame} + +\begin{frame}{What alternatives are there to Vim?} + Similar text editors to Vim include: + \begin{itemize} + \item Emacs + \item Vi + \item Helix + \item Kakoune + \end{itemize} + + More conventional text editors include: + \begin{itemize} + \item Notepad + \item Atom + \item VSCode + \item Fully-featured IDEs such as Eclipse or Intellij. + \end{itemize} +\end{frame} + +\begin{frame}{How can I get started with Vim?} + \begin{itemize} + \item Download \& install Vim from \url{https://www.vim.org/download.php} + \item Open a terminal emulator / command prompt on your computer. + \item Enter \texttt{vim file\_name.txt}, substituting \texttt{file\_name.txt} for the path to the file you + want to edit / create, and start editing! + \item To get a more in-depth tutorial of how to use Vim, run the command \texttt{vimtutor} from your command + prompt to start the tutorial. + \end{itemize} +\end{frame} + +\begin{frame}{Summary} + By now, I hope that you have gained an understanding of: + \begin{itemize} + \item What Vim is and how it works. + \item The benefits of Vim. + \item The drawbacks of Vim. + \item Why I prefer Vim for all my text-editing work. + \item Whether or not Vim might be the right text editor for you. + \item What alternatives there are to Vim. + \item How you can get started with Vim. + \end{itemize} +\end{frame} \end{document} diff --git a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/report/report.pdf b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/report/report.pdf index ad92a038..4d8261da 100644 Binary files a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/report/report.pdf and b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/report/report.pdf differ diff --git a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/report/report.tex b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/report/report.tex index abfab500..9d82281b 100644 --- a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/report/report.tex +++ b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/report/report.tex @@ -70,64 +70,102 @@ \end{center} \hrule +\section{Preparation \& Planning} +The first thing that I considered when I was planning this presentation was my role as a presenter: what information do +I want to convey, and how best to convey it? +After I had chosen my topic (why Vim is my favourite text editor), I asked myself the 6 question: Why, Who, Where, When, +What, \& How. +Most of the time I spent on this presentation was on the preparation \& planning. +I tried to follow the 5:1 ratio: since my presentation was to be 20 minutes long, I prepared for just over 100 minutes. + \begin{itemize} - \item The role of the presenter. - \item Preparation \& Planning: Why, Who, Where, When, What, \& How. - \item Structuring the content for maximum impact: - \begin{itemize} - \item Introduction to the topic. - \item The middle part. - \begin{itemize} - \item Aligned with the introduction. - \item Main topics. - \item Each main topic has sub-topics. - \item Logical sequence. - \begin{itemize} - \item What are the main points I need to address? - \item What does the audience need to know first/second etc? - \item What do they need to know by the end? - \item Are my main points structured in a logical/coherent way? - \item What evidence will I use to support these points? - \end{itemize} - \end{itemize} - \item The conclusion. - \end{itemize} - - The presentation should be written in the following order: - \begin{enumerate} - \item Purpose \& Objective. - \item Middle: main content. - \item End: Summary, conclusions, \& recommendations. - \item Beginning: Introduction/Opening. - \end{enumerate} - - The content should be logical \& understandable. Use storyboards/maps. - Go from simple to complex, presented incrementally, concisely, \& in order. - Use chronological ordering. - Have clear sections \& headings to provide structure. - Lead from one point to another. - - \item Effective delivery techniques. - \begin{itemize} - \item Clarity. - \item Brevity. - \item Concision. - \end{itemize} - \item Stages of the communication process - \begin{itemize} - \item Encoding. - \item Transmission. - \item Decoding. - \item Feedback. - \end{itemize} - \item Barriers to effective communication: - \begin{itemize} - \item Language barriers. - \item Cultural barriers. - \item Technology barriers. - \end{itemize} + \item ``\textbf{Why} am I making this presentation? What is it's purpose?'' + I decided that the purpose of my presentation would be to inform someone about what Vim is, how it works, + and whether or not Vim might be the right text editor for them. + I wanted to inform \& empower the listener to facilitate them beginning their own journey using Vim as their + text editor. + \item ``\textbf{Who} is this presentation for?'' + I decided that I wanted my presentation to be accessible to all people, not just those with a Computer + Science background. + This informed a lot of my decisions throughout the presentation as to how much detail to go into: I wanted + to make sure that anybody could listen to and follow along with my presentation if they were interested in + it. + \item ``\textbf{Where} will this presentation be delivered?'' + The constraints of this assignment dictated that the presentation be submitted as a pre-recorded video, + meaning that I could not have any audience participation or Q\&A sessions. + Because there could be no audience interaction in my presentation, I felt that it was important I made sure + my presentation wasn't just a boring ``death by PowerPoint'' slide after slide of plain text, so I decided + to regularly switch from the presentation slides to a practical demonstration, to keep it engaging \& + interesting for the listener. + \item ``\textbf{When} will this presentation be delivered?'' + Unfortunately, due to the pre-recorded nature of the presentation, I have no control and no knowledge over + when the audience would be seeing my presentation. + If I did have control over this, I would pick the morning-time, when the audience is most awake, alert, \& + interested so the risk of me boring them or the information going over their heads is at its lowest, but + since I didn't have control, I had to prepare for the worst-case scenario. + I had to assume the audience would be bored, hungry, \& tired when viewing my presentation, so I aimed to + make it as engaging, concise, and interesting as I possibly could. + \item ``\textbf{What} do I want to present?'' + Once I knew what my purpose, audience, and constraints were, I needed to consider what information I + actually wanted to present to the audience. + I decided that I wanted a short, pithy, \& concise overview of the subject, with minimal digressions and + plenty of practical examples \& demonstrations, as I felt that this fit my purpose the best. + \item ``\textbf{How} do I want to present my information? + As I was limited to a pre-recorded video, I unfortunately was not able to walk around a stage to make my + presentation more visually interesting or something similar. + I had to focus my effort on the appearance of my presentation slides and the manner in which I conveyed + information. + I decided to keep my slides as minimal as possible, only inserting images where I thought it was important + and avoiding putting huge walls of texts on the slides, just bullet points. + I decided not to use many images as I wanted to keep the slide deck short, and I felt that me switching to + demonstrations regularly would make up for the lack of colour in my slides, instead allowing them to be + streamlined and filled with only the most important \& relevant information. + Since there was no camera on me, just the audio from my laptop microphone, I tried to speak clearly \& + loudly, and tried my best to avoid lip-smacking or saying ``uhhh'' excessively to allow for a more pleasant + listening experience. \end{itemize} +\subsection{Structuring} +I wrote my presentation in the following order: +\begin{enumerate} + \item Purpose \& Objective. + \item Middle: main content. + \item End: Summary, conclusions, \& recommendations. + \item Beginning: Introduction/Opening. +\end{enumerate} +After I had my purpose \& objective determined, I set to writing the ``middle part'', or the slides that would +constitute the bulk of the information in the presentation. +I also loosely scripted the demonstrations that I wanted to perform, and when I wanted to perform them, which I had as +cue cards off-screen. +\\\\ +Then, once I had my content completed, I wrote a conclusion / summary of all the information that I had presented, and +wrote a slide where I recommended whether or not the listener should use Vim, and some alternatives that they might be +interested in. +I decided to move the slide in which I explain how to get set up with Vim at the very end of the presentation, just +before the summary, as I felt that it was important to tell the audience whether or not they should be interested in +setting up Vim for their own use before telling them how to set it up. +I believe that this ensured that I maximised the audience engagement and retention, and maintained chronological +ordering. +\\\\ +I also considered the barriers that might exist to effective communication: language, cultural, \& technological. +In particular, I tried to minimise the technological barriers, as I was speaking about a program that was typically only +used by programmers \& computer scientists, so I wanted to make sure the information was presented in a way that was +accessible to everyone. +\\\\ +Finally, once I had all other content written, I wrote the introductory slides to the topic, which was much easier now +that I knew exactly what content I was introducing. +In the past, I wrote the introductions first, and then had to go back and edit them as my content changed, so writing +the introduction last was a real game-changer for me, and something that I will continue to do into the future. +\\\\ +My goal was to make the content logical, well-structured, \& easy to follow, starting with simple introductory concepts, +and slowly progressing to the complex in an incremental manner. +I tried to give each slide a clear \& concise heading to provide structure to the presentation and to make each point +flow smoothly \& logically to the next point +\section{Presenting} +When I was presenting my slides, I wanted to make sure that I was providing more information than just reading off the +slides, so I added extra information \& demonstrations as I saw fit as I went along, in a loosely-scripted manner. +I tried to ensure that my information \& speech was clear, concise, and as brief as possible without being too short to +convey the information clearly. \end{document} diff --git a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission.zip b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission.zip new file mode 100644 index 00000000..1c9d7ffc Binary files /dev/null and b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission.zip differ diff --git a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/presentation.mkv b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/presentation.mkv new file mode 100644 index 00000000..63f9db7e Binary files /dev/null and b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/presentation.mkv differ diff --git a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/presentation.pdf b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/presentation.pdf new file mode 100644 index 00000000..a2123082 Binary files /dev/null and b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/presentation.pdf differ diff --git a/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/report.pdf b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/report.pdf new file mode 100644 index 00000000..4d8261da Binary files /dev/null and b/year3/semester2/CT3112: Professional Skills/assignments/assignment1/submission/report.pdf differ