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