### Present Remotely

Send the link below via email or IM

Present to your audience

• Invited audience members will follow you as you navigate and present
• People invited to a presentation do not need a Prezi account
• This link expires 10 minutes after you close the presentation
• A maximum of 30 users can follow your presentation

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

# AS Computing Notes

Using the AQA specification
by

## Luke Storry

on 29 April 2014

Report abuse

#### Transcript of AS Computing Notes

Specification at a Glance
AS Computing Notes
Comp1
Comp2
Problem Solving
Decision tables
Problem Solving, Programming,
Data Representation and
Practical Exercise
60% of AS, 30% of A Level
2 hour on-screen examination
100 marks
Computer Components,
The Stored Program Concept
and The Internet
40% of AS, 20% of A Level
1 hour written examination
60 marks
Compulsory short answer questions.
Unit 1 – COMP1
Unit 2 – COMP2

Preliminary Material (comprising Instructions to Candidates), the Skeleton Program (in each of the available programming languages) and, if appropriate,test data for use in the examination will be released on 1 March on e-AQA1 onlywith the Electronic Answer Document.
Candidates must use the examination materials to answer short questions and to write a program in the examination.
Algorithm Design
Stages of Problem Solving
Given(s) = the initial situation
Goal = Desired target situation
Ownership = who does what
Resources and constraints = tools, knowledge,skills, materials and rules, regulations, guidelines, boundaries, timings
Define the problem.
Define boundaries.
Plan solution.
Check solution.
Top-Down Design
Stepwise Refinement
Determine logical conditions and consequential actions
Finite state machines with outputs
Mealy machine
Finite state machines without outputs
Finite State Automation
State Transition Diagrams
State Transition Tables
Define "Algorithm":
Hand trace simple algorithms.
Convert a simple algorithm from
• structured English into pseudo-code,
• pseudo-code into high level program code.
Bubble Sort
Linear Search
1.1 - Problem Solving
Data Types
1.2 - Programming
Levels of Languages
User-Defined
Built-In
Integer
Byte
Real
Boolean
Char
String
TDateTime
Currency
Enumerated
Subrange
Sets
Records
Arrays
In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or may automate (or even hide entirely) significant areas of computing systems (e.g. memory management), making the process of developing a program simpler and more understandable relative to a lower-level language. The amount of abstraction provided defines how "high-level" a programming language is.[
Programming statements
Arithmetic operators including +, –, /, x, DIV, MOD
modular arithmetic
Relational operators =, <, >, <>, <=, >=
Boolean operators NOT, AND, OR
Logical bitwise operators NOT, AND, OR, XOR
Set operators Union, difference, intersection, membership.
• Type Definitions
• Variable Declarations
• Constant Definitions
• Procedure/Function
Explain the advantages of procedure/functions.
round, truncation.
Declarations
Operators
Built-in functions
Arithmetic functions:
String handling functions:
String conversion functions:
to/from integer, real, date/time.
length, position, substring, concatenation.
• Assignment
• Iteration
• Selection
• Procedure and Function calling
Describe the use of parameters to pass data within programs.
Different mechanisms for parameter passing:
Advantages of named variables and constants
by value and by reference
Understand the importance of validation of input data.
Program simple validation.
fixed value

stepper

most recent holder

most wanted holder

gatherer

transformation

follower

temporary
Recognise the different roles a variable can take:
Structured Programming
Understand the structured approach to program design and
construction.
Construct and use structure tables, structure charts and hierarchy
charts when designing programs.
Use meaningful identifier names.
Use procedures/functions with interfaces.
Use procedures that execute a single task.
Explain the advantages of the structured approach.
Data Structures
1D & 2D Arrays
Fields, Records and Files Read/write from/to a text file (including csv file)
Read/write records from/to a file of records.
Validation
Understand the importance of validation of input data.

Program simple validation.
1.3 - Data Representation
Describe the representation of unsigned denary integers in binary.
Describe the use of Two’s Complement to perform subtraction.
Convert a denary integer into Two’s complement and vice versa.
Hexadecimal as Shorthand for Binary.
Describe how an unsigned denary number with a fractional part is represented in fixed-point form in binary.
Describe the principles of operation of an analogue to digital converter.
2.5 The Structure of the Internet
2.1 Fundamentals of Computer Systems
2.2 Hardware Elements of Computers
2.3 Machine Level Architecture
2.7 Consequences of Uses of Computing
2.4 Hardware Devices
2.6 Web page design
Be familiar with the use of De Morgan’s laws and Boolean identities to manipulate and simplify simple Boolean expressions.
The basic machine code operations of Load, Add, Store.
Machine code representation in binary and hexadecimal.
Compare the capacity and speed of access of
various media and make a judgement about their suitability for
different applications.
Have practical experience of creating simple web pages containing hyperlinks using the tags listed in the Teacher Resource Bank.

Consider how digital rights can be managed.
Binary
Perform conversion from denary to binary and vice-versa.
Arithmetic
Multiplication
Two's Complement
Draw a distinction between integers and numbers with a fractional part in a computer context.
Representing Images, Sound
Describe how bit patterns may represent other forms of data
Graphics
Soundfiles
"resolution, colour depth and simple bitmap file calculations."
drawing list – objects and their properties.
Compare bitmaps to vector graphics
The need for compression and basic techniques for compression.
Information Coding Schemes
Analogue and Digital
Vector graphics
Bitmaps
Sampled Sound and Nyquist's theorem
Sampling Resolution
Sampling Rate
Sound Synthesis
Describe MIDI and its advantages for storing sound digitally.
Streaming audio
Explain what it is and why it is used.
Analysis
Design
Implementation
Testing
Evaluation

Describe the stages of development of a hardware/software system.
Specify the method of testing the programmed solution (dry run
Implementation testing, black box testing, white box testing).
Specify the selection of test data including normal (typical), boundary
and erroneous data.
Reflect on how successful the operational system is.

Test the solution using selected test data.
Program the solution as per design.
1.4 - Systems Development Life Cycle
Understand the relationship between hardware and software and be able to define both.
Hardware and Software
Classification of Software
Generations of Programming Language
Describe machine-code language and assembly language.
1st Generation
2nd Generation
3rd Generation
4th Generation
Awareness of the development of programming languages and the Machine code limitations of both machine-code and assembly-language
Assembly language
Imperative
Declaritive
Explain the term imperative high level language and its relationship to first and second generation languages.
Be aware of how software is classified.
System Software
Understand the need for and attributes of different types of software.
Application Software
sequences of instructions that can be understood and executed by hardware
performs the tasks needed to operate the hardware
allows users to perform non-computer tasks such as writing a letter
Logic Gates
Boolean Algebra
Construct truth tables for the following gates:
Be familiar with drawing logic diagrams involving one or more of the above gates.
NOT
AND
OR
XOR
NAND
NOR

Understand the concept of addressable memory.
Describe the stored program concept whereby machine code
instructions stored in main memory are fetched and executed serially
by a processor that performs arithmetic and logical operations.
Understand the characteristics of contemporary processors.
Explain the role and operation of a processor and its major components.
Explain the effect of clock speed, word length and bus width on performance.
Explain how the Fetch–Execute cycle is used to execute machine code programs including the stages in the cycle with details of registers used.
Outline the basic internal components of a computer system.

Internal and External Hardware
Understand the need for and means of connection between components.
Processor, main memory, address bus, data bus, control bus, I/O
controllers and I/O ports, secondary storage, their purpose and how
they relate.
Know that the processor, system bus and main memory are called
the CPU (central processing unit), and that components external
to the CPU are called peripherals. An example of a peripheral is
secondary storage.

Functional Characteristics of a Processor
Structure and Role of the Processor
• Arithmetic Logic Unit
• Control Unit
• Clock
• General purpose and dedicated registers
Machine code and processor instruction set
The Fetch–Execute cycle
Input and Output Devices
Know the main characteristics, purpose and suitability of contemporary devices (see the Teacher Resource Bank), and understand their principles of operation, including methods of error checking (check digit).
Explain the need for secondary storage within a computer system, know the main characteristics, purpose and suitability, and understandthe principles of operation of contemporary devices (see the Teacher Resource Bank).
Secondary Storage Devices
The Internet and its Uses
Understand the structure of the Internet, the role of packet switching and routers.
Understand the difference between the Internet, the Web and an intranet.

Know that an IP address is split into a network identifier part and a host identifier part.
Uniform Resource Locator (URL) Describe the term URL in the context of Internet working.
Uniform Resource Identifier (URI) Describe the role of URIs in the context of Internet working.
Domain Names and IP Addresses Explain the terms domain name and IP address.
Describe how domain names are organised.
Internet registries and Internet registrars Explain why such services are provided.
Internet Service Providers (ISP) Understand the role of an ISP.
Understand the purpose of Domain Name Server.
Be familiar with the client–server model.
Common Standard Protocols
TCP/IP
FTP
HTTP
TELNET
POP3, SMTP
Well-Known Ports
Client Ports
Understand the role of a web browser in retrieving web pages and web page resources and rendering these accordingly.

HTTPS
Describe the role of the four layers of the TCP/IP protocol stack, including sockets
FTP client software and an FTP server to transfer files using anonymous and non-anonymous access.
Be familiar with Telnet server for remote management of a server
E-mail server to read and send e-mail
Web page construction
Know that HTML is used for structure only and that style sheets are used for style and layout of web pages
HTML & style sheets
(see the Teacher Resource Bank for list of style sheet type, class and ID selectors, properties
and values).

• What are machines good and bad at, in comparison to humans?
• What can this tell us about the way that the human mind works?
• What can we learn from machines?
• What are the limitations of using machines as tools?
Economic and Social Issues
Legal and Ethical Issues
Discuss issues of ownership of information and programs, and the protection of data.
Hacking
Consider current legal controls which specifically refer to
computerised data and programs, and the implications of current
legislation (see the Teacher Resource Bank).
Code of Conduct.
Be aware of emerging technologies and appreciate their potential impact on society.
Discuss the social consequences of current uses of computing.
Robotics
Breaks a problem down into smaller problems that are easier to work on
The process of breaking a problem down through successive steps into smaller problems
A description, independent of any programming language, of a process that achieves some task.
It is a step-by-step procedure for solving a problem.
A careful step-by-step simulation on paper of how an algorithm would be executed by a computer
Useful Websites:
Textbook resources:
http://www.nelsonthornes.com/alevel-book-resources/computing.htm
Key Terms Glossary:
http://www.nelsonthornes.com/alevel-book-resources/documents/Computing/Glossary/glossary.htm
e.g. for a combination lock:
a machine that consists of a fixed set of possible states with a set of allowable inputs that change the state and a set of possible outputs.
A way of describing a FSM graphically. Each state is represented by a circle and each transition by an arrow labeled with the input that causes the transition plus any output resulting from the transition.
Shows the effect on the current state of an FSM of particular inputs and any corresponding output.
Bubble sort is a simple sorting algorithm that works by repeatedly stepping through the list to be sorted, comparing each pair of adjacent items and swapping them if they are in the wrong order. These passes through the list is repeated until no swaps are needed, which indicates that the list is sorted.
http://en.wikipedia.org/wiki/Bubble_sort
Linear search is the simplest search algorithm; it consists of checking every one of its elements, one at a time and in sequence, until the desired one is found.

http://en.wikipedia.org/wiki/Linear_search
Express the solution to a simple problem as an algorithm, using:
flowcharts
pseudo-code
structured English
the standard constructs:
sequence
• assignment
• selection
• repetition
http://www.nelsonthornes.com/alevel-book-resources/documents/Computing/Glossary/glossary.htm
Code that resembles a programming language but that uses less strict syntax to express an algorithm and is independent of any real programming language.
a very restricted subset of the English language
http://www.nelsonthornes.com/alevel-book-resources/documents/Computing/Structured%20English%20Constructs.doc
AQA's list of words:
records geometric and other information about the objects that make up an image.
created when the pixels of an image are mapped to positions in memory that store binary codes representing the colour of each pixel.
"Using digital means to generate audio signals resembling instrument sounds or the human voice."
Hardware
Electronic/electrical circuits that a computer is assembled from.
The platform on which software executes.
Software
Consists of sequences of instructions called programs that can be understood and executed by hardware.
Contents of Program Counter transferred to Memory Address Register;
Address bus used to transfer this address to main memory;
Contents of addressed memory location loaded into the Memory Buffer Register;
Transfer of content uses the data bus;
Increment Program Counter;
Transfer content of Memory Buffer Register to the Current Instruction Register;
Decode instruction held by the Current
Instruction Register/CIR;
The control unit decodes the instruction;
Instruction split into opcode and operand;
If necessary, data is fetched;
The opcode identifies the type of instruction it is;
Execute instruction by relevant part of processor;
Result stored in accumulator;
Status register updated;
FETCH:
FETCH
Decode
EXECUTE
(Copied entirely from the markschemes. Pick 8 of these points and memorize them.
Easier to understand;
Takes less time to code (as using mnemonic
opcodes and hex operands);
Fewer mistakes made in coding;
Use of symbolic names for operands // easier
to remember opcodes/mnemonics;
Use of labels;
Easier to maintain/debug;
Better than machine code because:
Solution expressed in terms of mnemonics;
A. an example of a full instruction (operand and
opcode)
Easier to make mistakes in assembly language;
Instruction composed of op-code and operand;
Solution translated by using an assembler;
Code is hard to port to other types of computer //
machine-oriented languages;
One assembly language instruction relates to
one machine code instruction;
Situation – working on embedded hardware //
need for small object code size // need for fast
execution // need to access hardware/registers
directly;
Imperative is where the programmer gives the computer a sequence of instructions to perform;
Selection/Sequence/Iteration constructs available;
(for grade A:) a full example of a selection/iteration construct
Library of pre-written functions available;
Solution translated by using a compiler / interpreter;
A compiler might not be available for a specific processor (disadvantage);
Situation – anything sensible that would need a HLL (eg games programming)

(Certain languages) define what is to be computed rather than how the computation is to
be done;
(Certain languages) lack side effects;
(Certain languages) have a clear link to mathematical logic;
(Certain languages) express solutions in terms of facts and rules // rule-based;
(Certain languages) will use an inference engine to work out the answer;
The user asks a question of the system rather than provide an algorithm of the solution;
Uses back-chaining/backtracking;
(Certain languages) express solutions using markup languages (such as HTML);
(Certain languages) express solutions as CSS / regular expressions / (subset of) SQL;
A. example code from part of a declarative program (ie an SQL statement)
Situation – medical diagnosis // expert systems // database query //creating a web page/website ;

Machine code
Operating system
Utility programs
Library programs
Translator software
(Compiler, assembler, interpreter)
eg Windows, OSx, android, Debian
eg Disk formatter, file compression, Firewall
Describe the different types of application software and the criteria for selecting appropriate software for particular purposes.
General purpose
application software
Special purpose application software.
Bespoke application software.
Can do a variety of things
eg MS Office.
made for a single purpose
eg web browser
made for a very specific purpose
Acts as a virtual interface between user and hardware. Hides the complexity of the hardware.
provide a software platform on which other programs can run.
collection of compiled routines that other programs can use.
eg StrUtils in Pascal
perform a very specific task
Relationship
eg flight control, stock control
The only program code the the computer can execute directly. Made up of only binary characters, representing opcode and operand.
Requires assembler to make into machine code for computer to run.
Very similar to machine code, but with mnomonics to make things easier.
eg PASCAL
Compiler or Interpreter
Types of Program Translator
Define each type of language translator and describe situations where each would be appropriate.
Assembler
Compiler
Interpreter
A compiler produces object code/machine code;
whilst an interpreter does not produce any object
code;

Interpreted code will execute slower;
than executing the object code produced by a compiler;

You always need the interpreter to interpret source code;
but you do not need the compiler to execute a compiled program;

Once compiled source code is no longer required to run the program;
An interpreter always needs source code at runtime;

Compiled code can only be executed on a machine with the same processor type / instruction set;
Interpreted code is more portable;

A compiler translates the whole source code (at once);
An interpreter analyses the code line by line;
Compiler vs Interpreter
From Markscheme:
Concept that data passed up/down between layers; (for grade A:) give example.

Application layer selects appropriate protocol for the communication, for example ( POP / HTTP );
Application layer is to interact with the user via the email client / web browser;

Transport Layer:
Transport layer establishes: end to end communication / a virtual path / connection between client and server;
Destination and source application level client/server identified by port numbers;
TCP layer uses these port numbers to route reassembled requests/responses to correct application layer client/server;
TCP layer splits and reassembles requests/responses into packets/from packets;
Packets are numbered by transport layer;
Transport layer deals with error control (acknowledgment/retransmission);

Network layer adds source and destination IP addresses;
Routers use destination IP addresses to route packets to destination // network layer involved with packet routing;

Link layer moves packets between 2 internet hosts;
Link layer deals with physical connection/cabling;
A Link layer includes network card / drivers;

Network layer strips IP address (when receiving) & Link layer strips MAC address (when receiving);

Server uses received source IP address to know where to send response;
Server uses received client port number to know to which instance of application layer client to send response to;
Servers use well-known ports;
Client port numbers come from the dynamic range;
Packets of Email client/server and Web browser/Web server travel independent paths;
Packets of Email client/server and Web browser/Web server share links//intermingled on links;

Combination of IP address and Port = Socket /
described;

Give two limitations of using assembly language to code a program.
Very hard/difficult to understand;
Very easy to make mistakes;
Hard to find any errors/mistakes in the code;
Time consuming to develop software in assembly
language;
Lack of portability;
Lack of in-built functions/procedures;
Give two advantages of using a compiler, rather than an interpreter, to prepare a runnable program ready for sale
Compiler produces object code to distribute that is
difficult to reverse engineer/ no need to distribute the
source code;
Compiler optimises the code // The object code
/program runs faster (as it does not need translating);
NE “Runs faster”, if not clear whether this applies to
the program or the compiler.
The target computer has no need to have the original
compiler;
Object code can be installed on target computer;
No interpreter available for target machine;
translates assembly language into machine code
translates a High Level program into object code.

It looks at the entire sourcecode, translating and optimizing the instructions, and generating an executable file.
Analyses and Executes each line of a High Level language without looking at the entire program.
Execution will be slower than compiled code as each statement analysed one at a time, so no optimization.
Opcode: Indicates the basic machine operation/function/command;
Executable binary code; For grade A: “instruction” – with a valid example

Operand:Represents a single item of (binary) data / a single value;
Represents a memory address / storage location;
The value that the instruction operates on;
Grade A: "parameter for the operation"
Better than Machine or Assembly because:
HLLs are problem oriented;
HLL programs are portable // machine / platform independent ;
English like keywords/commands/syntax/code;
Less code required // less tedious to program // one to many mapping of HLL statements to machine code commands;
Quicker/easier to understand/write/debug/learn/maintain code;
HLLs offer extra features e.g. data types/structures // structured statements // local variables //parameters // named variables/constants;
A example of a data structure
spec:
How many colours can be stored using a 3-bit code? 8(2^3)
If a 12-bit colour is used and the image size is 800x600 pixels, what is the minimum file size for the image?
total number of bits = 12*600*800=5760000
in bytes: 720000
Geometric images require fewer bytes
in vector format
Geometric images
in vector format
Vector graphic images
scale without distortion
Some Vector graphic formats can be
searched
for particular graphic objects.
Look at this for maps: http://appleinsider.com/articles/12/08/03/inside_apples_new_vector_based_maps_in_ios_6
Easier to manipulate
Easier to convert
Output from scanners and cameras
More universally available
http://www.animationpost.co.uk/tech-notes/bitmaps-vs-vectors.htm
Analogue
Continous
Digital
A digital signal is an electrical signal with voltage changes that are in discrete steps.
Digital data is data that takes the form of discrete values.
Difference between Signal and Data
Analogue to Digital Converter
ASCII
Unicode
Error checking and correction
Parity bits
Hamming code
Gray coding
Differentiate between the character code representation of a denary digit and its pure binary representation.
Standard Coding Systems for coding Character Data.
Why & Where it is used
http://music.columbia.edu/cmc/musicandcomputers/chapter2/02_03.php
http://en.wikipedia.org/wiki/Audio_file_format
A analogue signal is an electrical or electromagnetic signal that varies in a continuous manner.

Analogue data is data that varies in a continuous manner.
Discrete
Regular samples are taken of the analogue signal;
Samples are quantised / the height of each sample is approximated;
amplitude/volume measured;
Each integer value is encoded as a binary value
are coded in a fixed number of bits;
outputs the binary numbers as digital signals/voltage levels;
MIDI
Can (easily) synthesise musical notation from it;
Can be played on different instruments;
Can be (easily) transposed to a different key/pitch;
Produces (relatively) small files;
Easy to manipulate (the data);
Allows for easy interface with electronic musical instruments;
No data lost about a musical note;
Length/duration (of note)
Note-on and Note-off;
Instrument;
Velocity//Speed;
Volume//Amplitude;
Timbre;
Pedal effects;
Channel;
Instructions about how to recreate a sound;
Aftertouch;
Pitch bend;
Note envelope;
Electronic file format that stores:
Nyquist's theorem
Sample
at a frequency (at least)
twice
the rate of the
highest frequency
(that can is present in the original signal)
Signal sampled at regular frequencies.
The number of bits assigned to each sample. More bits per sample means a more accurate representation of the signal being sampled.
The sampling rate, or sampling frequency defines the number of samples that are taken per second when digitising a continuous signal.
Measured in Hertz
measured in bits or bytes
from Teacher Resource Bank
List of what is needed
State one difference between Unicode and ASCII.
Unicode uses more bits for each character
Unicode can represent a wider range of characters
Unicode uses 16/32 bits, ASCII uses 7 bits
American Standard Code for Information Interchange

is a character-encoding scheme originally based on the English alphabet that encodes 128 specified characters - the numbers 0-9, the letters a-z and A-Z, some basic punctuation symbols, some control codes that originated with Teletype machines, and a blank space - into the 7-bit binary integers

ASCII includes definitions for 128 characters: 33 are non-printing control characters (many now obsolete)[7] that affect how text and space are processed[8] and 95 printable characters, including the space
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems. Developed in conjunction with the Universal Character Set standard and published in book form as The Unicode Standard, the latest version of Unicode contains a repertoire of more than 110,000 characters covering 100 scripts and various symbols.
For even Parity:
Sender counts the number of 1s in the bit data and adds an extra bit (wither 0 or 1) to ensure even number of 1s;
Receiver counts/checks the number of 1s in the bit pattern/value/data received;
if there are an odd number of 1s it identifies that an error has occurred;

Also odd parity. Works exactly the same, but makes and checks for be an odd number of ones in the data
Error correction (not just error detection) (for single errors);
Can detect when two errors have occurred in data transmission;
Reduces the need for the retransmission of data;
Decreases the likelihood of an undetected error // improved error
detection;
(Type of) shape // rectangle // square;
Coordinates of corner/corners // position of a corner // top left
coordinates;
Identifier;
Length of side(s) // width // height // coordinates of an opposing
corner;
Line colour // outer colour;
Line width;
Fill colour // inner co
Easier for people to read/understand;
(Can be displayed using) fewer digits;
More compact when printed/displayed;
Why are bit patterns often displayed using hexadecimal instead of binary? (1 mark)
Each nyble in binary can be represented as a single hexadecimal charachter
Does not deteriorate when enlarged/magnified
(usually) faster to transmit
(usually) faster to load
(usually) uses less memory/storage space
Easier to edit/manipulate objects in the image
LASER
Page printer;
Print drum coated in (negative static) charge;
Printer generates bit map of page;
Laser beams shone/directed at/“draws” on print drum;
Via rotating (octagonal) mirror;
Laser is modulated (turned on & off);
Laser removes/neutralises/reverses electric charge on drum;
where image should be dark/black;
Toner is given (negative) charge;
Charged drum picks up toner;
Toner transferred from drum to paper; (“from drum” may be
implicit in order of answer)
Toner is fused/bonded/melted/stuck to paper by (heated
rollers/pressure); (must be clear that toner is already on paper
when it is fused, not still on drum)
I incorrect charges e.g. positive when should be negative
INK JET
Heater behind ink reservoir is warmed;
Vaporises droplet of ink. Expands and forces small ink blob out
onto paper;
Electricity applied to piezoelectric crystal;
Deforms crystal shape;
Fires/squirts/shoots spots of ink; NE places
Some colours produced from mix of ink spots fired together;
Heater turns off – ink cools sucks remainder of droplet back in.
Repeated for all colours and each nozzle;
Electric current switched off piezoelectric crystal returns to
original shape;
Print head moves across each line of paper/ repeated for each
part of each character // Prints line by line;
Ink dries before paper emerges from printer;
Full transcript