2.3.4
Maintainability
Maintainability
Maintainability
Maintainable code is code that can be read, understood, and fixed by other developers. There are a few best-practice techniques to help write maintainable code, including:


Comments
Comments
- Comments should be used throughout the code to:
- Explain complex processes.
- Clarify the purpose of algorithms.
- Clarify the purpose of a subroutine, as well as its parameters and return type and value.


Indentation
Indentation
- It is good practice to keep indentation of code consistent throughout the code.
- When a new block of code opens, it should be indented to the right.
- When a block of code closes, it should return to the left.
- This makes code easier to read by visualising the scopes involved.


Identifier names
Identifier names
- Identifier names should be clear about their purpose. For example, which of the following two examples makes more sense:
- newBalance = oldBalance * INTEREST_RATE;
- a = b * c;


Code structure
Code structure
- Code should be well structured through the use of subroutines.
- This allows people to identify a single subroutine that they need to reuse or work on.


Parameters vs global variables
Parameters vs global variables
- It is good practice to pass data around the program using parameter passing rather than using global variables.
- This is because passing parameters prevents other subroutines from unexpectedly changing the value of the variables.
1Computer Systems
1.1Systems Architecture
1.2Memory & Storage
1.2.1Types of Memory
1.2.2Flash Memory
1.2.3Properties of Flash Memory
1.2.4Running Out of Memory
1.2.5Virtual Memory
1.2.6Exam-Style Questions - Primary Memory
1.2.7Capacity
1.2.8Calculating Capacity Requirements
1.2.9Solid State Storage
1.2.10Properties of Solid State Media
1.2.11Magnetic Storage
1.2.12Properties of Magnetic Media
1.2.13Examples of Magnetic Storage
1.2.14Optical Storage
1.2.15Properties of Optical Media
1.2.16Examples of Optical Storage
1.2.17Types of Optical Disk
1.2.18End of Topic Test - Computer Systems
1.2.19Grade 9 - Storage
1.2.20Exam-Style Questions - Storage
1.2.21Number Bases
1.2.22Converting Number Bases
1.2.23Hexadecimal
1.2.24Using Hexadecimal
1.2.25Binary Addition
1.2.26Binary Shifts
1.2.27Representing Text
1.2.28ASCII & Unicode
1.2.29Representing Images
1.2.30Converting Binary and Images
1.2.31Representing Sound
1.2.32Data Compression
1.2.33End of Topic Test - Representation
1.2.34Exam-Style Questions -Data Conversions
1.3Computer Networks, Connections & Protocols
1.3.1Benefit of Networks
1.3.2Network Performance
1.3.3Networks: How Do Packets Get Routed?
1.3.4Types of Networks
1.3.5Client-Server Model
1.3.6Pros & Cons of Client-Server Model
1.3.7Peer-to-Peer Model
1.3.8Pros & Cons of Peer-to-Peer Model
1.3.9Network Hardware
1.3.10Transmission Media
1.3.11What is the Internet?
1.3.12URLs
1.3.13DNS & Web Hosting
1.3.14The Cloud
1.3.15Pros & Cons of the Cloud
1.3.16Exam-Style Questions - Networking Models
1.3.17Topology
1.3.18WiFi
1.3.19WiFi Frequency and Channels
1.3.20WiFi Encryption
1.3.21IP Addresses
1.3.22MAC Addresses
1.3.23Network Protocols
1.3.24Transmission Protocols
1.3.25Application Protocols
1.3.26Layers
1.3.27Advantages of Layering
1.3.28Exam-Style Questions - Network Protocols
1.4Network Security
1.4.1Forms of Attack
1.4.2Penetration Testing
1.4.3Malware
1.4.4How Malware Spreads
1.4.5Social Engineering
1.4.6Phishing
1.4.7Cracking Passwords
1.4.8Denial of Service Attacks
1.4.9Data Interception
1.4.10Methods of Data Interception
1.4.11SQL Injection
1.4.12Network Administration
1.4.13Network Forensics
1.4.14Protecting Against Malware
1.4.15Firewalls
1.4.16User Access Levels
1.4.17Passwords
1.4.18Encryption
1.4.19End of Topic Test - Networks
1.5Systems Software
1.6Ethical, Legal, Cultural & Environmental Concern
1.6.1Open Source Software
1.6.2Proprietary Software
1.6.3Licensing Issues
1.6.4Ethical Issues - The Digital Divide
1.6.5Ethical Issues - Net Neutrality
1.6.6Ethical Issues - Working Conditions
1.6.7Ethical Issues - Censorship
1.6.8Exam-Style Questions - Ethical Issues
1.6.9Data Protection Act 1998
1.6.10Computer Misuse Act (1990)
1.6.11Copyright Designs and Patents Act (1988)
1.6.12Creative Commons Licensing
1.6.13Freedom of Information Act (2000)
1.6.14Cultural Issues
1.6.15Environmental Issues
1.6.16Positive Environmental Impact
1.6.17Online Activity Tracking
1.6.18The Internet of Things
1.6.19Stakeholders
1.6.20End of Topic Test - Software & Issues
2Computational Thinking, Algorithms and Programming
2.1Algorithms
2.1.1Computational Thinking - Abstraction
2.1.2Computational Thinking - Decomposition
2.1.3Algorithmic Thinking
2.1.4Pseudocode
2.1.5Flow Diagrams
2.1.6Interpreting Algorithms
2.1.7Correcting Algorithms
2.1.8Completing Algorithms
2.1.9Search Algorithms
2.1.10Linear Search
2.1.11Binary Search
2.1.12Overview of Sort Algorithms
2.1.13Bubble Sort
2.1.14Insertion Sort
2.1.15Merge Sort
2.1.16Exam-Style Questions - Sorting Algorithms
2.2Programming Fundamentals
2.2.1Variable Declaration and Assignment
2.2.2Input and Output
2.2.3Program Flow - Sequence
2.2.4Program Flow - Selection
2.2.5Program Flow - Iteration
2.2.6Arithmetic Operators
2.2.7Relational Operators
2.2.8Boolean Operators
2.2.9Data Types
2.2.10Casting
2.2.11Arrays
2.2.12Strings
2.2.13File Handling
2.2.14Structuring Data - Records
2.2.15Structured Query Language
2.2.16End of Topic Test - Programming
2.2.17Exam-Style Questions - Translation
2.3Producing Robust Programs
2.4Boolean Logic
Jump to other topics
1Computer Systems
1.1Systems Architecture
1.2Memory & Storage
1.2.1Types of Memory
1.2.2Flash Memory
1.2.3Properties of Flash Memory
1.2.4Running Out of Memory
1.2.5Virtual Memory
1.2.6Exam-Style Questions - Primary Memory
1.2.7Capacity
1.2.8Calculating Capacity Requirements
1.2.9Solid State Storage
1.2.10Properties of Solid State Media
1.2.11Magnetic Storage
1.2.12Properties of Magnetic Media
1.2.13Examples of Magnetic Storage
1.2.14Optical Storage
1.2.15Properties of Optical Media
1.2.16Examples of Optical Storage
1.2.17Types of Optical Disk
1.2.18End of Topic Test - Computer Systems
1.2.19Grade 9 - Storage
1.2.20Exam-Style Questions - Storage
1.2.21Number Bases
1.2.22Converting Number Bases
1.2.23Hexadecimal
1.2.24Using Hexadecimal
1.2.25Binary Addition
1.2.26Binary Shifts
1.2.27Representing Text
1.2.28ASCII & Unicode
1.2.29Representing Images
1.2.30Converting Binary and Images
1.2.31Representing Sound
1.2.32Data Compression
1.2.33End of Topic Test - Representation
1.2.34Exam-Style Questions -Data Conversions
1.3Computer Networks, Connections & Protocols
1.3.1Benefit of Networks
1.3.2Network Performance
1.3.3Networks: How Do Packets Get Routed?
1.3.4Types of Networks
1.3.5Client-Server Model
1.3.6Pros & Cons of Client-Server Model
1.3.7Peer-to-Peer Model
1.3.8Pros & Cons of Peer-to-Peer Model
1.3.9Network Hardware
1.3.10Transmission Media
1.3.11What is the Internet?
1.3.12URLs
1.3.13DNS & Web Hosting
1.3.14The Cloud
1.3.15Pros & Cons of the Cloud
1.3.16Exam-Style Questions - Networking Models
1.3.17Topology
1.3.18WiFi
1.3.19WiFi Frequency and Channels
1.3.20WiFi Encryption
1.3.21IP Addresses
1.3.22MAC Addresses
1.3.23Network Protocols
1.3.24Transmission Protocols
1.3.25Application Protocols
1.3.26Layers
1.3.27Advantages of Layering
1.3.28Exam-Style Questions - Network Protocols
1.4Network Security
1.4.1Forms of Attack
1.4.2Penetration Testing
1.4.3Malware
1.4.4How Malware Spreads
1.4.5Social Engineering
1.4.6Phishing
1.4.7Cracking Passwords
1.4.8Denial of Service Attacks
1.4.9Data Interception
1.4.10Methods of Data Interception
1.4.11SQL Injection
1.4.12Network Administration
1.4.13Network Forensics
1.4.14Protecting Against Malware
1.4.15Firewalls
1.4.16User Access Levels
1.4.17Passwords
1.4.18Encryption
1.4.19End of Topic Test - Networks
1.5Systems Software
1.6Ethical, Legal, Cultural & Environmental Concern
1.6.1Open Source Software
1.6.2Proprietary Software
1.6.3Licensing Issues
1.6.4Ethical Issues - The Digital Divide
1.6.5Ethical Issues - Net Neutrality
1.6.6Ethical Issues - Working Conditions
1.6.7Ethical Issues - Censorship
1.6.8Exam-Style Questions - Ethical Issues
1.6.9Data Protection Act 1998
1.6.10Computer Misuse Act (1990)
1.6.11Copyright Designs and Patents Act (1988)
1.6.12Creative Commons Licensing
1.6.13Freedom of Information Act (2000)
1.6.14Cultural Issues
1.6.15Environmental Issues
1.6.16Positive Environmental Impact
1.6.17Online Activity Tracking
1.6.18The Internet of Things
1.6.19Stakeholders
1.6.20End of Topic Test - Software & Issues
2Computational Thinking, Algorithms and Programming
2.1Algorithms
2.1.1Computational Thinking - Abstraction
2.1.2Computational Thinking - Decomposition
2.1.3Algorithmic Thinking
2.1.4Pseudocode
2.1.5Flow Diagrams
2.1.6Interpreting Algorithms
2.1.7Correcting Algorithms
2.1.8Completing Algorithms
2.1.9Search Algorithms
2.1.10Linear Search
2.1.11Binary Search
2.1.12Overview of Sort Algorithms
2.1.13Bubble Sort
2.1.14Insertion Sort
2.1.15Merge Sort
2.1.16Exam-Style Questions - Sorting Algorithms
2.2Programming Fundamentals
2.2.1Variable Declaration and Assignment
2.2.2Input and Output
2.2.3Program Flow - Sequence
2.2.4Program Flow - Selection
2.2.5Program Flow - Iteration
2.2.6Arithmetic Operators
2.2.7Relational Operators
2.2.8Boolean Operators
2.2.9Data Types
2.2.10Casting
2.2.11Arrays
2.2.12Strings
2.2.13File Handling
2.2.14Structuring Data - Records
2.2.15Structured Query Language
2.2.16End of Topic Test - Programming
2.2.17Exam-Style Questions - Translation
2.3Producing Robust Programs
2.4Boolean Logic

Unlock your full potential with GoStudent tutoring
Affordable 1:1 tutoring from the comfort of your home
Tutors are matched to your specific learning needs
30+ school subjects covered