OCR Computing A-Level Revision

Specification

F451 - Computing Fundamentals (AS - 25%)

1 Components of a Computer System

Candidates should be able to:

1.1 Computer System Components
a define the terms hardware, software, input device, storage device and output device;
b describe the purpose of input devices, storage devices and output devices;
c describe the different roles and functions of systems software and applications packages.

2 Software

Candidates should be able to:

1.2.1 Systems Development Lifecycle
a describe the stages of the systems life cycle;
b explain the importance of defining a problem accurately;
c describe the function and purpose of a feasibility study;
d explain the importance of determining the information requirements of a system and describe different methods of fact finding, including questionnaires, observation, and structured interviews, highlighting the advantages and disadvantages of each method;
e describe what is involved when analysing the requirements of a system, explaining the nature of the requirements specification and its content, including current data structures, inputs, outputs and processing represented in diagrammatic form (data flow diagrams, system flowcharts), identify inefficiencies/problems in the current system;
f describe a design specification including input design, diagrammatic depiction of the overall system, processing, data structure design and output design;
g explain the importance of evaluating the system, and how to identify the criteria used for evaluation;
h explain the content and importance of different types of documentation at different stages in the system life cycle, including the technical and user manuals;
i explain the importance of system testing and installation planning;
j explain the purpose of maintaining the system, and explain the need for system review and reassessment, understanding that software has a limited life span;
k describe prototyping to demonstrate how a solution will appear;
l describe the spiral and waterfall models of the systems life cycle;

1.2.2 Applications
m identify the features of common applications found in business, commercial and industrial applications: eg stock control, order processing, payroll, process control, point-of-sale systems, marketing, computer-aided design (CAD), and computer-aided manufacture (CAM);
n identify and justify generic applications software for particular application areas, eg word processing, spreadsheets, desktop publishing (DTP), presentation software, drawing packages;
o identify and justify application areas for which custom-written applications software is appropriate;
p describe the characteristics of knowledge-based systems;
s describe a range of applications requiring batch processing, and applications in which a rapid response is required;
v identify and describe the purpose of a range of utilities, eg compression software, hardware drivers, anti-virus software, file handlers.

1.2.3 Operating Systems
q describe the purpose of operating systems;
r describe the characteristics of different types of operating systems and their uses: batch, real-time, single-user, multi-user, multi-tasking and distributed systems;

1.2.4 User Interfaces
t identify and describe the purpose of different types of user interface: forms, menus, GUI, natural language and command line, suggesting the characteristics of user interfaces that make them appropriate for different types of user;
u discuss the importance of good interface design;

3 Data: Its representation, structure and management in information systems

Candidates should be able to:

1.3.1 Binary
a express numbers in binary, binary-coded decimal (BCD), octal and hexadecimal;
b describe and use two's complement and sign and magnitude to represent negative integers;
c perform integer binary arithmetic, that is addition and subtraction;

1.3.2 Other Number Systems
a express numbers in binary, binary-coded decimal (BCD), octal and hexadecimal;

1.3.3 Character Sets
d explain the use of code to represent a character set (ASCII, EBCDIC and UNICODE);

1.3.4 Data Input & Output
e describe manual and automatic methods of gathering and inputting data into a system, including form design, keyboard entry, voice recognition, barcodes, optical mark recognition (OMR), optical character recognition (OCR), magnetic ink character recognition (MICR), touch screens; image capture, chip and pin, sensors and remote data logging;
g describe possible forms of output such as graphs, reports, interactive presentations, sound, video, images, animations, stating the advantages and disadvantages of each with reference to the target audience;

1.3.5 Data Validation
f explain the techniques of validation and verification, and describe validation tests which can be carried out on data;

1.3.6 Backing Up & Archiving
h explain the procedures involved in backing up data and archiving, including the difference between data that is backed up and data that is archived.

4 Hardware

Candidates should be able to:

1.4.1 Processor Components
a describe the function and purpose of the control unit, memory unit and ALU (arithmetic logic unit) as individual parts of a computer;
b explain the need for, and use of, registers in the functioning of the processor (Program Counter, Memory Address Register, Memory Data Register, Current Instruction Register and Accumulator);
c explain the need for, and describe the use of, buses to convey information (Data, Address and Control buses);

1.4.2 Connectivity
d describe the connectivity of devices (methods of hard wiring, and wireless connections);

1.4.3 Memory & Storage
e describe the differences between types of primary memory and explain their uses;
f describe the basic features, advantages, disadvantages and uses of secondary storage media;
g describe the transfer of data between different devices and primary memory, including the uses of buffers and interrupts;

1.4.4 Peripherals
h describe a range of common peripheral devices in terms of their features, advantages, disadvantages and uses: bar-code readers, MICR, OCR, OMR, scanners, printers, plotters, speakers, microphones, sensors, actuators (this list is indicative and any device which could be connected to the computer for input, output and storage should be considered as included);
i describe and justify the appropriate peripheral hardware for a given application.

5 Data Transmission

Candidates should be able to:

1.5.1 Introduction to Networks
a describe the characteristics of a LAN (local area network) and a WAN (wide area network);
d explain the relationship between bit rates and the time sensitivity of the information;
h define the term protocol and explain the importance of a protocol to the transmission of data;
i describe the need for communication between devices and between computers, and explain the need for protocols to establish communication links;
j explain the need for both physical and logical protocols and the need for layering in an interface.

1.5.2 Network Hardware & Software
b show an understanding of the hardware and software needed for a LAN and for accessing a WAN, eg the internet;

1.5.3 Data Transmission
c describe the different types of data transmission: serial and parallel; and simplex, half-duplex and duplex modes;

1.5.4 Error Checking
e recognise that errors can occur in data transmission, and explain methods of detecting and correcting these errors (parity checks, the use of parity in data blocks to become self-correcting, check sums and echoes);

1.5.5 Circuit Switching & Packet Switching
f describe packet switching and circuit switching;
g explain the difference in use of packet switching and circuit switching;

6 Implications of computer use

Candidates should be able to:

1.6 Implications of Computer Use
a discuss changing trends in computer use and their economic, social, legal and ethical effects on society;
b explain changes to society brought about by the use of computer systems, eg in changing leisure patterns and work expectations;
c discuss the effects on privacy and confidentiality of data held in computer systems, and steps that can be taken to protect confidentiality;
d understand the need for legislation governing computer use.

F452 - Programming Techniques and Logical Methods (AS - 25%)

1 Designing solutions to problems

This topic includes the specification and documentation of designs that solve a given problem. This includes the design of the input, output and user interfaces, but principally the design of the algorithms that convert the input into the output. (An awareness of the design of the data structures is also required, but is dealt with in detail in Data types and data structures)

Candidates should be able to:

2.1.1 Interface Design
a discuss the importance of good interface design;
b design and document data capture forms, screen layouts, report layouts or other forms of input and output (eg sound) for a given problem;
c determine the data requirements of a program (relating to 3: Data types and data structures);

2.1.2 Modular Design
d explain the advantages of designing a solution to a problem by splitting it up into smaller problems (top-down / modular design);
e produce and describe top-down / modular designs using appropriate techniques including structure diagrams, showing stepwise refinement;

2.1.3 Algorithms
f produce algorithms to solve problems;
g describe the steps of an algorithm using a program flowchart;
h describe the steps of an algorithm using pseudo-code;
i understand, and implement algorithms and evaluate them by commenting on their efficiency, correctness and appropriateness for the problem to be solved;

2.1.4 Rapid Application Development
j describe the use of Rapid Application Development (RAD) as a design strategy, including prototyping and iterative development, and state it's advantages and disadvantages.

2 The structure of procedural programs

This topic includes the general programming principles concerning the structure and flow of control in a procedural program.

Candidates should be able to:

2.2 Structure of Procedural Programs
a define and correctly use the following terms as they apply to procedural programming: statement, subroutine, procedure, function, parameter / argument, sequence, selection, iteration / repetition, loop;
b identify the three basic programming constructs used to control the flow of execution, i.e. sequence, selection, and iteration;
c understand and use selection in pseudo-code and a procedural programming language, including the use of IF statements and CASE / SELECT statements;
d understand and use iteration in pseudo-code and a procedural programming language, including the use of count-controlled loops (FOR-NEXT loops) and condition-controlled loops (WHILE-ENDWHILE and REPEAT-UNTIL loops);
e understand and use nested selection and iteration statements;
f understand, create and use subroutines (procedures and functions), including the passing of parameters and the appropriate use of the return value of functions.
g identify and use recursion to solve problems; show an understanding of the structure of a recursive subroutine, including the necessity of a stopping condition;
h trace the execution of a recursive subroutine including calls to itself;
i discuss the relative merits of iterative and recursive solutions to the same problem.

3 Data types and data structures

Candidates should learn to select appropriate data types and design appropriate data structures (including files) to solve a given problem, and justify their choice. They should learn to use the facilities of a procedural programming language to manipulate files.

Candidates should, when writing a program in a procedural language, be able to:

2.3.1 Data Types
a define different data types, e.g. numeric (integer, real), Boolean, character and string; select and use them appropriately in their solutions to problems;
b define and use arrays (one- and two-dimensional) for solving simple problems, including initialising arrays, reading data into arrays and performing a simple serial search on a one-dimensional array;
c explain the advantages and disadvantages of different data types and data structures for solving a given problem;

2.3.2 Records & Files
d design and implement a record format;
e define different modes of file access: serial, sequential, indexed sequential and random; and justify a suitable mode of file access for a given example;
f store, retrieve and search for data in files;
g estimate the size of a file from its structure and the number of records;
h use the facilities of a procedural language to perform file operations (opening, reading, writing, updating, inserting, appending and closing) on files of different access modes as appropriate.

4 Common facilities of procedural languages

This topic includes operations, built-in functions and other facilities that are common to most procedural languages.

Using an appropriate procedural programming language, candidates should be able to:

2.4.1 Assignment Statements
a understand and use assignment statements;

2.4.2 Operators
b understand arithmetic operators including operators for integer division (+, -, *, /, MOD and DIV) and use these to construct expressions;
c understand a range of relational operators, eg =, <, <=, >, >= and <> and use these to construct expressions;
d understand the Boolean operators AND, OR and NOT and use these to construct expressions;
e understand the effects of the precedence of standard operators and the use of parentheses to alter the order of precedence;
f evaluate expressions containing arithmetic, relational and Boolean operators and parentheses;

2.4.3 String Manipulation
g understand and use a range of operators and built-in functions for string manipulation, including location (LOCATE), extraction (LEFT, MID, RIGHT), comparison, concatenation, determining the length of a string (LENGTH) and converting between characters and their ASCII code (ASCII and CHAR);
h understand that relational operations on alphanumeric strings depend on character codes of the characters and explain the results of this effect (e.g. why 'XYZ' < 'abc', '2' > '17' and '3' <> '3.0');

2.4.4 Input & Output
i input and validate data;
j output data onto screen/file/printer, formatting the data for output as necessary.

5 Writing maintainable programs

This topic includes basic techniques for writing code that will be easy to maintain.

Candidates should, when writing a program in a procedural language, be able to:

2.5.1 Terminology
a define, understand and use the following terms correctly as they apply to programming: variable, constant, identifier, reserved word/keyword;

2.5.2 Techniques
b explain the need for good program-writing techniques to facilitate the ongoing maintenance of programs;

2.5.3 Variables & Constants
c declare variables and constants, understanding the effect of scope and issues concerning the choice of identifier (including the need to avoid reserved words / keywords);
d select and use meaningful identifier names and use standard conventions to show the data types and enhance readability;
e use declared constants to improve maintainability;
f initialise variables appropriately, before using them;

2.5.4 Modulation
g create appropriately modularised programs (following a top-down/modular design as produced in 3.2.1: Designing solutions to problems) making effective use of subroutines to improve maintainability;

2.5.5 Comments & Formatting
h annotate the code with comments so that the logic of the solution can be followed;
i use indentation and formatting to show clearly the control structures within the code.

6 Testing and running a solution

They should have an awareness of the process of translating, installing and executing their solution.

When developing software to solve a problem, candidates should be able to:

2.6.1 Errors
a describe types of errors in programs (syntax, logic and run-time errors) and understand how and when these may be detected;
b identify why/where an error may occur in an algorithm and state how the algorithm may be corrected;

2.6.2 Testing
c describe testing strategies including white box testing, black box testing, alpha testing, beta testing and acceptance testing;
d select suitable test data for a given problem, including normal, borderline and invalid data;
e perform a dry run on a given algorithm, using a trace table;

2.6.3 Debugging & Installation
f describe the use of a range of debugging tools and facilities available in procedural programming languages including translator diagnostics, break points, stepping, and variable checks;
g describe the purpose of an installation routine in the delivered version of the program.

F453 - Advanced Computing Theory (A2 - 30%)

F454 - Computing Project (A2 - 20%)