Show Menu

WJEC A2 Computing Unit 3.6->3.8 Cheat Sheet by

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.

Types of Computer Interface

Voice Input
Touch Screen
Force Feedback
Virtual Reality
Augmented Reality


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.
Transl­ation 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 analysis, though!).
2. After that, mnemonics are converted into their binary counte­rparts and are combined with binary repres­ent­ations of data.


Syntax Highli­ghting
The IDE may automa­tically highlight key words like "­if" or "­pri­nt", based on the language being used. Also, most IDEs will implement automatic line numbering.
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.

System Design Evaluation

Systems Design Evaluation 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.

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.


A Translator is any piece of software which converts higher­-level source code into machine code. These are compilers, interp­reters or assemblers.
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-b­y-line, 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.

CASE Software Tools

CASE stands for Computer-Aided Software Enginee­ring, and refers to a type of software which helps developers to create systems and programs. It may include any of the following:
Data Dictionary
A database of all data types, sizes and names used in the program.
Graphi­cs/­Diagram Production
Helps the developer to create data flow diagrams or flowcharts.
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
Protot­yping Tool
This helps the developer to quickly create screen designs, menus, etc without having to explicitly program them.

Augmented Reality

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

Force Feedback

This is also known as haptic feedback, and it refers to vibrations 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)

System Design Validation

Systems Design Validation is the process of testing a system to ensure that the designed product meets the requir­ements.
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 planning, analysis or design sections.
Lower CASE
These are tools which are useful during the implem­ent­ation, testing or mainte­nance sections.
Integrated CASE
These are tools which are useful in all sections of develo­pment.

Analysis and Planning Tools

Diagram Generator
Allows the developer to easily create diagrams and flowcharts which represent the flow of data within the program.
Requir­ement Recording
The developer can record and describe in detail any objectives or requir­ements for the system.
Collab­oration 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­".

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

Interm­ediate Code

Interm­ediate code is code that is compiled but not read directly by the end user's CPU. It's interp­reted 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 tokens. This is known as tokeni­zation.
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 Generation
1. This involves generating the actual machine code for use by the CPU.
2. Allocate the use of registers to minimize slow memory access.
Optimi­zation of Machine Code
1. Optimize the code by limiting the number of jumps it has to do, "­unr­oll­ing­" loops, etc.

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.


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