Every distinction begins with one topic at a time.- start now
Information Technology is examined twice over: once with your hands on a keyboard, and once with a pen. Neither paper forgives a learner who only prepared for the other one.· two papers, equal weight, one subject
This is your map of the whole Information Technology examination, not a re-teach of the content. Read it once, then use the section tables below to decide where every remaining revision hour goes. The one question that shapes all of it: which marks are earned by writing working Delphi code at a machine, and which are earned by writing exact facts on paper?
| Symbol | Label | What it flags for you |
|---|---|---|
| ⭐ | EXAM FAVOURITE | A task type that appears in almost every sitting. Rehearse it until the steps are automatic. |
| 🔥 | FREQUENTLY TESTED | A high-yield skill the papers keep returning to. Never leave it half-learnt. |
| ⚠️ | COMMON MISTAKE | The exact slip that costs marks. Reading it now stops you repeating it under pressure. |
| 💡 | EASY MARK | A low-effort one or two mark grab. Weak candidates leave these on the table. |
| 📖 | KEY DEFINITION | A term the marker wants stated precisely. Loose wording loses the mark. |
| ⚡ | MUST MEMORISE | A syntax pattern, list or rule you should be able to write with your eyes shut. |
| Paper | Type | Marks | Time | What it looks like on the day |
|---|---|---|---|---|
| Paper 1 | Practical | 150 | 3 hours | You sit at a machine with a folder of supplied Delphi projects and a supplied database, and you write, complete and repair code. Your marks live inside the files you save. |
| Paper 2 | Theory | 150 | 3 hours | A written paper of six lettered sections, ending with one long integrated scenario. Every answer is tick-marked fact by fact. |
The two papers add to 300 external marks and they carry exactly equal weight. A candidate who can code beautifully but cannot explain virtual memory loses precisely as much as one who can recite theory but freezes at a keyboard.
Four lettered sections, and their split has been identical across the last three sittings. Each question carries its own small scenario; there is no single storyline running through the paper.
| Section | What it examines | Marks | Rough time budget |
|---|---|---|---|
| A | Basic and general programming: data types, operators, selection, repetition, strings, dates, maths functions, one-dimensional arrays | 40 | ≈ 48 min |
| B | Database programming: an SQL tab sheet and a Delphi-code tab sheet against a supplied database | 40 | ≈ 48 min |
| C | Object-oriented programming: complete a supplied incomplete class, then use it from the form unit | 40 | ≈ 48 min |
| D | General problem-solving, unseen: arrays, text files, a customised algorithm built for the scenario | 30 | ≈ 36 min |
| TOTAL | 150 | 180 min | |
Six lettered sections. Two of them are pinned: Section A has been 20 marks and Section B 25 marks in every recent sitting. The other four move by a few marks each year around a published band, so revise to the band and never to a single year's number.
| Section | Topic | Guideline band | Recent papers |
|---|---|---|---|
| A | Short questions: multiple choice, one-word answers, matching columns, modified true or false. Draws on every topic, and it is the only regular home of HCI and social implications. | ≈ 20 | 20, 20, 20 |
| B | Systems Technologies: hardware, the operating system, software, licensing, cloud | ≈ 25 | 25, 25, 25 |
| C | Communication and Network Technologies, with internet technologies folded in | ≈ 25 | 30, 26, 25 |
| D | Data and Information Management: design, keys, normalisation, collection and mining | ≈ 25 | 20, 24, 20 |
| E | Solution Development: the theory behind the code, design tools, testing, the development life cycle | ≈ 25 | 22, 22, 30 |
| F | Integrated scenario drawing on B to E at once, and where the emerging-technology marks usually land | ≈ 30 | 33, 33, 30 |
| TOTAL | 150 | ||
The curriculum weights the six topics unevenly across the whole subject, which is why the practical paper exists at all. Solution Development is the giant, and it feeds both papers.
| Topic | Share of subject content | Where it is examined |
|---|---|---|
| Solution Development | ≈ 60% | All of Paper 1, plus Section E and much of Section F in Paper 2 |
| Systems Technologies | ≈ 10% | Paper 2 Section B, plus Sections A and F |
| Data and Information Management | ≈ 10% | Paper 2 Section D, plus Paper 1 Section B in practical form |
| Internet Technologies | ≈ 8% | Paper 2 Section C, folded in with networks |
| Communication Technologies | ≈ 7% | Paper 2 Section C |
| Social Implications | ≈ 5% | Paper 2 Sections A and F only, never a section of its own |
Promotion in this subject is a clean split into quarters. Half of your final mark is already banked before you walk into either external paper, which cuts both ways: strong school work protects you, and a neglected project cannot be rescued in November.
The four rules that decide marks in this subject:
Both papers are set to the same spread of thinking, and a second axis of difficulty is crossed over it. The practical consequence is simple: roughly two marks in five are straightforward recall or a single routine step, and roughly one in twenty is genuinely hard. Chasing the very difficult marks first is how candidates run out of time with easy marks unclaimed.
| Band | What it asks of you | Share of each paper |
|---|---|---|
| C1 Knowledge and remembering | State a term, name a component, recall a syntax pattern | ≈ 30% |
| C2 Understanding and applying | Apply a construct, write a routine loop, explain a term in context | ≈ 40% |
| C3 Analysing, evaluating and creating | Build an algorithm, motivate a choice, solve an unseen problem | ≈ 30% |
| Difficulty axis crossed over the above: easy ≈ 40%, moderately challenging ≈ 32%, difficult ≈ 23%, very difficult ≈ 5%. | ||
Warm your memory up with these six. No answers given, deliberately. Any hesitation shows you where tonight's revision begins.
Section A is not about clever code. It is about forty small correct decisions made calmly in forty-eight minutes.· the steps are the marks
Every practical question is marked on a grid where each correct step earns its own tick. That single fact should change how you write under pressure: an unfinished routine that declares the right variable, opens the right loop and gets the condition right has already banked several marks before it ever produces an answer. Nothing in this paper is all or nothing.
The four practical marking rules, true in every section of Paper 1:
| What the question asks for | What you reach for | Where the mark is lost |
|---|---|---|
| Read a number out of an edit box or panel | StrToInt, StrToFloat, and Copy first if the value sits inside a longer caption | Converting a caption that still carries the label text, so the conversion raises an error at run time |
| Show money or a measurement to two decimals | FloatToStrF(rValue, ffFixed, 8, 2) | Rounding by hand, or leaving eight decimals on screen when the question said two |
| Whole packs and what is left over | div for the packs, mod for the remainder | Using / and then trying to force the result back to an integer |
| Decide between three or more named options | case on an ordinal value, or nested if | Trying to switch a case on a string or a real |
| Repeat a known number of times | for i := 1 to N do | Off-by-one bounds, or changing the loop counter inside the loop |
| Repeat until a condition changes | while when it may run zero times, repeat when it must run once | Choosing repeat for a list that may be empty |
| Pull a piece out of a delimited string | Pos to find the delimiter, Copy to take the piece, Delete to move on | Forgetting that Copy counts characters, not delimiters |
| Build a neat report line | Concatenation with +, tabs with #9, into a RichEdit | Writing over the previous line instead of adding to it |
div returns how many whole times one integer fits into another and throws the fraction away, so 17 div 5 is 3. mod returns what is left over after that division, so 17 mod 5 is 2. Both take integers on either side and give an integer back. Any question phrased as "how many full boxes and how many loose items" is a div and mod question, and it appears somewhere in Section A almost every year.String or a Real is not, so case sName of will not compile no matter how sensible it reads. The standard workaround is to switch on the first character with sName[1], or to fall back to nested if statements. A second, quieter version of the same slip: dividing two integers with / gives a real, so assigning that straight into an Integer variable fails.
Beans#12#4,50 arrives as one string and has to become three separate values. The pattern is always the same: find the delimiter with Pos, take everything before it with Copy, then Delete that piece plus the delimiter and repeat. Practise it until you can write it without thinking, because it appears in Section A, again in Section D when text files arrive, and often inside a class method in Section C.
Examiners test loop choice directly, usually by describing a situation where one of the three is clearly wrong. Keep the distinction in one sentence each.
| Loop | Use it when | Times it can run zero times |
|---|---|---|
for | The number of repetitions is known before the loop starts, such as every element of an array of known length | Yes, if the upper bound is below the lower bound |
while ... do | The condition is tested first, and the body may legitimately never run | Yes, and this is the reason to choose it |
repeat ... until | The body must run at least once, such as asking a user for input before you can test it | No, never |
Q: A depot packs bottles into crates of 24. Given iBottles, display the number of full crates and the bottles left over, then the loading fee at R7,25 per full crate, to two decimals.
(a) iCrates := iBottles div 24;
(b) iLoose := iBottles mod 24;
(c) rFee := iCrates * 7.25;
(d) redOut.Lines.Add('Full crates: ' + IntToStr(iCrates));
(e) redOut.Lines.Add('Loose bottles: ' + IntToStr(iLoose));
(f) redOut.Lines.Add('Fee: R' + FloatToStrF(rFee, ffFixed, 8, 2));
With 500 bottles: 20 full crates, 20 loose, fee R145,00. Six ticks are available here and each line carries its own. Writing only (a) and (d) still earns two.
Q: A string holds Sipho*Grade 12*78. Extract the name, the grade description and the mark.
(a) iPos := Pos('*', sLine);
(b) sName := Copy(sLine, 1, iPos - 1);
(c) Delete(sLine, 1, iPos);
(d) iPos := Pos('*', sLine);
(e) sGrade := Copy(sLine, 1, iPos - 1);
(f) Delete(sLine, 1, iPos);
(g) iMark := StrToInt(sLine);
The last piece needs no Pos at all, because nothing follows it. Forgetting the - 1 in step (b) drags the delimiter into the name and costs the tick.
When a loop produces the wrong number and you cannot see why, do not stare at it. Walk it by hand, one row per pass, writing down every variable after each iteration. It takes ninety seconds and it finds off-by-one bounds and mis-placed accumulator resets almost every time. The same technique is examined directly in the theory paper, where you may be handed a loop and asked to report the values.
FloatToStrF with a 2 where the question says two decimals, and clearing the output component with redOut.Clear at the top of the button handler so a second click does not stack a second report on top of the first.
iBoxes := 17 div 5; and iLeft := 17 mod 5;. What are the values of iBoxes and iLeft after both lines run?(2)
case sCategory of to choose between the categories 'Bronze', 'Silver' and 'Gold' stored in a String variable, and the project refuses to compile. What is the reason, and what is the standard fix?(2)
sLine holds Sipho*Grade 12*78. A candidate writes iPos := Pos('*', sLine); followed by sName := Copy(sLine, 1, iPos - 1);. What does sName hold afterwards?(2)
rTotal?(2)
for i := 1 to 5 do begin iSum := 0; iSum := iSum + i; end; and always reports a total of 5 instead of 15. What is the fault?(3)
StrToInt, StrToFloat and FloatToStrF, and format to the number of decimals the question names. Use div for whole parts and mod for remainders. Remember that case only switches on ordinal values. Pick for for a known count, while when the body may never run, and repeat when it must run once. Split delimited strings with Pos, Copy and Delete. Set accumulators to zero before the loop, never inside it. Every step you write is its own tick, so an unfinished answer still scores and a blank never does.
This is a free preview of Topic 1. The full guide has every topic, the self-marking quizzes, mock exams, planner, journal and wellbeing tools.
Unlock the full guide on WhatsAppSee pricingA winner is a loser who tried one more time.- keep going, all the way to the exam