1. Computer Systems

1.1 System Architecture

1. The purpose of the CPU - The fetch-execute cycle
2. CPU components and their function
3. Von Neumann architecture
4. Characteristics of CPUs
5. Embedded systems

1.2 Memory and storage

6. The need for primary storage
7. RAM and ROM
8. Virtual memory
9. The need for secondary storage
10. Common types of storage
11. Suitable storage devices
12. Units of data storage
13. Processing binary data
14. Data capacity calculations
15. Converting between denary & 8 bit binary
16. Adding two 8 bit binary integers
17. Converting between denary and 2 digit hexadecimal
18. Binary shifts
19. Representing characters
20. Representing images
21. Representing sound
22. Compression

1.3 Computer network, connections and protocols

23. Types of networks
24. Performance of networks
25. Client server, peer to peer
26. LAN hardware
27. The internet
28. Star and mesh networks
29. Modes of connection
30. Wireless encryption
31. IP and MAC addressing
32. Standards
33. Common protocols
34. The concept of layers

1.4 Network security

35. Forms of attack
36. Threats to networks
37. Preventing vulnerabilities

1.5 System software

38. The purpose of operating systems
39. Operating systems 1
40. Operating systems 2
41. Utility system software

1.6 Ethical, legal, cultural and environmental concerns

42. Investigating technologies
43. Privacy issues
44. Cultural issues
45. Environmental issues
46. Impacts of technology on society
47. Legislation
48. Open source vs proprietary

2. Computational Thinking, Algorithms and Programming

2.1 Algorithms

49. Abstraction
50. Decomposition
51. Algorithmic thinking
52. Inputs, processes and outputs
53. Structure diagrams
54. Pseudocode and diagrams
55. Identifying errors and suggesting fixes
56. Trace tables
57. Binary search
58. Linear search
59. Bubble sort
60. Merge sort
61. Insertion sort

2.2 Programming fundamentals

62. Variables, constants, inputs, outputs & assignments
63. The 3 basic programming constructs
64. Arithmetic and comparison operators
65. Boolean operators
66. Data types and casting
67. The use of basic string manipulation
68. The use of basic file handling
69. The use of records to store data
70. The use of SQL to search for data
71. The use of arrays
72. How to use sub programs
73. Random number generation

2.3 Producing robust programs

74. Defensive design considerations 1
75. Defensive design considerations 2
76. Maintainability
77. The purpose & types of testing
78. How to identify syntax and logic errors
79. Suitable test data
80. Making algorithms more robust

2.4 Boolean logic

81. Simple logic diagrams
82. Truth tables
83. Combining Boolean operators
84. Applying logical operators in truth tables

2.5 Programming languages and IDEs

85. Characteristics and purpose of different languages
86. The purpose of translators
87. Compilers & interpreters
88. IDE