Show Menu

WJEC A2 Computing Unit 3.6->3.8 Cheat Sheet by

a     science     computer     alevel     level     cs     unit3     wjec

Types of Computer Interface

Voice Input
Touch Screen
Force Feedback
Virtual Reality
Augm­ented Reality

Voice Input

Voice input involves the computer "­lis­ten­ing­" for spoken words from the user.
1. This technology may be difficult to use due to the complexity of natural language
2. The computer may not understand all ways to phrase a single command.
3. The computer may not be able to understand different accents.
4. Background noise may render the user's voice uninte­lli­gible.

System Design Evaluation

Systems Design Evalua­tion helps the company and client to determine whetherr the project was a success. This involves consid­ering many criteria:
Determine whether the system fits the objective specif­ica­tion, as establ­ished by the client at the beginning of the project.
Whether the program runs effici­ently and effect­ively.
This is whether the program crashes frequently or is generally stable.
Determine whether the system has cost more or less than expected.
Whether the end user is able to easily manoeuvre or use the program. This may depend on the user's level of expertise with computer software.


Syntax Highli­ght­ing
The IDE may automa­tically highlight key words like "­if" or "­pri­nt", based on the language being used. Also, most IDEs will implement auto­matic line number­ing.
Error Reports
If a syntax error has been detected, the IDE may attempt to point to the place in the code where the error has occurred.
Breakp­oints will make the program halt at a specific line of code.
Stepping Through
This involves making the program run through one line of code at a time and only proceeding when the developer presses a button to move to the next line.
Version Control
This allows potent­ially proble­matic or otherwise unwanted changes to be rolled back, or to create stable builds at a specific point in time and still allow develo­pment to continue.


Opcodes and Data
Opcode refers to the operative component of the machine code instru­ction. This might be ADD, where the data in this case would be the number to add(and would come after the opcode).
This is a three-­letter name given to an opcode in order to make assembly more human-­rea­dable.
Tran­slation to Machine Code
Assembly code is one-to-one with the mnemonic codes, but due to the existence of variables and labels transl­ation becomes more difficult.
1. Labels are converted to memory addresses and stored in a symbol table(­not the same kind as in lexical analys­is, though!).
2. After that, mnemonics are converted into their binary counte­rparts and are combined with binary repres­ent­ations of data.

Force Feedback

This is also known as haptic feedba­ck, and it refers to vibr­ati­ons or other sensations that the computer may respond with once the user has performed an action­(i.e, pressing a key on a touchs­creen keyboard)

Augmented Reality

Augm­ented reality involves capturing the real world and overlaying inform­ation and graphics over it.

CASE Software Tools

CASE stands for Co­mpu­ter­-­Aided So­ftware En­gin­eering, and refers to a type of software which helps developers to create systems and programs. It may include any of the following:
Data Dictio­nary
A database of all data types, sizes and names used in the program.
Grap­hic­s/D­iagram Produc­tion
Helps the developer to create data flow diagrams or flow­cha­rts.
Extra reposi­tories of usable code, such as SDL.
Project Management Tools
This might include schedu­ling, task assign­ment, etc.
Version Control
Allows multiple developers to easily work together and keep track of historical changes to the program, like Git
Prot­otyping Tool
This helps the developer to quickly create screen designs, menus, etc without having to explicitly program them.


A Tran­sla­tor is any piece of software which converts higher­-level source code into machine code. These are comp­ile­rs, inte­rpr­eters or asse­mbl­ers.
1. Compilers convert source code from a high-level language into machine code. This generates an executable file which can be distri­buted.
2. This protects the intell­ectual property of the develo­pers, since the source code is usually very difficult to revers­e-e­ngi­neer.
3. However, code compiled for one target platfo­rm(i.e, Windows) will not run on anothe­r(i.e Linux).
1. An interp­reters translates source code into machine code line­-by­-li­ne, executing each line as it goes.
2. This means that source code only has to be written once to run on any machine that has an interp­reter for it.
3. It's easier to test single lines of code
4. Since the source code is compiled at run-time, this may slow down the system.
5. It's much easier for other people to view the source code, which may compromise intell­ectual property.
1. An assembler directly translates assembly mnemonics that each represents an instru­ction in machine code.

Link Editors and Link Loaders

What's a link editor?
This ensures that previously compiled libraries are loaded into a program at compil­e-time and the required links are created. The code from the libraries then becomes part of the final executable code.
What's a linking loader?
Rather than making the libraries specif­ically part of the final execut­able, a linking loader just loads the libraries when the program is executed or loaded into memory.

Touch Screens

Touch screens are screens that take in physical input from capacitive touch.
1. If selectable elements are too small or close together, it may be difficult to select with the average finger.
2. Touch screens are very intuitive, especially for small children.

Virtual Reality

This involves "­taking over" the user's senses in order to make them feel as though they have entered an altern­ate(or virtual) reality.
1. This is usually done via goggles, contro­llers and earpieces.
2. Each eye piece in the goggles relays a slightly different image to give the impression of a 3D image
3. However, this may cause some users to feel nauseous

System Design Validation

Systems Design Valida­tion is the process of testing a system to ensure that the designed product meets the requir­eme­nts.
1. This is generally carried out as early in the project as possible.
2. It often involves things like bringing in customers to get feedback on the user interface.
3. Methods such as Agile generally make use of multiple smaller design reviews than a single large one.

CASE Tools

Upper CASE
These are tools which are useful during the plan­ning, anal­ysis or design sections.
Lower CASE
These are tools which are useful during the impl­eme­nta­tion, test­ing or main­ten­ance sections.
Inte­grated CASE
These are tools which are useful in all sections of develo­pment.

Analysis and Planning Tools

Diagram Genera­tor
Allows the developer to easily create diagrams and flowcharts which represent the flow of data within the program.
Requ­irement Record­ing
The developer can record and describe in detail any objectives or requir­ements for the system.
Coll­abo­ration Manager
Allows multiple developers to easily work on the same program at the same time without causing merge conflicts. This is included in most Lower CASE tools.
Wire Framing
Allows the developer to easily prototype system logic, code structure and user interface.
Bug Tracking
Allows bug reports to be filed, assigned and eventually marked as "­sol­ved­".

Interm­ediate Code

Inte­rme­diate code is code that is compiled but not read directly by the end user's CPU. It's inte­rpr­eted by an interm­ediate virtual machine which can then interact with the CPU.
1. This is generally faster than interp­reted languages, since the instru­ctions aren't being rapidly compiled to machine code but rather fed to an abstra­ct/­virtual CPU.
2. The code is cross-­pla­tform, as long as the same VM can be installed on many platforms.


Lexical Analysis
1. Spaces, comments etc are removed.
2. All keywords, constants and identi­fiers are replaced with more space-­eff­icient toke­ns. This is known as toke­niz­ati­on.
3. A symbol table is generated which holds the addresses of variables and functions.
Syntax Analysis
1. Determine whether the source code obeys the syntax rules of the langua­ge(i.e, variables can't start with numbers)
Semantic Analysis
1. Check for semantic errors, like ensure that all variables have been declared, types are used correc­tly(not multip­lying strings), etc.
Machine Code Genera­tion
1. This involves generating the actual machine code for use by the CPU.
2. Allocate the use of registers to minimize slow memory access.
Opti­miz­ation of Machine Code
1. Optimize the code by limiting the number of jumps it has to do, "­unr­oll­ing­" loops, etc.

Download the WJEC A2 Computing Unit 3.6->3.8 Cheat Sheet

3 Pages

PDF (recommended)

Alternative Downloads

Share This Cheat Sheet!



No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          More Cheat Sheets by Horatio