Starting point is the specification, Unit 1, page 6.
Much of this section is background to programming and has not so far been tested in an exam.
You should understand the terms 'top-down' and 'module' and how these translate into programming practice: dividing a problem into sub-problems that can be solved one at a time.
You should understand 'abstraction' as it applies in computing and programming. For example, the solution to a problem such as sorting a list is defined by an algorithm; the algorithm will be made accessible through an interface such as a CLI or GUI; this is a layer of abstraction.
A 'control' in a GUI tool like Delphi may provide methods such as 'sort' that implements the algorithm without you having to code it e.g. the list box. This is another layer of abstraction, between the control and its methods and properties. The controls themselves may be provided by the operating system and tools like Delphi provide an interface between the complexity of the controls in their native format and the programmer.
Another way of viewing abstraction is hiding: the code for sorting is hidden away, in a method attached to a control such as a list box or in a procedure in a unit if procedures that a program needs to see.
The Delphi 'includes' refers to units of exiting code where the details are abstracted away, as do similar commands in other languages such as '#include# and 'extends'.
Finite state machines do appear in exams, in a fairly simple form. Understand that they consist of:
You should be able to follow the sequence of states that the stream of inputs produces. You should be able to identify the function of a finite state machine, which is usually quite simple e.g. check if there is an even number or an odd number of an input character. If the machine is in the acceptance state at the end of the input stream then you should be able to work out what it has done with the inputs e.g. perform arithmetic modulo 3 - each state has an input between 1 and 3 and the acceptance state will always be a multiple of 3 so mod 3 is zero.
Algorithm design may be included as an example in pseudo-code that yoy have to interpret or find the output at the end of a run. This may be part of the programming section.
Remember the three basic parts of programming: sequence, selection, repetition (the specification adds assignment).
Bubble sort and linear search are requirements. Make sure you can follow these algorithms in the text book.
You should have absorbed all aspects of programming in the specification in your practical work. You have to be able to read and understand as well as write code. You have to know the technical names for things like constants and parameters so that you can identify them.
Type: user defined types include records and enumerated types such as ranges e.g. 1..10 or [red, greem blue].
Const: used to make it easier to change the size of arrays or the iteration of for loops. e.g. arra[1..limit] of integer; for i := 1 to limit.
| Computation | Problem Solving | Finite State Machines |
| Algorithms | ||
| Prog: Input, output, assignment | Prog: Data types | Prog: Selection |
| Prog: Repetition | Prog: Procedures & functions | Prog: Arrays |
| Prog: files (text & records) | ||
| Structured programming | Linear search | Bubble sort |
| Validation | Testing | Binary |
| Hexdecimal | Character coding | Graphics |
| Sound |
| Terminology Part 1 | Terminology Part 2 | Terminology Part 3 |
| Terminology Part 4 | Terminology Part 5 |