Finish CT3112 Assignment 01
This commit is contained in:
Binary file not shown.
Binary file not shown.
@ -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}
|
||||
|
Binary file not shown.
@ -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}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user