a. describe the main features of operating systems, for example memory management, and scheduling algorithms;
b. explain how interrupts are used to obtain processor time and how processing of interrupted jobs may later be resumed, (typical sources of interrupts should be
identified and any algorithms and data structures should be described);
c. define and explain the purpose of scheduling, job queues, priorities and how they are used to manage job throughput;
d. explain how memory is managed in a typical modern computer system (virtual memory, paging and segmentation should be described along with some of the problems which
could occur, such as disk threshing);
e. describe spooling, explaining why it is used;
f. describe the main components of a typical desktop PC operating system, including the file allocation table (FAT) and how it is used, and the purpose of the boot file.
a. describe the need for, and use of, translators to convert source code to object code;
b. understand the relationship between assembly language and machine code;
c. describe the use of an assembler in producing machine code;
d. describe the difference between interpretation and compilation;
e. describe the purpose of intermediate code in a virtual machine;
f. describe what happens during lexical analysis;
g. describe what happens during syntax analysis, explaining how errors are handled;
h. explain the code generation phase and understand the need for optimisation;
i. describe the use of library routines
a. describe classic Von Neumann architecture, identifying the need for, and the uses of, special registers in the functioning of a processor;
b. describe, in simple terms, the fetch/decode/execute cycle, and the effects of the stages of the cycle on specific registers;
c. discuss co-processor, parallel processor and array processor systems, their uses, advantages and disadvantages;
d. describe and distinguish between Reduced Instruction Set Computer (RISC) and Complex Instruction Set Computer (CISC) architectures.
a. demonstrate an understanding of floating point representation of a real binary number;
b. normalise a real binary number;
c. discuss the trade-off between accuracy and range when representing numbers.
a. explain how static data structures may be used to implement dynamic data structures;
b. describe algorithms for the insertion, retrieval and deletion of data items stored in stack, queue and tree structures;
c. explain the difference between binary searching and serial searching, highlighting the advantages and disadvantages of each;
d. explain how to merge data files;
e. explain the differences between the insertion and quick sort methods, highlighting the characteristics, advantages and disadvantages of each.
a. identify a variety of programming paradigms (low-level, object-oriented, declarative and procedural);
b. explain, with examples, the terms objectoriented, declarative and procedural as applied to high-level languages, showing an understanding of typical uses;
c. discuss the concepts and, using examples, show an understanding of data encapsulation, classes and derived classes, and inheritance when referring to
object-oriented languages;
d. understand the purpose of the Unified Modelling Language (UML);
e. interpret class, object, use case, state, sequence, activity and communication diagrams;
f. create class, object, use case and communication diagrams;
g. discuss the concepts and, using examples, show an understanding of backtracking, instantiation, predicate logic and satisfying goals when referring to declarative languages.
a. explain how functions, procedures and their related variables may be used to develop a program in a structured way,using stepwise refinement;
b. describe the use of parameters, local and global variables as standard programming techniques;
c. explain how a stack is used to handle procedure calling and parameter passing;
d. explain the need for, and be able to create and apply, BNF (Backus-Naur form) and syntax diagrams;
e. explain the need for reverse Polish notation;
f. convert between reverse Polish notation and infix form of algebraic expressions using trees and stacks.
a. explain the concepts and, using examples, demonstrate an understanding of the use of the accumulator, registers, and program counter;
b. describe immediate, direct, indirect, relative and indexed addressing of memory when referring to low-level languages;
c. discuss the concepts and, using examples,show an understanding of mnemonics, opcode, operand and symbolic addressing in assembly language to include simple
arithmetic operations, data transfer and flow-control.
a. describe flat files and relational databases, explaining the differences between them;
b. design a simple relational database to the third normal form (3NF), using entityrelationship (E-R) diagrams and decomposition;
c. define and explain the purpose of primary, secondary and foreign keys;
d. describe the structure of a DBMS including the function and purpose of the data dictionary, data description language (DDL) and data manipulation language (DML);
e. use SQL to define tables and views, insert, select and delete data and to produce reports