\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{0llieC (0llieC)} \pdfinfo{ /Title (a-level-computing-key-terms-and-concepts.pdf) /Creator (Cheatography) /Author (0llieC (0llieC)) /Subject (A-Level Computing Key - Terms \& Concepts Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{5C5C5C} \definecolor{LightBackground}{HTML}{F4F4F4} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{A-Level Computing Key - Terms \& Concepts Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{0llieC (0llieC)} via \textcolor{DarkBackground}{\uline{cheatography.com/38321/cs/12005/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}0llieC (0llieC) \\ \uline{cheatography.com/0lliec} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 20th February, 2019.\\ Updated 12th June, 2017.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Components/Processor Registers}} \tn % Row 0 \SetRowColor{LightBackground} Motherboard & The central interface for all the components of a PC. Everything connects to the motherboard via slots, wires, readouts and connectors. \tn % Row Count 7 (+ 7) % Row 1 \SetRowColor{white} Processor (CPU) & A combination of registers than manipulate data between the registers. The speed of a processor is measured in the number of instructions it can complete per second (Hz). Modern computers speed is measured in GHz. \tn % Row Count 18 (+ 11) % Row 2 \SetRowColor{LightBackground} Secondary Storage & Used to store programs and data. It can be partitioned to allow for dual-booting multiple operating systems. \tn % Row Count 24 (+ 6) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 25 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Processor Structure}}\{\{bt\}\}} \tn % Row Count 26 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{bt\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 27 (+ 1) % Row 6 \SetRowColor{LightBackground} Arithmetic Logic Unit (ALU) & The ALU carries out arithmetic calculations and comparisons. The result of any calculation is sent to the Accumulator \tn % Row Count 33 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Components/Processor Registers (cont)}} \tn % Row 7 \SetRowColor{LightBackground} Control Unit (CU) & The CU controls the operation of the hardware, inc. input and output devices, it controls the Fetch-Decode-Execute cycle. \tn % Row Count 6 (+ 6) % Row 8 \SetRowColor{white} Clock & The clock is the part that regulates the cycle of the CPU. It provides a regular pulse of high voltage then low voltage. This high-low transition is a cycle, each cycle is an instruction \tn % Row Count 15 (+ 9) % Row 9 \SetRowColor{LightBackground} Program Counter (PC) & This register holds the address of the next instruction to be executed, the PC is automatically implemented to the next instruction, unless the previous instruction was a jump. \tn % Row Count 24 (+ 9) % Row 10 \SetRowColor{white} Memory Buffer Register (MBR) & Values fetched from memory are sent to MBR. \tn % Row Count 27 (+ 3) % Row 11 \SetRowColor{LightBackground} Memory Address Register (MAR) & The location in memory of the current instruction/data being fetched. \tn % Row Count 31 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Components/Processor Registers (cont)}} \tn % Row 12 \SetRowColor{LightBackground} Current Instruction Register (CIR) & The instruction currently being executed/decoded \tn % Row Count 3 (+ 3) % Row 13 \SetRowColor{white} Data Bus & Carries the data between memory and the MBR \tn % Row Count 6 (+ 3) % Row 14 \SetRowColor{LightBackground} Address Bus & Carries the memory location of the instructions/data being received. \tn % Row Count 10 (+ 4) % Row 15 \SetRowColor{white} Control Bus & A bus with 2 states, set or enable, which govern if the data bus is reading or writing to memory \tn % Row Count 15 (+ 5) % Row 16 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 16 (+ 1) % Row 17 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Fetch Decode Execute}}\{\{bt\}\}} \tn % Row Count 17 (+ 1) % Row 18 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bt\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 18 (+ 1) % Row 19 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Fetch}}\{\{nl\}\}The PC contents are copied to the MAR\{\{nl\}\}Instruction at address in MAR \{\{fa-arrow-right\}\} MBR\{\{nl\}\}MBR \{\{fa-arrow-right\}\} CIR\{\{nl\}\}\{\{fa-arrow-down\}\}\{\{nl\}\}{\bf{Decode}}\{\{nl\}\}Instruction is decoded into: \{\{nl\}\}1. Operand \{\{fa-arrow-right\}\} The data to preform an instruction on\{\{nl\}\}2. Op-Code \{\{fa-arrow-right\}\} The instruction\{\{nl\}\}\{\{fa-arrow-down\}\}\{\{nl\}\}{\bf{Execute}}\{\{nl\}\}Instruction executed\{\{nl\}\}If data is being committed to memory, its held in the MBR\{\{nl\}\}Cycle repeats until stop instruction} \tn % Row Count 29 (+ 11) % Row 20 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 30 (+ 1) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Components/Processor Registers (cont)}} \tn % Row 21 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\} {\bf{Factors affecting Processor Performance}}} \tn % Row Count 1 (+ 1) % Row 22 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{bt\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 2 (+ 1) % Row 23 \SetRowColor{LightBackground} Multiple Cores & The increase in number of cores, allows for a greater throughput of data. If the software is threaded - can use multiple cores - it will divide up tasks to the different cores. {\bf{However}}, it must be coded in, else it will use the single core. \tn % Row Count 14 (+ 12) % Row 24 \SetRowColor{white} Cache Size & Cache is a small amount of {\bf{very}} fast memory. Repeatedly used instructions and data is stored in the cache for quick access. The bigger the cache, the more can be stored on it thus reducing processing time \tn % Row Count 24 (+ 10) % Row 25 \SetRowColor{LightBackground} Clock Speed & The clock regulates the instruction execution rate. The faster the clock, the more cycles completed per second. \tn % Row Count 30 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Components/Processor Registers (cont)}} \tn % Row 26 \SetRowColor{LightBackground} Pipelining & Where the stages of the F-D-E cycle are 'stacked' so that they can be processed at the same time. While one instruction is being fetched, the previous is being decoded. This may not necessarily increase processing time but throughput is increased. \{\{nl\}\}\{\{nl\}\}{\bf{Issues}}\{\{nl\}\}• If an instruction requires the result of a previous instruction, the CPU will remain dormant \{\{fa-arrow-right\}\} leading to 'bubbles'/pipeline stalls in the pipeline.\{\{nl\}\}• Jumps \{\{fa-arrow-right\}\} lead to the pipeline having to be flushed due to the change in instructions\{\{nl\}\}\{\{nl\}\}{\bf{Hyper-Threading}} \{\{fa-arrow-right\}\} Where the CPU is intelligent enough to fill the bubbles caused by pipeline stalls with other non-dependant instructions from separate threads. \tn % Row Count 36 (+ 36) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Components/Processor Registers (cont)}} \tn % Row 27 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 1 (+ 1) % Row 28 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\} {\bf{Processor Architecture}}} \tn % Row Count 2 (+ 1) % Row 29 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bt\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 3 (+ 1) % Row 30 \SetRowColor{white} Von-Neuman & The Von-Neumann architecture is commonly used in most PCs. It stores both programs and data in the same memory. Using the F-D-E cycle, it carries out a single instruction at a time.\{\{nl\}\}\{\{nl\}\}{\bf{Pros}} \{\{nl\}\}{\bf{+}} More Robust than Harvard (older)\{\{nl\}\}{\bf{+}} Single Storage \{\{nl\}\}\{\{nl\}\}{\bf{Cons}}\{\{nl\}\}{\bf{-}} Each Instruction takes 2 cycles (fetch/decode and execute)\{\{nl\}\}{\bf{-}} Cannot implement pipelining \tn % Row Count 23 (+ 20) % Row 31 \SetRowColor{LightBackground} Harvard & The Harvard architecture stores programs and data in {\bf{separate}} memory and uses the control unit at the centre of the structure. Generally used in embedded systems. \{\{nl\}\}\{\{nl\}\}{\bf{Pros}}\{\{nl\}\}{\bf{+}} Can complete an instruction in a single clock cycle (assuming pipelining is used)\{\{nl\}\}{\bf{+}} Modern\{\{nl\}\}{\bf{+}} Can implement pipelining\{\{nl\}\}\{\{nl\}\}{\bf{Cons}}\{\{nl\}\}{\bf{-}} Separate Memory \tn % Row Count 42 (+ 19) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Components/Processor Registers (cont)}} \tn % Row 32 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\} \{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 1 (+ 1) % Row 33 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{RISC/CISC}}} \tn % Row Count 2 (+ 1) % Row 34 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{bt\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 3 (+ 1) % Row 35 \SetRowColor{white} CISC & {\bf{CISC (Complex Instruction Set Computing)}}\{\{nl\}\}\{\{nl\}\}• One instruction can complete an entire sequence - more complex\{\{nl\}\}• Higher Power Consumption\{\{nl\}\}• Powerful\{\{nl\}\}• Generates more heat \tn % Row Count 13 (+ 10) % Row 36 \SetRowColor{LightBackground} RISC & {\bf{RISC (Reduced Instruction Set Computing)}}\{\{nl\}\}\{\{nl\}\}• Only one value fetched/stored per instruction cycle\{\{nl\}\}• Less Power Required\{\{nl\}\}• Used in smaller devices (Smartphones)\{\{nl\}\}• Generates less heat - requires less cooling methods \tn % Row Count 25 (+ 12) % Row 37 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{bb\}\} \{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 26 (+ 1) % Row 38 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Flynn's Taxonomy}}} \tn % Row Count 27 (+ 1) % Row 39 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{bt\}\}\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 28 (+ 1) % Row 40 \SetRowColor{LightBackground} SISD & {\bf{Single Instruction, Single Data-stream}}\{\{nl\}\} Single Core CPUs\{\{nl\}\}\{\{nl\}\}{\bf{NB}}:\{\{nl\}\}• No parallelism\{\{nl\}\}• Single CU, fetches single instruction \tn % Row Count 36 (+ 8) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.28942 cm} x{2.68758 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Components/Processor Registers (cont)}} \tn % Row 41 \SetRowColor{LightBackground} SIMD & {\bf{Single Instruction, Multiple Data-streams}}\{\{nl\}\}GPUs \{\{nl\}\}\{\{nl\}\}{\bf{NB}}:\{\{nl\}\}• One instruction preformed on many data-streams\{\{nl\}\}• Naturally parallelised operations\{\{nl\}\}• Examples: Fractal Rendering, Graphics Processing (hence GPUs) - each pixel is independant \tn % Row Count 13 (+ 13) % Row 42 \SetRowColor{white} MIMD & {\bf{Multiple Instructions, Multiple Data-streams}}\{\{nl\}\}Multi-core CPUs\{\{nl\}\}\{\{nl\}\}{\bf{NB}}:\{\{nl\}\}• Multiple autonomous processors simultaneously executing different instructions on different data\{\{nl\}\}• Uses either one shared memory space or a distributed memory space. \tn % Row Count 26 (+ 13) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.09034 cm} x{2.88666 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Software Generation}} \tn % Row 0 \SetRowColor{LightBackground} Specific Application & A piece of software that has a specific purpose, such as order entry, payroll, stock management etc. It may be {\bf{Bespoke}} (made to order) or {\bf{Off-the-shelf}} (designed to be used in a variety of situations). \tn % Row Count 10 (+ 10) % Row 1 \SetRowColor{white} General Purpose Application & An application that allows the user to produce their own solution to a problem. Most are sold as a package/a license. \{\{nl\}\}{\bf{Examples}}\{\{nl\}\}• Word Processing\{\{nl\}\}• Desktop Publishing\{\{nl\}\}• Spreadsheets\{\{nl\}\}• Database Management\{\{nl\}\}• CAD/CAM \{\{nl\}\}• Presentation Software\{\{nl\}\}\{\{nl\}\}{\bf{Specific Examples}}\{\{nl\}\}• Microsoft Office\{\{nl\}\}• Adobe Suite \tn % Row Count 27 (+ 17) % Row 2 \SetRowColor{LightBackground} Open Source vs. Closed Source & {\bf{Open Source}} \{\{fa-arrow-right\}\} Source code is readable to anybody and freely modifiable.\{\{nl\}\}{\bf{Closed Source}} \{\{fa-arrow-right\}\} Executable only, source code is kept hidden.\{\{nl\}\}\{\{nl\}\}{\bf{Pros of OS}}\{\{nl\}\}• Free (usually)\{\{nl\}\}• Community Coding/Bug Fixing - Usually faster than any closed-source\{\{nl\}\}• Customisable\{\{nl\}\}• Freedom to do what you like\{\{nl\}\}\{\{nl\}\}{\bf{Pros of CS}}\{\{nl\}\}• Professional Development \{\{nl\}\}• Lower security risks\{\{nl\}\}• Well documented and customer support\{\{nl\}\}\{\{nl\}\} \tn % Row Count 50 (+ 23) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.09034 cm} x{2.88666 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Software Generation (cont)}} \tn % Row 3 \SetRowColor{LightBackground} Translator Software & Software that convert one programming language into another. There are 3 catagories: Compilers, Interpreters and Assemblers. \{\{nl\}\}\{\{nl\}\}{\bf{Assemblers}} \{\{fa-arrow-right\}\} Convert Assembly into machine specific machine code. Assembly language consists of mnemonics that represent different instructions. It is converted to binary (machine code)\{\{nl\}\}\{\{nl\}\}{\bf{Interpreters}} \{\{fa-arrow-right\}\} Checks and executes code line by line.\{\{nl\}\}\{\{nl\}\}{\bf{Compiler}} \{\{fa-arrow-right\}\} Checks all the codes syntax, semantics and logic and then converts the code into Object code (usually machine code or similar low-level). The compiled code is usually what is distributed. \tn % Row Count 29 (+ 29) % Row 4 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 30 (+ 1) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.09034 cm} x{2.88666 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Software Generation (cont)}} \tn % Row 5 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Stages of Compilation}}} \tn % Row Count 1 (+ 1) % Row 6 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 2 (+ 1) % Row 7 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Lexical Analysis}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 3 (+ 1) % Row 8 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Firstly the code is striped of anything uneeded such as comments and redundant whitespace\{\{nl\}\}\{\{nl\}\}The code is then divided into Lexemes (the smallest 'unit' of code).\{\{nl\}\}\{\{nl\}\}Tokens are then assigned to each lexeme indicating what it is. Some token examples:\{\{nl\}\}• Identifiers - for variables, subroutines, classes etc.\{\{nl\}\}• Keywords - new, if, for, while etc.\{\{nl\}\}• Operators - +, - , / , == etc.\{\{nl\}\}• Literals - fixed numbers and strings \{\{nl\}\}• Symbols - \{\}, (), ; etc.\{\{nl\}\}\{\{nl\}\}\{\{nl\}\}{\bf{Errors}} are caused when a lexeme cannot be assigned a token} \tn % Row Count 15 (+ 12) % Row 9 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Syntax Analysis}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 16 (+ 1) % Row 10 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{The stream of tokens generated is then analysed to check they match the rules of the language. Tree data structures are often used in this process.\{\{nl\}\}\{\{nl\}\}An example of valid syntax would be:\{\{nl\}\}\{\{nl\}\}String word = "Hello, World!";\{\{nl\}\}Datatype Literal Operator StringLiteral Symbol\{\{nl\}\}\{\{nl\}\}\{\{nl\}\}{\bf{Errors}} occur when a series of tokens cannot be matched to a rule, such as multiple datatypes.} \tn % Row Count 25 (+ 9) % Row 11 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Semmantic Analysis}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 27 (+ 2) % Row 12 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{The stage where code is checked for logical errors. For example:\{\{nl\}\}• Datatype mismatch - assigning a String to an int\{\{nl\}\}• Undeclared Variables, or out of scope variables\{\{nl\}\}• Multiple variable declarations\{\{nl\}\}• Array out of bounds with an integer literal.\{\{nl\}\}\{\{nl\}\}{\bf{Errors}} occur when one of the rules are broken. {\bf{NB}} Not all semantic errors can be caught during compilation. For example accessing an array with a integer variable is logically fine, but the integer value may be out of bounds causing a run-time error.} \tn % Row Count 38 (+ 11) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.09034 cm} x{2.88666 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Software Generation (cont)}} \tn % Row 13 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Intermediate Code Generation/Optimisation}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 2 (+ 2) % Row 14 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{The code is then converted into intermediate code (Java to Java bytecode, where it remains until use - not all languages do this)\{\{nl\}\}\{\{nl\}\}{\bf{Intermediate code is machine {\emph{independent}}}}\{\{nl\}\}\{\{nl\}\}The code is then optimised, so that it runs faster and requires less resources, but still having the same output.} \tn % Row Count 9 (+ 7) % Row 15 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Machine Code Generation/Optimisation}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 11 (+ 2) % Row 16 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{The final stage of compilation is the conversion to machine code. {\bf{This process has to be repeated for each processor as it is machine dependant}}. Specific optimisations are also done on the separate processors as code that works well with one instruction set may not work as well with another.} \tn % Row Count 17 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Libraries, Linkers and Loaders}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/0lliec_1496683508_Selection_058.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Library}} \{\{fa-arrow-right\}\} Generic name for a collection of programs used in development. Some languages have native ones. Saves time as the developers don't have to create their own code. \newline {\bf{Linker}} \{\{fa-arrow-right\}\} Combines object and library files \newline {\bf{Loader}} \{\{fa-arrow-right\}\} Loads the object code into memory to be executed} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.4931 cm} x{3.4839 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Testing Strategies}} \tn % Row 0 \SetRowColor{LightBackground} Black Box (Alpha) & Testing that examines the functionality of a application, without looking at its internal code/structures. \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} White Box & Tests the internal structure/workings of a application rather than its functionality (opposite of black box) \tn % Row Count 8 (+ 4) % Row 2 \SetRowColor{LightBackground} Top Down & Testing of modules and sections of code that aren't yet implement. Testing the behaviour between modules. \tn % Row Count 12 (+ 4) % Row 3 \SetRowColor{white} Top Down & Testing of modules and sections of code that aren't yet implement. Testing the behaviour between modules. \tn % Row Count 16 (+ 4) % Row 4 \SetRowColor{LightBackground} Bottom Up & Testing each part of the application individually then testing the parts that rely on the section/module. \tn % Row Count 20 (+ 4) % Row 5 \SetRowColor{white} Usability (Beta) & Testing how easy a system is to use by testing it with real users. It shows how somebody without a working knowledge of the application would use the system and any problems they might find. \tn % Row Count 27 (+ 7) % Row 6 \SetRowColor{LightBackground} Test Data & A range of test data must be used to properly test a system. It should include:\{\{nl\}\}• Normal Data\{\{nl\}\}• Boundary Data\{\{nl\}\}• Standard Incorrect Data - incorrect data that could easily be entered\{\{nl\}\}• Standard invalid data - e.g. text into numeric fields\{\{nl\}\}• Extreme data - data that would never be entered normally, used to test the limits of a system \tn % Row Count 41 (+ 14) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{OOP}} \tn % Row 0 \SetRowColor{LightBackground} Class & A 'blueprint', a combination of attributes and methods that create an object. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Object & An instance of a class. \tn % Row Count 4 (+ 1) % Row 2 \SetRowColor{LightBackground} \seqsplit{Encapsulation} & Where attributes and methods are wrapped in their objects. Access modifiers control how the methods and the attributes can be accessed, whether that be by any class, or only within its own class. \tn % Row Count 11 (+ 7) % Row 3 \SetRowColor{white} \seqsplit{Inheritance} & A relationship among classes where a child class shares methods/attributes with its parent class. The child classes can also have their own independent attributes/methods but all child nodes share the ones inherited from the parent. \tn % Row Count 19 (+ 8) % Row 4 \SetRowColor{LightBackground} Abstract Class & A class which contains attributes and methods like a normal class, but the class itself cannot be instantiated. An example is an Animal, you can write an abstract class, but you cannot create just an Animal. \tn % Row Count 27 (+ 8) % Row 5 \SetRowColor{white} \seqsplit{Polymorphism} & A feature of a programming language that allows routines to use variables of different types at different times. For example, overloading constructors which behave differently depending on their parameters \tn % Row Count 35 (+ 8) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Web Technologies}} \tn % Row 0 \SetRowColor{LightBackground} HTML (Hypertext Markup Language) & The standard language for displaying webpages. A HTML document starts with \{\{nl\}\}\textless{}!DOCTYPE html\textgreater{}\{\{nl\}\}\textless{}html\textgreater{} \{\{nl\}\}\{\{nl\}\} It consists of tags which are opened and closed \textless{}tag\textgreater{}\textless{}/tag\textgreater{}. Each document has a head and a body. \tn % Row Count 10 (+ 10) % Row 1 \SetRowColor{white} & \textless{}h1\textgreater{}\{\{ml\}\}\textless{}h2\textgreater{}... \tn % Row Count 11 (+ 1) % Row 2 \SetRowColor{LightBackground} & \textless{}a \seqsplit{href="http://www.google}.com"\textgreater{}Link Text\textless{}/a\textgreater{} \tn % Row Count 14 (+ 3) % Row 3 \SetRowColor{white} & \textless{}img \seqsplit{scr="path/to/image.jpg"} alt="picture"\textgreater{} \tn % Row Count 16 (+ 2) % Row 4 \SetRowColor{LightBackground} & \textless{}p\textgreater{}Normal Paragraph text\textless{}/p\textgreater{} \tn % Row Count 18 (+ 2) % Row 5 \SetRowColor{white} CSS (Cascading Style Sheet) & The standard way to style webpages, whether internal or externalised. Externalised stylesheets allow developers to keep design and content completely separate. \tn % Row Count 26 (+ 8) % Row 6 \SetRowColor{LightBackground} JS (JavaScript) & JS is an interpreted code that adds interactivity to websites. It works on virtually all hardware and is used on nearly all websites. For example there are currently 300,000 JS repos on Github, Java has 200k \tn % Row Count 36 (+ 10) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Web Technologies (cont)}} \tn % Row 7 \SetRowColor{LightBackground} Search Engine Indexing & A search engine searches through webpages, for certain keywords and phrases. Problem Indexes are used, when a new document (webpage) is added, the words/phrases are tokenised, and added to the list. \tn % Row Count 9 (+ 9) % Row 8 \SetRowColor{white} PageRank Algorithm & Google's algorithm that calculates the weighting of webpages. All pages have an initial rank, but for each link, it gives a certain amount to the webpage linked. Other algorithms are also used to give pages different rankings depending on what the user is searching for. \tn % Row Count 22 (+ 13) % Row 9 \SetRowColor{LightBackground} Client-Side Processing & Processing preformed in the browser, usually JS. This allows user entered data to be checked before sending it to the server, which reduces the load on the server. For example, ensuring an email has an @, or a password is a certain number of characters. Anybody can view the code for client-side processing, so its best for just verification \tn % Row Count 38 (+ 16) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Web Technologies (cont)}} \tn % Row 10 \SetRowColor{LightBackground} Server-Side Processing & Processing performed on the server. The code is only viewable to people with access to the server-files. It processes requests and serves a webpage based on the requests \tn % Row Count 8 (+ 8) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.43873 cm} x{2.53827 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{L.O.R. (*) Questions}} \tn % Row 0 \SetRowColor{LightBackground} Data Protection Act & {\bf{{\emph{8 Principles}}}}:\{\{nl\}\}1. Personal data must be obtained {\bf{lawfully}} and {\bf{fairly}}\{\{nl\}\}2. P.D. must be held for a {\bf{specified}} purpose\{\{nl\}\}3. P.D. must be {\bf{adequate, relevent}} and {\bf{not excessive}}\{\{nl\}\}4. P.D. must be kept {\bf{up-to-date}} and {\bf{accurate}}\{\{nl\}\}5. P.D. must not be kept {\bf{longer than necessary}}\{\{nl\}\}6. P.D. must be processed in accordance with {\bf{data subjects}} rights\{\{nl\}\}7. P.D. must be kept {\bf{securely}}\{\{nl\}\}8. P.D. must not be {\bf{transferred outside the EU without permission}} \tn % Row Count 26 (+ 26) % Row 1 \SetRowColor{white} Computer Misuse Act & {\bf{Level 1: Unauthorised Access}}\{\{nl\}\}• Accessing secure parts of a computer, that they are unauthorised to access\{\{nl\}\}• In organisations, accessing secure parts that are beyond your rights.\{\{nl\}\}\{\{nl\}\}{\bf{Level 2: Unauthorised Access with intent to commit a Crime}}\{\{nl\}\}• Level 1 + intent to commit another crime.\{\{nl\}\}\{\{nl\}\}{\bf{Level 3: Unauthorised Modification}}\{\{nl\}\}Includes intent to:\{\{nl\}\}• Impair the operation of any PC\{\{nl\}\}• Prevent or hinder access to a program\{\{nl\}\}• Impair the operation of any program or reliability of data. \tn % Row Count 54 (+ 28) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.43873 cm} x{2.53827 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{L.O.R. (*) Questions (cont)}} \tn % Row 2 \SetRowColor{LightBackground} Copyright, Designs \& Patents Act & Protects \seqsplit{individuals/organisations} intellectual data. It protects:\{\{nl\}\}• Income for the authors - Allows the author to license the data.\{\{nl\}\}• Cost of creating the product - some products can cost thousands to produce\{\{nl\}\}• Quality of Produce - pirates often alter products to bypass security\{\{nl\}\}• Alteration Protection - Altering programs can have unintended aftereffects. \tn % Row Count 20 (+ 20) % Row 3 \SetRowColor{white} Regulation of Investigatory Powers Act & This act allows government agencies, to request access to secure information. It makes provisions for:\{\{nl\}\}• Interception of communication\{\{nl\}\}• Acquisition and disclosure of data\{\{nl\}\}• Surveillance\{\{nl\}\}• Access to electronic data protected by encryption. \tn % Row Count 34 (+ 14) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.43873 cm} x{2.53827 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{L.O.R. (*) Questions (cont)}} \tn % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 1 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{Moral/Ethical/Social Issues}}\{\{ac\}\}} \tn % Row Count 2 (+ 1) % Row 6 \SetRowColor{LightBackground} Computers in the Workplace & • Big Brother concern - an employer could watch over employees\{\{nl\}\}• Reduced Productivity - employees can do multiple things at once, which may reduce productivity as employees may 'waste' time \tn % Row Count 12 (+ 10) % Row 7 \SetRowColor{white} Automated Decision Making & Computers are starting to have the ability to make decisions based on input data. Usually it can be better than any human making the same decision. The issue is what happens when the wrong decision is made, who is to blame? \tn % Row Count 24 (+ 12) % Row 8 \SetRowColor{LightBackground} AI & This is the one of the biggest issues, as AI use is rising among recent years. The issues are the same as automated decision making, but more issues arise when you consider cognitive/when is a computer considered alive? \tn % Row Count 35 (+ 11) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.43873 cm} x{2.53827 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{L.O.R. (*) Questions (cont)}} \tn % Row 9 \SetRowColor{LightBackground} Environment & The increase in use of computers = more RAW materials Another issue is the disposal of old parts/devices. \tn % Row Count 6 (+ 6) % Row 10 \SetRowColor{white} Censorship & Moral concerns are raised at whether the internet should be censored, would it be restricting the freedom of information. The issues arise when considering adult content, and piracy. \tn % Row Count 16 (+ 10) % Row 11 \SetRowColor{LightBackground} Monitoring Behaviour & It is possible to monitor what individuals are using a computer for, there is a moral issue when considering how much should an individual be monitored, and the issues based on a persons privacy. \tn % Row Count 26 (+ 10) % Row 12 \SetRowColor{white} Personal Information & Rises a privacy concern. Computers can now monitor peoples information and collect it. When does this become a breach of privacy. \tn % Row Count 33 (+ 7) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.43873 cm} x{2.53827 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{L.O.R. (*) Questions (cont)}} \tn % Row 13 \SetRowColor{LightBackground} Piracy & Breaking the law (C.D.P.) but people do it anyway. \tn % Row Count 3 (+ 3) % Row 14 \SetRowColor{white} Offensive Material & Computers are general purpose, what people do with them can be considered offensive/morally wrong e.g. cyberbullying, which can have drastic effects \tn % Row Count 11 (+ 8) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.64241 cm} x{3.33459 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Data Structures}} \tn % Row 0 \SetRowColor{LightBackground} Array & A data structure used to whole elements of the same data type. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} 1D Array & An Array with a single dimension, i.e. it only has a given length \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} 2D Array & An array with 2 dimensions. It is commonly used to represent coordinates or a table, with the indexes relating to rows/columns \tn % Row Count 11 (+ 5) % Row 3 \SetRowColor{white} 3D Array & An array with 3 dimensions. It is used for representing 3D space so is also used for coordinates a lot. \tn % Row Count 15 (+ 4) % Row 4 \SetRowColor{LightBackground} Linked List & A data structure where each element in the list points to the next one. This makes is very easy to add/remove/reorder elements as only the pointer needs to change each time. \tn % Row Count 22 (+ 7) % Row 5 \SetRowColor{white} Queue & A First In, First Out (FIFO) data structure.\{\{nl\}\} When coding a queue, there must be the possibility to:\{\{nl\}\}• Check if the queue is full\{\{nl\}\}• Read/Remove/Return an element from the front of the Q\{\{nl\}\}• Place a new element at the end of the Q \tn % Row Count 32 (+ 10) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.64241 cm} x{3.33459 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Data Structures (cont)}} \tn % Row 6 \SetRowColor{LightBackground} Circular Queue & The end of a queue linking back to the beginning. \tn % Row Count 2 (+ 2) % Row 7 \SetRowColor{white} Stack & A First In, Last Out (FILO) data structure. \{\{nl\}\}When coding a stack, there must be the possibility to:\{\{nl\}\}• Check if the stack is full/empty\{\{nl\}\}• Read/Remove/Return an element from the top of the stack (pop)\{\{nl\}\}• Add a new value to the top of the stack (push) \tn % Row Count 13 (+ 11) % Row 8 \SetRowColor{LightBackground} Graph & A set of nodes/vertices connected by edges. \tn % Row Count 15 (+ 2) % Row 9 \SetRowColor{white} \seqsplit{Directional-Graph} & A graph where the edges have a direction. \tn % Row Count 17 (+ 2) % Row 10 \SetRowColor{LightBackground} \seqsplit{Bi-Directional} Graph & A graph where the edges have 2 way directions. \{\{fa-arrows-h\}\} \tn % Row Count 20 (+ 3) % Row 11 \SetRowColor{white} Trees & A tree is a simple un-directed graph which contains no loops. A tree has a root where all other nodes/edges originate from \tn % Row Count 25 (+ 5) % Row 12 \SetRowColor{LightBackground} Binary Tree & A tree where each node has a maximum of 2 sub-nodes. Nodes with no child nodes are called leafs, and the edges, branches. \tn % Row Count 30 (+ 5) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.64241 cm} x{3.33459 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Data Structures (cont)}} \tn % Row 13 \SetRowColor{LightBackground} Hash Table & A table where the index system is the data the person is looking for, but \tn % Row Count 3 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Input/Output/Storage}} \tn % Row 0 \SetRowColor{LightBackground} Input Device & A device (piece of computer hardware equipment) that is used to provide data and control signals to an information processing system such as a computer or information appliance. {\bf{Examples of input devices include keyboards, mouse, scanners, digital cameras and joysticks.}} \tn % Row Count 10 (+ 10) % Row 1 \SetRowColor{white} Output Device & is any device used to send data from a computer to another device or user. Most computer data output that is meant for humans is in the form of audio or video. {\bf{Examples include monitors, projectors, speakers, headphones and printers.}} \tn % Row Count 19 (+ 9) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{bb\}\}\{\{fa-bars\}\}} \tn % Row Count 20 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Memory}}} \tn % Row Count 21 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{bt\}\}\{\{fa-bars\}\}} \tn % Row Count 22 (+ 1) % Row 5 \SetRowColor{white} \seqsplit{HDD/Magnetic} & Information is held in blocks consisting of tracks and sectors. Each block contains the same amount of information, therefore information is more dense closer to the centre.\{\{nl\}\}\{\{nl\}\}{\bf{Rotation Speed}}\{\{nl\}\}• A HDD consists of a very fast spinning disk (5400 - 7200 rpm)\{\{nl\}\}• A reading head is suspended above the disk due to the Bernoulli effect\{\{nl\}\}• Due to fast speeds, the housing {\bf{has}} to be evacuated\{\{nl\}\}\{\{nl\}\}{\bf{Capacity vs Cost}}\{\{nl\}\}• Largest HDD avaliable \textasciitilde{} 12TB. \{\{nl\}\}• Roughly 3p per GB. (£0.000000000027915 per Byte) \tn % Row Count 41 (+ 19) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Input/Output/Storage (cont)}} \tn % Row 6 \SetRowColor{LightBackground} SDD/Flash & A storage medium that has no moving parts. It uses a data controller to control the read/write of data. 2 rules of the data controller:\{\{nl\}\}{\bf{1.}} You can combine pages to form a block, but a block {\bf{cannot}} overwrite individual pages\{\{nl\}\}{\bf{2.}} Before writing to a memory location, the page previously allocated must be erased. \{\{nl\}\}\{\{nl\}\}{\bf{Pros}}\{\{nl\}\}• Low Latency Time\{\{nl\}\}• Fast Transfer speed\{\{nl\}\}\{\{nl\}\}{\bf{Cons}}\{\{nl\}\}• More Expensive\{\{nl\}\}\{\{nl\}\}{\bf{Capacity vs Cost}}\{\{nl\}\}• Largest: \textasciitilde{}4TB\{\{nl\}\}• Roughly 30p per GB (£0.000000000291625 per Byte) \tn % Row Count 20 (+ 20) % Row 7 \SetRowColor{white} \seqsplit{Disc/Optical} & A storage medium that uses binary pits to encode data. A laser is beamed at the disk and uses the diffraction of the light to detect a 0/1 (trough/peak). \{\{nl\}\}\{\{nl\}\}{\bf{Read-only}}: A laser is used to burn the disks, the data cannot be changed\{\{nl\}\}{\bf{Re-Writable}}: A dye is used where if a high temp is used, it will go opaque (creating a peak - 1) and if a higher temp is used it goes transparent (a trough - 0). The disk is now reusable. \tn % Row Count 36 (+ 16) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Input/Output/Storage (cont)}} \tn % Row 8 \SetRowColor{LightBackground} Speeds & {\bf{Solid State}}: 200 to 2500 MB/s\{\{nl\}\}{\bf{Hard-Drive}}: 1030 MB/s\{\{nl\}\}{\bf{Optical (x1 Speeds)}}:\{\{nl\}\} - Blue-ray: 4.29 MB/s\{\{nl\}\} - DVD: 1.32 MB/s\{\{nl\}\} - CD: 0.15 MB/s \tn % Row Count 6 (+ 6) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 7 (+ 1) % Row 10 \SetRowColor{LightBackground} RAM & The 'working' area of the computer. Programs and data currently in use is stored in the RAM. On startup the BIOS loads the OS into the RAM.\{\{nl\}\}\{\{nl\}\}{\bf{Characteristics}}\{\{nl\}\}• Random Access - allows data items to be read or written in almost the same amount of time irrespective of the physical location of data inside the memory.\{\{nl\}\}• {\bf{Volatile}} \{\{fa-arrow-right\}\} emptied on power down\{\{nl\}\}• \textasciitilde{}1-16GB\{\{nl\}\} \tn % Row Count 22 (+ 15) % Row 11 \SetRowColor{white} ROM & A permanent area of storage. The contents cannot be altered by software. Contents of ROM is written at manufacture \{\{nl\}\}\{\{nl\}\}{\bf{Characteristics}}\{\{nl\}\}• Read-Only Access\{\{nl\}\}• {\bf{Non-Volatile}} \{\{fa-arrow-right\}\} retains data at power down\{\{nl\}\}• Mainly used to store firmware or application software in plug-in cartridges.\{\{nl\}\}• \textasciitilde{}4MB\{\{nl\}\}• Examples of ROM: Bootloader (BIOS/UEFI), \{\{nl\}\}\{\{nl\}\} \tn % Row Count 37 (+ 15) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Input/Output/Storage (cont)}} \tn % Row 12 \SetRowColor{LightBackground} BIOS/UEFI & Basic Input Output System/Unified Extensible Firmware Interface The BIOS is preforms the hardware initialisation during the bootup, and provides runtime services between the OS and hardware. UEFI was designed to be the successor to the BIOS \tn % Row Count 9 (+ 9) % Row 13 \SetRowColor{white} Virtual Memory & When the RAM is full, the OS uses some of the secondary storage as Virtual Memory. This means the computer can continue to run. Pages (blocks of data) are transferred to the virtual memory when not needed thus freeing up space, and returned to RAM when they are needed. \tn % Row Count 19 (+ 10) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Operating System}} \tn % Row 0 \SetRowColor{LightBackground} Operating System & Software that provides:\{\{nl\}\}• Process Management\{\{nl\}\}• Memory Management\{\{nl\}\}• Device Management\{\{nl\}\}• User Interface\{\{nl\}\}• File Management\{\{nl\}\}\{\{nl\}\}\{\{nl\}\}{\bf{Fundamentally its software that manages/interfaces computer hardware and software}} \tn % Row Count 10 (+ 10) % Row 1 \SetRowColor{white} Kernel & The very core of the OS that provides the interface between the user and the hardware. Applications use the kernel to send/receive data from hardware. \tn % Row Count 16 (+ 6) % Row 2 \SetRowColor{LightBackground} Memory Management & A OS must manage the computers memory including adding/removing programs and data from RAM, allowing multiple programs to be run at the same time. The OS also reallocates memory when it is no-longer in use (i.e. when a program is closed)\{\{nl\}\}\{\{nl\}\}{\bf{Paging vs Segmentation \& Virtual Memory}}\{\{nl\}\}• Segmentation. \{\{fa-arrow-right\}\} Memory is split into variable sized blocks, and programs are segmented, with each segment being a logical divider. A segment table then maps segments onto memory blocks. Generally slower than paging due to the placement algorithm\{\{nl\}\}• Paging. \{\{fa-arrow-right\}\} RAM is split into fixed sized blocks - frames. Programs are split into same-sized blocks - pages. Any page can be placed in any frame, easy to allocate as all equal size. \{\{nl\}\}• If the RAM is full. Pages are transferred to the secondary storage acting as memory - Virtual Memory. Pages are moved in/out as needed. \{\{nl\}\}• Thrashing \{\{fa-arrow-right\}\} is when pages are being constantly swapped between RAM and V.Mem. It can cause speed issues as the secondary storage's speed \textless{}\textless{} RAM's speed. \tn % Row Count 59 (+ 43) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Operating System (cont)}} \tn % Row 3 \SetRowColor{LightBackground} Interrupts & Interrupts are a form of error checking. If an error occurs, the interrupt is stored in a priority queue. After the next instruction has been executed, the interrupt queue is checked for any interrupt and the processor runs a set of instructions called the Interrupt Service Routine (ISR), with each interrupt having its own ISR. Before the ISR is run, the current values in the registers are stored, so that the processor can return to its previous position. Examples of interrupt types are:\{\{nl\}\}• I/O Interrupt \{\{fa-arrow-right\}\} A status of a channel has changed, Occurs when an IO operation is complete or a device is ready.\{\{nl\}\}• Timer Interrupt \{\{fa-arrow-right\}\} Allows the processor to preform tasks at intervals\{\{nl\}\}• Program Check \{\{fa-arrow-right\}\} Most commonly memory access violations - accessing memory that doesn't exist or is not in use\{\{nl\}\}• Machine Check \{\{fa-arrow-right\}\} when hardware \tn % Row Count 36 (+ 36) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Operating System (cont)}} \tn % Row 4 \SetRowColor{LightBackground} Process Management & Involves the scheduling and switching of programs and threads. Modern PCs have 'multitasking' but it is just clever scheduling. \tn % Row Count 5 (+ 5) % Row 5 \SetRowColor{white} Scheduling Techniques & {\bf{First Come, First Served}}\{\{nl\}\}As the name suggests. \{\{nl\}\}• Poor Efficiency\{\{nl\}\}\{\{nl\}\}{\bf{Round Robin}}\{\{nl\}\}Each process has a set number of processing time. Processor switches in a circular fashion\{\{nl\}\}• Easy Implementation\{\{nl\}\}• Can be inefficient\{\{nl\}\}• Time can be lost waiting for inputs\{\{nl\}\}\{\{nl\}\}{\bf{Shortest Job First}}\{\{nl\}\}The process with the shortest processing time is processed\{\{nl\}\}• Long Process can be waiting a long time - processor starvation\{\{nl\}\}\{\{nl\}\}{\bf{Shortest time {\emph{remaining}}}}\{\{nl\}\}The process with the shortest remaining processing time is processed. If another job with a shorter time remaining arrives, it will switch\{\{nl\}\}• Short jobs executed quickly\{\{nl\}\}• Starvation can still occur\{\{nl\}\}\{\{nl\}\}{\bf{Multi-Level Queue}}\{\{nl\}\}Processes are given a priority when they arrive, dep. on their time remaining, process type and memory size. \{\{nl\}\}• Important jobs processed first\{\{nl\}\}\{\{nl\}\}{\bf{Multi-Level Feedback Queue}}\{\{nl\}\}Same as a MLQ but the processor can change the priority of a process, most likely due to a process taking up too much processing time. \{\{nl\}\}• Stops starvation\{\{nl\}\}• Allows interactivity\{\{nl\}\}• Priorities can be changed \tn % Row Count 51 (+ 46) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Operating System (cont)}} \tn % Row 6 \SetRowColor{LightBackground} Types of OS & {\bf{Embedded}}\{\{nl\}\}• Mostly hidden in devices, generally within the hardware themselves.\{\{nl\}\}• Built into objects\{\{nl\}\}• Have a dedicated purpose\{\{nl\}\}• Little/no user interface\{\{nl\}\}• Fully Autonomous\{\{nl\}\}• Use limited resources - only whats required\{\{nl\}\}\{\{nl\}\}{\bf{Multi-Tasking}}\{\{nl\}\}• Several programs/processes at the same time (concurrent).\{\{nl\}\}• Can either be process management or through parallel processing\{\{nl\}\}• Most General Purpose OS' are now Multitasking\{\{nl\}\}\{\{nl\}\}{\bf{Multi-User}}\{\{nl\}\}• Must be a multi-tasking OS too\{\{nl\}\}• Several users accessing the \seqsplit{processor/programs/resources} at the same time. \{\{nl\}\}• Usually a round robin approach.\{\{nl\}\}• Shared processing.\{\{nl\}\}\{\{nl\}\}{\bf{Real-Time}}\{\{nl\}\}• Inputs being processed under strict time limits. For requirements:\{\{nl\}\}{\bf{1.}} Support Non-Sequential programs\{\{nl\}\}{\bf{2.}} Handle parallel and unpredictable events\{\{nl\}\}{\bf{3.}} Produce responses within the time limit\{\{nl\}\}{\bf{4.}} Have fail-safes to guarantee response time\{\{nl\}\}\{\{nl\}\}{\bf{Distributed}}\{\{nl\}\}A collection of independent nodes, each with its own hardware. The OS presents the systems as an individual. For example: AI; Weather Forecasting; Online Shopping. Each may have the main system on one server, and other things processed on another. The pros of this are that it reduces the load on one computer, and if one fails, it may be able to continue.\{\{nl\}\} \tn % Row Count 55 (+ 55) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Operating System (cont)}} \tn % Row 7 \SetRowColor{LightBackground} Device Management & The OS can make devices acessible to other programs through the use of Device Drivers. It is a piece of software that controls the hardware and provides the interface so that programs and the OS can use the device. Devices cause interrupts on the processor and depending on its priority is when the interrupt is processed. \tn % Row Count 13 (+ 13) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Waterfall Method}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/0lliec_1496684225_Waterfall_model.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Each of the stages are classified as {\emph{milestones}}. Following the methodology strictly would mean the system is developed flowing down the waterfall. Another version exists where there is iteration back up the steps.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Spiral Method}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/0lliec_1496684394_1200px-Spiral_model_(Boehm,_1988).svg.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{The method starts in the centre and spirals outwards. The purpose is to eliminate/reduce any project failures by constantly returning to each of the milestones. The review stage is where the client is consulted with to determine the progress.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{RAD}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/0lliec_1496684625_pm4.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{This development methodology requires minimal documentation, but requires a high amount of involvement of the client as a prototype is created, then reviewed then improved upon.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Extreme Programming}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/0lliec_1496684863_1200px-Extreme_Programming.svg.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{This is one on the agile approaches to software development. It allows for client changes throughout the life cycle and the constant review of progress and client involvement give it its name as 'extreme'.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Methodology Comparison}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/0lliec_1496684979_Methodologies.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.64241 cm} x{3.33459 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Programming paradigms}} \tn % Row 0 \SetRowColor{LightBackground} Object Orientated & Code is divided into objects which possess state and behaviour. Follows the principles of encapsulation, abstraction, inheritance and polymorphism. \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} Logic & The code consists of a series of rules which define a scenario. Answers can be obtained by asking questions in a specific format. \tn % Row Count 11 (+ 5) % Row 2 \SetRowColor{LightBackground} Data Query Languages & Queries to a database or other data structure are specified by what is wanted rather than how to get it. \tn % Row Count 15 (+ 4) % Row 3 \SetRowColor{white} Scripting & Code is written to automate processes rather than create entire applications. Scripting languages are often embedded into other systems. \tn % Row Count 21 (+ 6) % Row 4 \SetRowColor{LightBackground} Procedural & Allows structured programming with sequence, selection, iteration and recursion. Code can be made modular with the use of procedures. \tn % Row Count 27 (+ 6) % Row 5 \SetRowColor{white} Functional & Code is divided into isolated functions. There is no global state, only arguments and return values are important. Closely linked to mathematics. \tn % Row Count 33 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.64241 cm} x{3.33459 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Programming paradigms (cont)}} \tn % Row 6 \SetRowColor{LightBackground} Assembly Languages & One to one correspondence between lines of code and processor instructions. Unlike raw machine code however, you can have variable names and labels. \tn % Row Count 6 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Compression}} \tn % Row 0 \SetRowColor{LightBackground} Lossless & Compressing a file without the loss of data \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Lossy & Compressing a file by removing redundant data. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} Run Length Encoding (RLE) & RLE identifies repeating patterns of data and stores a copy of the information and how many times it occurs in succession. \tn % Row Count 10 (+ 6) % Row 3 \SetRowColor{white} \seqsplit{Dictionary-based} & Uses a substring search to match strings in the file to be compressed to those stored in a dictionary. If a match is found then the string is substituted for the dictionary index. If no match is found, the string is added to the dictionary \tn % Row Count 20 (+ 10) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.9908 cm} x{2.9862 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Encryption and Hashing}} \tn % Row 0 \SetRowColor{LightBackground} Symmetric Encryption & Encryption that uses the same key to both encrypt and decrypt. \{\{nl\}\}{\bf{Uses}}: Encrypted Harddrives \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} Asymmetric Encryption & Encryption where different keys encrypt and decrypt the data. \{\{nl\}\} {\bf{Uses}}: Online transactions \tn % Row Count 10 (+ 5) % Row 2 \SetRowColor{LightBackground} Client-Server Communication & \{\{ac\}\}The client generates a {\bf{session key}} and uses the {\bf{public key}} to encrypt it\{\{nl\}\}\{\{fa-arrow-down\}\}\{\{nl\}\}The server decrypts the session key with the {\bf{private key}}\{\{nl\}\}\{\{fa-arrow-down\}\}\{\{nl\}\}Client-Server now communicate using {\bf{symmetric encryption with the session key}} \tn % Row Count 22 (+ 12) % Row 3 \SetRowColor{white} Private Key & The private key consists of 2 {\bf{very}} large prime numbers \tn % Row Count 25 (+ 3) % Row 4 \SetRowColor{LightBackground} Public Key & The public key is the product of the 2 prime numbers making the private key. As no efficient non-quantum integer factorisation algorithm exists, it is practically impossible to crack the private key by brute force. \tn % Row Count 34 (+ 9) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.9908 cm} x{2.9862 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Encryption and Hashing (cont)}} \tn % Row 5 \SetRowColor{LightBackground} Hashing & Using an algorithm to map data of any size to a fixed size. Unlike encryption, hashing {\bf{cannot}} be undone, it is therefore a lossy process. \{\{nl\}\}{\bf{Uses}}:\{\{nl\}\}• Rapid data access in a hash table\{\{nl\}\}• Error checking and corruption detection - such as downloads\{\{nl\}\}• Password verification - the plain-text password would not have to be stored\{\{nl\}\}\{\{nl\}\}{\emph{A good hash algorithm:}}*\{\{nl\}\}• Same message = Same hash\{\{nl\}\}• Quick to compute\{\{nl\}\}• Impossible to generate a message from the hash\{\{nl\}\}• A small change = a big hash change\{\{nl\}\}• Impossible to find 2 messages with the same hash\{\{nl\}\} \tn % Row Count 26 (+ 26) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Databases}} \tn % Row 0 \SetRowColor{LightBackground} Database & A structured system to hold data \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Relational Database & a database structured to recognize relations between stored items of information. \tn % Row Count 6 (+ 4) % Row 2 \SetRowColor{LightBackground} Flat File Database & A flat file database is a database that stores data in a plain text file. Each line of the text file holds one record, with fields separated by delimiters, such as commas or tabs. While it uses a simple structure, a flat file database cannot contain multiple tables like a relational database can. \tn % Row Count 18 (+ 12) % Row 3 \SetRowColor{white} Entity & Any item about which data is stored e.g. Student, Pizza, Stock etc. \tn % Row Count 21 (+ 3) % Row 4 \SetRowColor{LightBackground} Attribute & A feature of the entity \tn % Row Count 22 (+ 1) % Row 5 \SetRowColor{white} Foreign Key & A unique identifier to each record held in the relational database. \tn % Row Count 25 (+ 3) % Row 6 \SetRowColor{LightBackground} Composite Primary Key & A combination of 2+ fields that act as a primary key \tn % Row Count 27 (+ 2) % Row 7 \SetRowColor{white} Foreign Key & A way to build a relationship between 2 tables, the foreign key is another tables primary key \tn % Row Count 31 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Databases (cont)}} \tn % Row 8 \SetRowColor{LightBackground} Secondary Key & A key that is indexed to allow for faster searching. There can be multiple secondary keys and they don't have to be unique. \tn % Row Count 5 (+ 5) % Row 9 \SetRowColor{white} Inner Join & Combining columns from one+ tables by using values common to each. \{\{nl\}\}\{\{nl\}\}SELECT table1.column1, table2.column2...\{\{nl\}\}FROM table1\{\{nl\}\}{\bf{INNER JOIN}} table2\{\{nl\}\}{\bf{ON}} table1.common\_field = table2.common\_field; \tn % Row Count 14 (+ 9) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{fa-bars\}\}\{\{ac\}\}} \tn % Row Count 15 (+ 1) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Normal Forms}}} \tn % Row Count 16 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 17 (+ 1) % Row 13 \SetRowColor{white} 1NF & • Each row is unique - it has a primary key\{\{nl\}\}• Each column has a unique name\{\{nl\}\}• No columns with similar or repeated data (i.e. choice1, choice2 etc.)\{\{nl\}\}• Each data item cannot be broken up any further - no commas in the data \tn % Row Count 27 (+ 10) % Row 14 \SetRowColor{LightBackground} 2NF & • 1NF\{\{nl\}\}• If the primary key is a composite of attributes (contains multiple columns), the non-key attributes (columns) must depend on the whole key. \tn % Row Count 33 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Databases (cont)}} \tn % Row 15 \SetRowColor{LightBackground} 3NF & • 1NF\{\{nl\}\}• 2NF\{\{nl\}\}• There are no non-key attributes that depend on other non-key attributes \tn % Row Count 4 (+ 4) % Row 16 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 5 (+ 1) % Row 17 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{CRUD}}} \tn % Row Count 6 (+ 1) % Row 18 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 7 (+ 1) % Row 19 \SetRowColor{LightBackground} CREATE & INSERT INTO tableName (fieldNames) VALUES (values) \tn % Row Count 9 (+ 2) % Row 20 \SetRowColor{white} READ & SELECT fieldNames FROM tableName WHERE fieldName = value ORDER BY fieldName \tn % Row Count 12 (+ 3) % Row 21 \SetRowColor{LightBackground} UPDATE & UPDATE tableName SET fieldName = value WHERE fieldName = value \tn % Row Count 15 (+ 3) % Row 22 \SetRowColor{white} DESTROY & DELETE FROM tableName where fieldName = value \{\{nl\}\}\{\{nl\}\} DROP tableName \tn % Row Count 18 (+ 3) % Row 23 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 19 (+ 1) % Row 24 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{ACID Principles (Transactions)}}} \tn % Row Count 20 (+ 1) % Row 25 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 21 (+ 1) % Row 26 \SetRowColor{white} Atomicity & Transactions are either done, or not done. {\bf{Never partially applied}} \tn % Row Count 24 (+ 3) % Row 27 \SetRowColor{LightBackground} Consistency & Referential Integrity and other constraints must be adhered to \tn % Row Count 27 (+ 3) % Row 28 \SetRowColor{white} Isolation & Transactions preformed simultaneously must have the same result as if they were preformed sequentially \tn % Row Count 31 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Databases (cont)}} \tn % Row 29 \SetRowColor{LightBackground} Durability & Transactions that have been committed must be done fully and remain so. \tn % Row Count 3 (+ 3) % Row 30 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 4 (+ 1) % Row 31 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Concurrent Accessing}}} \tn % Row Count 5 (+ 1) % Row 32 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 6 (+ 1) % Row 33 \SetRowColor{LightBackground} Concurrent Access & Is ensuring that more than one user can at least view data at the same time. \tn % Row Count 9 (+ 3) % Row 34 \SetRowColor{white} Record Locking & Making a file read-only to anybody else who opens the file while changes are being made. \tn % Row Count 13 (+ 4) % Row 35 \SetRowColor{LightBackground} Deadlock & When 2 separate transactions lock the file the other transaction needs, thus both are in a state of waiting. \tn % Row Count 18 (+ 5) % Row 36 \SetRowColor{white} \seqsplit{Serialisation} & Create a clone of the data item, so the user can make changes, then upload a copy of the clone to the database. This will ensure that no updates or changes can be lost due to uploading a copy of the local version. \tn % Row Count 27 (+ 9) % Row 37 \SetRowColor{LightBackground} Timestamp Ordering & A non-lock way of concurrent access, so multiple people can access the data at one time. The main process is that the lower timestamps occur first. \tn % Row Count 33 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks}} \tn % Row 0 \SetRowColor{LightBackground} Standard & A definition or a format that has been approved by a recognised standards organisation. \{\{nl\}\} {\bf{de jeur}} (by force of law) or {\bf{de facto}} a standard that has just been accepted over time \tn % Row Count 10 (+ 10) % Row 1 \SetRowColor{white} Protocol & An agreed-upon format for exchanging data between devices. It determines: \{\{nl\}\}• The error checking used\{\{nl\}\}• Compression method, if any\{\{nl\}\}• How the sender will indicate end of transmission\{\{nl\}\}• How the receiver will indicate the data has been received. \tn % Row Count 24 (+ 14) % Row 2 \SetRowColor{LightBackground} LAN & {\bf{Local Area Network}}\{\{nl\}\}\{\{nl\}\}• Geographically Small (buildings/a site)\{\{nl\}\}• Equipment is generally owned by the company/people using it\{\{nl\}\}• Generally Faster\{\{nl\}\}• Uses layers 1 and 2 devices - hubs/switches\{\{nl\}\} \tn % Row Count 36 (+ 12) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 3 \SetRowColor{LightBackground} WAN & {\bf{Wide Area Network}}\{\{nl\}\}\{\{nl\}\}• Geographically remote (across a country/between continents/the w.w.w.)\{\{nl\}\}• Connects LANs together with third party telecommunication equipment\{\{nl\}\}• Slower speed than LAN\{\{nl\}\}• Uses layer 3 devices - routers/multi-layer switches\{\{nl\}\} \tn % Row Count 15 (+ 15) % Row 4 \SetRowColor{white} Network Topologies & {\bf{Bus Topology}}\{\{nl\}\}• All devices connected to a central cable (backbone)\{\{nl\}\}• Devices have equal rights\{\{nl\}\}• Collisions can occur if multiple devices send data at once\{\{nl\}\}\{\{nl\}\}{\bf{Star Topology}}\{\{nl\}\}• A hub at the centre of the network. Requests are sent to all other devices connected to is\{\{nl\}\}• The hub reads the packets and determines the MAC address of the recipient\{\{nl\}\}\{\{nl\}\}{\bf{Ring Topology}}\{\{nl\}\}• A token is passed around the ring until one of the devices requests to use it.\{\{nl\}\}• The token is filled with the frame of data\{\{nl\}\}• It is passed around the network to each device until it reaches the recipient\{\{nl\}\}• Recipient acknowledges the data has arrived. \tn % Row Count 51 (+ 36) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 5 \SetRowColor{LightBackground} Client-Server & • One entity (client) requests services from another (server)\{\{nl\}\}• Server stores security information e.g. logins and permissions.\{\{nl\}\}\{\{nl\}\}\{\{nl\}\}{\bf{Pros}}\{\{nl\}\}{\bf{+}} Centralised control\{\{nl\}\}{\bf{+}} Single data storage\{\{nl\}\}{\bf{+}} Easy backing up and restoring\{\{nl\}\}{\bf{+}} Remote access\{\{nl\}\}{\bf{+}} Can define security rights and permissions\{\{nl\}\}\{\{nl\}\}{\bf{Cons}}\{\{nl\}\}{\bf{-}} Too many requests can cause congestion\{\{nl\}\}{\bf{-}} If the server fails, whole network goes down\{\{nl\}\}{\bf{-}} Expensive to install and manage\{\{nl\}\}{\bf{-}} Requires professionals to install and manage\{\{nl\}\}\{\{nl\}\}\{\{nl\}\} \tn % Row Count 30 (+ 30) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 6 \SetRowColor{LightBackground} Peer-to-Peer & • All computers have equal rights and act as both a client and server\{\{nl\}\}• Popular applications include the BitTorrent Network, and BitCoin\{\{nl\}\}\{\{nl\}\}{\bf{Pros}}\{\{nl\}\}{\bf{+}} Easy to set up\{\{nl\}\}{\bf{+}} More reliable as central dependencies are eliminated\{\{nl\}\}{\bf{+}} No-need for a system administrator as every user is the admin of their machine\{\{nl\}\}{\bf{+}} Cheaper to implement and maintain.\{\{nl\}\}\{\{nl\}\}{\bf{Cons}}\{\{nl\}\}{\bf{-}} Difficult to administor as there is no central dependency\{\{nl\}\}{\bf{-}} Less security therefore viruses and other malware can easily be transmitted\{\{nl\}\}{\bf{-}} Data recovery is difficult as there is no central storage, each computer requires ots own backup system\{\{nl\}\}{\bf{-}} "(Lots of movies, tv shows and music are transferred using P2P, via torrents)" \tn % Row Count 39 (+ 39) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 7 \SetRowColor{LightBackground} Packet Switching & A message/data is broken into a number of parts (packets) which are sent independently, over whatever route is optimum for each packet, and reassembled at the destination.\{\{nl\}\}\{\{nl\}\}{\bf{Pros}}\{\{nl\}\}{\bf{+}} Efficient use of a network\{\{nl\}\}{\bf{+}} Can easily circumvent broken sections of a network\{\{nl\}\}{\bf{+}} Network only has to increase slowly as demand does\{\{nl\}\}\{\{nl\}\}{\bf{Cons}}\{\{nl\}\}{\bf{-}} Time taken to rebuild packets is variable - an issue for time-sensitive data\{\{nl\}\}{\bf{-}} Not good for small data. \tn % Row Count 25 (+ 25) % Row 8 \SetRowColor{white} Circuit Switching & Communication where a dedicated channel (or circuit) is established for the duration of a transmission.\{\{nl\}\}\{\{nl\}\}{\bf{Pros}}\{\{nl\}\}{\bf{+}} Data arrives in order sent\{\{nl\}\}{\bf{+}} No additional information has to be added - e.g. headers\{\{nl\}\}\{\{nl\}\}{\bf{Cons}}\{\{nl\}\}{\bf{-}} Portion of the network is unavailable while in use\{\{nl\}\}{\bf{-}} Data is easily intercepted. \tn % Row Count 43 (+ 18) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 9 \SetRowColor{LightBackground} Domain Name System (DNS) & A system that converts the web address: \seqsplit{www.website.something} into the IP address of the host server. \tn % Row Count 6 (+ 6) % Row 10 \SetRowColor{white} MAC Address & Unique 6-byte identifier that is given to NICs. Assigned to the NIC by the manufacturer. \tn % Row Count 11 (+ 5) % Row 11 \SetRowColor{LightBackground} IPv4 & Most commonly used IP version. Its a 32-bit system, so there are 2\textasciicircum{}32\textasciicircum{} addresses available. \tn % Row Count 16 (+ 5) % Row 12 \SetRowColor{white} IPv6 & IPv6 is a 128-bit address, so there are 2\textasciicircum{}128\textasciicircum{} addresses available. \tn % Row Count 20 (+ 4) % Row 13 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 21 (+ 1) % Row 14 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{TCP/IP Stack}}} \tn % Row Count 22 (+ 1) % Row 15 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 23 (+ 1) % Row 16 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Application Layer}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 24 (+ 1) % Row 17 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}The Application layer ensures the data is sent in an understandable format by the recipient. It formats the data to meet the standards of the protocol.} \tn % Row Count 28 (+ 4) % Row 18 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Transport Layer}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 29 (+ 1) % Row 19 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{The transport layer takes the data and splits it into data packets. Each one is given a number, specifying the order so it can be reconstructed. The port number is also added depending on the application being used for example HTTP is port 8\{\{ac\}\}0.} \tn % Row Count 34 (+ 5) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 20 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Network Layer}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 1 (+ 1) % Row 21 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}The network layer is where the IP of the sender is attached, so the recipient can send a message saying the packets were received. It also attaches the recipients IP. This is also the layer where the Time To Live (TTL) is added to the header. It governs how many times the packet can hop before deleting itself, this ensure infinite loops don't occur.} \tn % Row Count 9 (+ 8) % Row 22 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Link Layer}}\{\{nl\}\}\{\{fa-arrow-down\}\}} \tn % Row Count 10 (+ 1) % Row 23 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}This is the layer where the MAC address of both the sender and recipient is attached, allowing the packets to be directed to a specific NIC.} \tn % Row Count 13 (+ 3) % Row 24 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 14 (+ 1) % Row 25 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Internet/Network Protocols}}} \tn % Row Count 15 (+ 1) % Row 26 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 16 (+ 1) % Row 27 \SetRowColor{white} HTTP (Hypertext Transfer Protocol) & Defines how webpages are transferred from server to the client. The HTTP will make a request to the IP and the server responds with a webpage. There are 8 different HTTP commands including {\bf{GET}}, {\bf{POST}} and {\emph{CONNECT}}* \tn % Row Count 28 (+ 12) % Row 28 \SetRowColor{LightBackground} HTTPS (Secure Hypertext Transfer Protocol) & Connects via a different port and encrypts the data between the HTTP and the TCP protocols. \tn % Row Count 33 (+ 5) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 29 \SetRowColor{LightBackground} FTP (File Transfer Protocol) & The protocol used to download and upload files. Most modern browsers have built in FTP \tn % Row Count 5 (+ 5) % Row 30 \SetRowColor{white} POP3 (Post Office Protocol 3) & Allows emails to be received from a server. The protocol connects to the email server, downloads a local copy then deletes them from the server. \tn % Row Count 13 (+ 8) % Row 31 \SetRowColor{LightBackground} SMTP (Simple Mail Transfer Protocol) & Used for sending emails \tn % Row Count 15 (+ 2) % Row 32 \SetRowColor{white} SSH (Secure Shell) & Remote-access protocol, allows secure communication between a client and server \tn % Row Count 19 (+ 4) % Row 33 \SetRowColor{LightBackground} CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) & Is a transmission protocol that prevents packet collisions. Once it receives a packet, it checks whether the channel is clear, if it is not available it will generate a random wait time, when it will check again. \{\{nl\}\}\{\{nl\}\} If a packet is larger than the permitted size is needed to be sent, a {\emph{handshake}} needs to occur first - the RTS/CTS (Request to Send/Clear to Send) protocol. This protocol only occurs when the packet is larger than the threshold. \tn % Row Count 42 (+ 23) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 34 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 1 (+ 1) % Row 35 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Network Security}}} \tn % Row Count 2 (+ 1) % Row 36 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 3 (+ 1) % Row 37 \SetRowColor{white} Virus & A embedded program intended to cause damage to a PC. It copies itself onto the disk and hides itself. It attempts to duplicate itself and spread to other computers. \tn % Row Count 12 (+ 9) % Row 38 \SetRowColor{LightBackground} Worm & A virus but it is contained within its own program. \tn % Row Count 15 (+ 3) % Row 39 \SetRowColor{white} Trojan & A \seqsplit{non-self-replicating} virus hidden in a downloaded file, and unleashed on execution. \tn % Row Count 20 (+ 5) % Row 40 \SetRowColor{LightBackground} Ransom Ware & A trojan/worm that encrypts data and then charges the owner to decrypt it. \tn % Row Count 24 (+ 4) % Row 41 \SetRowColor{white} Firewall & The purpose of a firewall is to control the traffic flowing in and out of a network. It can be hardware or software based, and sometimes is a combination of both. It can be setup to block individual website addresses or specific computers. \tn % Row Count 36 (+ 12) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 42 \SetRowColor{LightBackground} Proxy Server & f a user requests a service from the network, it is first passed to the proxy, before the proxy server then performs the request on the behalf of the network user. If the resource is banned the request can be rejected, There is never any direct contact between user and resource, as the proxy acts as a "middle man". \tn % Row Count 16 (+ 16) % Row 43 \SetRowColor{white} WPA/WPA2 & It requires you to enter a password when accessing a network. It acts as layer of protection. \tn % Row Count 21 (+ 5) % Row 44 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 22 (+ 1) % Row 45 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Network Hardware}}} \tn % Row Count 23 (+ 1) % Row 46 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 24 (+ 1) % Row 47 \SetRowColor{white} Hub & It receives a signal from a node and transmits it to all the other nodes. It is cheap and effective for small networks but for larger networks causes too many collisions \tn % Row Count 33 (+ 9) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Networks (cont)}} \tn % Row 48 \SetRowColor{LightBackground} Switch & A switch has a small amount of internal memory, that allows it to generate a look-up table. When data is sent the switch finds the appropriate node. Unlike a hub, it {\bf{doesn't}} send the data to all the nodes, just the receiver. \tn % Row Count 12 (+ 12) % Row 49 \SetRowColor{white} Router & A device that forwards packets from one network to another. \tn % Row Count 15 (+ 3) % Row 50 \SetRowColor{LightBackground} Gateway & The entrance and exit of networks. The main use is to connect multiple networks with different architectures \tn % Row Count 21 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.84149 cm} x{3.13551 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Search Engines}} \tn % Row 0 \SetRowColor{LightBackground} Overall Search engine & Crawling the web with 'spiders' TF-IDF (Term Frequency - Inverse Document Frequency) The PageRank algorithm Other factors, such as domain name, page age, mobile friendliness \tn % Row Count 7 (+ 7) % Row 1 \SetRowColor{white} \{\{fa-bolt\}\} \{\{fa-bolt\}\} & \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \{\{fa-bolt\}\} \tn % Row Count 13 (+ 6) % Row 2 \SetRowColor{LightBackground} Page Rank & PageRank works by counting the number and quality of links to a page to determine a rough estimate of how important the website is. The underlying assumption is that more important websites are likely to receive more links from other websites. \tn % Row Count 23 (+ 10) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Data Types}} \tn % Row 0 \SetRowColor{LightBackground} Integer & A whole number \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Real/Float & Float is a term is used in various programming languages to define a variable with a fractional value. Numbers created using a float variable declaration will have digits on both sides of a decimal point. This is in contrast to the integer data type, which houses an integer or whole number. \tn % Row Count 13 (+ 12) % Row 2 \SetRowColor{LightBackground} Boolean & A value with a True or False condition - can possibly use 0/1 instead \tn % Row Count 16 (+ 3) % Row 3 \SetRowColor{white} Character & A single keyboard/unicode character \tn % Row Count 18 (+ 2) % Row 4 \SetRowColor{LightBackground} String & A set of characters, used to store text. \tn % Row Count 20 (+ 2) % Row 5 \SetRowColor{white} Date/Time & A representation of time. Can be represented in either text or number format \tn % Row Count 23 (+ 3) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}\{\{fa-bars\}\}} \tn % Row Count 24 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{\{\{ac\}\}{\bf{Number Bases}}} \tn % Row Count 25 (+ 1) % Row 8 \SetRowColor{LightBackground} Binary (Base 2) & Groups of bits in 1 and 0 (2 possible values). It uses positional numbering but with powers of 2, not 10 (denary numbers - normal) \tn % Row Count 30 (+ 5) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Data Types (cont)}} \tn % Row 9 \SetRowColor{LightBackground} Hexadecimal (Base 16) & 0\{\{fa-arrow-right\}\}0000\{\{fa-arrow-right\}\}0\{\{nl\}\}1\{\{fa-arrow-right\}\}0001\{\{fa-arrow-right\}\}1\{\{nl\}\}2\{\{fa-arrow-right\}\}0010\{\{fa-arrow-right\}\}2\{\{nl\}\}3\{\{fa-arrow-right\}\}0011\{\{fa-arrow-right\}\}3\{\{nl\}\}4\{\{fa-arrow-right\}\}0100\{\{fa-arrow-right\}\}4\{\{nl\}\}5\{\{fa-arrow-right\}\}0101\{\{fa-arrow-right\}\}5\{\{nl\}\}6\{\{fa-arrow-right\}\}0110\{\{fa-arrow-right\}\}6\{\{nl\}\}7\{\{fa-arrow-right\}\}0111\{\{fa-arrow-right\}\}7\{\{nl\}\}8\{\{fa-arrow-right\}\}1000\{\{fa-arrow-right\}\}8\{\{nl\}\}9\{\{fa-arrow-right\}\}1001\{\{fa-arrow-right\}\}9\{\{nl\}\}10\{\{fa-arrow-right\}\}1010\{\{fa-arrow-right\}\}A\{\{nl\}\}11\{\{fa-arrow-right\}\}1011\{\{fa-arrow-right\}\}B\{\{nl\}\}12\{\{fa-arrow-right\}\}1100\{\{fa-arrow-right\}\}C\{\{nl\}\}13\{\{fa-arrow-right\}\}1101\{\{fa-arrow-right\}\}D\{\{nl\}\}14\{\{fa-arrow-right\}\}1110\{\{fa-arrow-right\}\}E\{\{nl\}\}15\{\{fa-arrow-right\}\}1111\{\{fa-arrow-right\}\}F \tn % Row Count 30 (+ 30) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Data Types (cont)}} \tn % Row 10 \SetRowColor{LightBackground} Denary (Base 10) & Normal number formats with the positional numbering in powers of 10. \tn % Row Count 3 (+ 3) % Row 11 \SetRowColor{white} Sign \& Magnitude & A form of showing negative binary numbers where the first bit is the sign (0 = +ve, 1= -ve). Immediately you have reduced the range of values as one of the bits is reserved for the sign. \tn % Row Count 11 (+ 8) % Row 12 \SetRowColor{LightBackground} Two's Comp & A improved way of showing negative numbers. If the first bit is a 1, it is taken as the negative version, and all following numbers are added to it. If it is a zero, it behaves just like a negative number. \{\{nl\}\}\{\{nl\}\}To change a normal +ve binary number to twos comp. \{\{fa-bolt\}\}{\bf{Flip the bits, and add 1}}\{\{fa-bolt\}\}\{\{nl\}\}E.g. \{\{nl\}\}01101010 = 106\{\{nl\}\}10010101 (Flip the bits)\{\{nl\}\}10010110 = +1\{\{nl\}\}10010110 = -106 \tn % Row Count 28 (+ 17) % Row 13 \SetRowColor{white} Fixed Point Binary & A method of showing floats. The decimal is {\bf{fixed}} so there is a set amount of integer bits and a set number of fractional bits. The fractional parts follow the same positional numbering (powers of 2) but the negative versions i.e. 2\textasciicircum{}-1\textasciicircum{}, 2\textasciicircum{}-2\textasciicircum{}, etc. \tn % Row Count 38 (+ 10) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Data Types (cont)}} \tn % Row 14 \SetRowColor{LightBackground} Floating Point Binary & A method of showing binary composed of 2 parts: the mantissa, and the exponent. The mantissa is the actual number, and the exponent is the number of units to move the floating point up or down by.\{\{nl\}\}\{\{nl\}\}10101011 | 0011\{\{nl\}\}Mantissa | Exponent\{\{nl\}\}\{\{nl\}\}1.0101011 x 2 \textasciicircum{}0011\textasciicircum{}\{\{nl\}\}1.0101011 x 2\textasciicircum{}3\textasciicircum{}\{\{nl\}\}1.0101011\{\{nl\}\}\{\{fa-arrow-right\}\}\{\{fa-arrow-right\}\}\{\{fa-arrow-right\}\}\{\{nl\}\}1010.1011 = 10.6875\{\{nl\}\}\{\{nl\}\}The rule for powers:\{\{nl\}\}\{\{fa-arrow-right\}\}\{\{nl\}\}\{\{fa-arrow-down\}\} \{\{nl\}\}(Decrease the power, per jump right) \tn % Row Count 21 (+ 21) % Row 15 \SetRowColor{white} Underflow & When {\bf{very}} small numbers, and the boundary of what the computer can store is reached. For example, 128\textasciicircum{}-1\textasciicircum{} x 128 \textasciicircum{}-1\textasciicircum{} requires 14 bits to be stored. \tn % Row Count 27 (+ 6) % Row 16 \SetRowColor{LightBackground} Overflow & A calculation that results in a number too large to be stored. For example, any numbers past x10\textasciicircum{}100\textasciicircum{} on most calculators \tn % Row Count 32 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.84149 cm} x{3.13551 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Logic Gates}} \tn % Row 0 \SetRowColor{LightBackground} Half Adder & Add two single bits, produces an output S, and a carry signal C. It consists of an AND gate (C) and a XOR gate (S) in parallel. \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} Full Adder & Full adders are a combination of 2+ half adders. Where the C of both half adders, connects to a OR gate (C`out`) and the sum of one connects as the input of another. \{\{nl\}\} Basically treating the first HA as another input. \tn % Row Count 15 (+ 9) % Row 2 \SetRowColor{LightBackground} Basic Flip-Flop & Takes a set and a reset signal. The idea is that the FF stays in one state until the change signal is sent. \tn % Row Count 20 (+ 5) % Row 3 \SetRowColor{white} D (Data) Type Flip Flop & Stores the signal it receives if it is enabled. It takes in an extra input D. \tn % Row Count 24 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}