WJEC · GCSE

Your journey to excellence inComputer Science

By Revision Genie

I want to study…
1Binary Representation of NumbersRead next2Converting Between Binary and DenaryRead next3Binary AdditionRead next4Arithmetic Shift FunctionsRead next5Understanding Overflow in Binary ArithmeticRead next6Hexadecimal Representation of NumbersRead next7Converting Between Binary and HexadecimalRead next8Using Hexadecimal as Binary ShorthandRead next9Digital Storage of GraphicsRead next10Bitmap Graphics RepresentationRead next11Vector Graphics RepresentationRead next12Understanding Image MetadataRead next13Digital Sound Storage and SamplingRead next14Sample Rate and Bit Depth in AudioRead next15Understanding Audio MetadataRead next16Binary Storage of CharactersRead next17ASCII Character EncodingRead next18Unicode Character EncodingRead next19Integer Data TypeRead next20Real Data TypeRead next21Boolean Data TypeRead next22Character Data TypeRead next23String Data TypeRead next24One-Dimensional ArraysRead next25Two-Dimensional ArraysRead next26Records in Data StructuresRead next27Designing Data Structures for ApplicationsRead next28File Design for Data StorageRead next29Data Validation TechniquesRead next30Data Verification TechniquesRead next31Algorithms for Data ValidationRead next32Algorithms for Data VerificationRead next33Selecting Appropriate Data StructuresRead next34Common Pitfalls in Data RepresentationRead next35Worked Examples: Binary ArithmeticRead next36Worked Examples: Hexadecimal ConversionRead next37Exam Trap: Misinterpreting MetadataRead next38Exam Trap: Overflow Errors in Binary AdditionRead next39Exam Trap: Confusing ASCII and UnicodeRead next
1High-Level Programming LanguagesRead next2Low-Level Programming LanguagesRead next3Characteristics of High-Level LanguagesRead next4Characteristics of Low-Level LanguagesRead next5Applications of High-Level LanguagesRead next6Applications of Low-Level LanguagesRead next7Machine Code BasicsRead next8Assembly Language BasicsRead next9Comparing High-Level and Low-Level LanguagesRead next10Advantages of High-Level LanguagesRead next11Disadvantages of High-Level LanguagesRead next12Advantages of Low-Level LanguagesRead next13Disadvantages of Low-Level LanguagesRead next14Translation of High-Level LanguagesRead next15Translation of Low-Level LanguagesRead next16Role of Compilers in High-Level LanguagesRead next17Role of Interpreters in High-Level LanguagesRead next18Role of Assemblers in Low-Level LanguagesRead next19Examples of High-Level Programming LanguagesRead next20Examples of Low-Level Programming LanguagesRead next21Choosing a Programming Language for a TaskRead next22Understanding Syntax in High-Level LanguagesRead next23Understanding Syntax in Low-Level LanguagesRead next24Execution Speed: High vs Low-Level LanguagesRead next25Memory Management in Low-Level LanguagesRead next26Portability of High-Level LanguagesRead next27Platform Dependence of Low-Level LanguagesRead next28Debugging in High-Level LanguagesRead next29Debugging in Low-Level LanguagesRead next30Use of Libraries in High-Level LanguagesRead next31Use of Libraries in Low-Level LanguagesRead next32Writing Efficient Code in High-Level LanguagesRead next33Writing Efficient Code in Low-Level LanguagesRead next34Examples of Real-World Applications for Each Language TypeRead next35Historical Development of Programming LanguagesRead next36Future Trends in Programming LanguagesRead next37Common Misconceptions About Programming LanguagesRead next38Examining Legacy Systems and Low-Level CodeRead next39Common Exam Traps in Principles of ProgrammingRead next40Understanding Pseudocode and FlowchartsRead next
1Ethical Impacts of Digital TechnologyRead next2Privacy Issues in Digital TechnologyRead next3Cybersecurity Concerns and EthicsRead next4Professional Standards in ComputingRead next5Formal Codes of Ethical BehaviourRead next6Informal Codes of Ethical BehaviourRead next7Legislation Related to Digital TechnologyRead next8Impact of Data Protection LegislationRead next9Freedom of Information Act in ComputingRead next10Current Security Legislation OverviewRead next11Privacy Laws and Digital TechnologyRead next12Environmental Impacts of Digital TechnologyRead next13E-Waste and its ManagementRead next14Energy Consumption in ComputingRead next15Carbon Footprint of Digital DevicesRead next16Sustainable Computing PracticesRead next17Recycling and Disposal of HardwareRead next18Societal Changes Due to Digital TechnologyRead next19Digital Divide and Accessibility IssuesRead next20Automation and Employment ImpactsRead next21Social Media's Influence on SocietyRead next22Ethical Issues in AI and Machine LearningRead next23Biometric Data and Ethical ConcernsRead next24Surveillance Technology and PrivacyRead next25Impact of Cloud Computing on PrivacyRead next26Ethics of Data Collection and StorageRead next27Ownership of Digital ContentRead next28Copyright and Intellectual Property LawsRead next29Digital Piracy and its ConsequencesRead next30The Role of GDPR in ComputingRead next31Green Computing and Resource EfficiencyRead next32Renewable Energy in Data CentersRead next33Digital Technology and Climate ChangeRead next34Ethical Implications of Internet CookiesRead next35Ethics in Software DevelopmentRead next36Impact of Algorithms on Decision MakingRead next37Ethical Concerns in Big Data AnalysisRead next38Examining Bias in Automated SystemsRead next39Ethical Marketing in the Digital AgeRead next40Impact of Digital Advertising on PrivacyRead next41Consumer Rights in the Digital WorldRead next42Ethical Issues in Online GamingRead next43Digital Technology and Health ImpactsRead next44Ethical Concerns in Virtual Reality UseRead next45Ethics in Cybersecurity PracticesRead next46Exam Traps in Ethical and Legal ImpactsRead next
1Introduction to Problem SolvingRead next2Understanding Computational ThinkingRead next3What is Decomposition?Read next4Benefits of DecompositionRead next5Practical Examples of DecompositionRead next6What is Abstraction?Read next7Benefits of AbstractionRead next8Using Abstraction in Problem SolvingRead next9Systematic Problem-Solving TechniquesRead next10Steps in Systematic Problem SolvingRead next11Modeling Problems with AbstractionRead next12Structuring Programs Using Modular DesignRead next13Clear Interfaces in Modular ProgrammingRead next14Identifying Inputs, Processes, and OutputsRead next15Setting Objectives for Problem SolutionsRead next16Analyzing Problems with Computational ThinkingRead next17Using Pseudocode for Algorithm DesignRead next18Creating Flowcharts for AlgorithmsRead next19Sequence in Algorithms and ProgramsRead next20Selection in Algorithms and ProgramsRead next21Iteration in Algorithms and ProgramsRead next22Subroutines in Algorithms and ProgramsRead next23Local vs Global VariablesRead next24Self-Documenting Identifiers in CodeRead next25Annotation in ProgrammingRead next26String Handling TechniquesRead next27Mathematical Operations in AlgorithmsRead next28Logical Operators in AlgorithmsRead next29Merge Sort Algorithm CharacteristicsRead next30Bubble Sort Algorithm CharacteristicsRead next31Linear Search AlgorithmRead next32Binary Search AlgorithmRead next33Evaluating Algorithm EfficiencyRead next34Testing Algorithms and ProgramsRead next35Designing Effective Test StrategiesRead next36Using Test Data for ValidationRead next37Refining Solutions After TestingRead next38Common Errors in Problem SolvingRead next39Examining Real-Life Applications of DecompositionRead next40Examining Real-Life Applications of AbstractionRead next41Common Exam Traps in Problem SolvingRead next42Importance of Logical Reasoning in SolutionsRead next43Creating Modular Solutions with SubroutinesRead next44Debugging Systematic Errors in CodeRead next45Iterative Refinement in ProgrammingRead next46Effective Use of Computational Thinking in ExamsRead next47Breaking Down Complex Problems Step-by-StepRead next48Designing Algorithms to Meet RequirementsRead next49Evaluating Problem Solutions for FitnessRead next
1Understanding AlgorithmsRead next2What is Pseudocode?Read next3Writing Pseudocode for Simple TasksRead next4Common Pseudocode Keywords and SyntaxRead next5Interpreting PseudocodeRead next6What are Flowcharts?Read next7Flowchart Symbols and Their MeaningsRead next8Creating Flowcharts for AlgorithmsRead next9Reading and Interpreting FlowchartsRead next10The Concept of Sequence in ProgrammingRead next11Implementing Sequence in PseudocodeRead next12Understanding Selection in ProgrammingRead next13Using IF-ELSE Statements in PseudocodeRead next14Using SWITCH-CASE in PseudocodeRead next15The Concept of Iteration in ProgrammingRead next16Using FOR Loops in PseudocodeRead next17Using WHILE Loops in PseudocodeRead next18Using REPEAT-UNTIL Loops in PseudocodeRead next19Combining Sequence, Selection, and IterationRead next20Introduction to Searching AlgorithmsRead next21How Linear Search WorksRead next22Implementing Linear Search in PseudocodeRead next23How Binary Search WorksRead next24Implementing Binary Search in PseudocodeRead next25Comparing Linear and Binary SearchRead next26Introduction to Sorting AlgorithmsRead next27How Bubble Sort WorksRead next28Implementing Bubble Sort in PseudocodeRead next29How Merge Sort WorksRead next30Implementing Merge Sort in PseudocodeRead next31Comparing Bubble Sort and Merge SortRead next32What is Algorithm Efficiency?Read next33Evaluating Algorithm Efficiency with Big-O NotationRead next34Identifying Algorithm Strengths and WeaknessesRead next35Testing Algorithms for CorrectnessRead next36Using Test Data to Validate AlgorithmsRead next37Debugging Common Algorithm ErrorsRead next38Using Rogue Values in AlgorithmsRead next39What are Subroutines?Read next40Creating and Using Subroutines in PseudocodeRead next41Global vs Local Variables in AlgorithmsRead next42The Importance of Self-Documenting IdentifiersRead next43Annotating Algorithms for ClarityRead next44Logical Operators in AlgorithmsRead next45Using AND, OR, NOT, and XORRead next46Applying Logical Operators in PseudocodeRead next47String Handling in AlgorithmsRead next48Using Mathematical Operations in AlgorithmsRead next49Common Errors in Algorithm DesignRead next50Best Practices for Writing Efficient AlgorithmsRead next51Designing Algorithms to Solve Real-World ProblemsRead next
1Introduction to Programming LanguagesRead next2High-Level vs Low-Level LanguagesRead next3Characteristics of High-Level LanguagesRead next4Characteristics of Low-Level LanguagesRead next5Situations Requiring High-Level LanguagesRead next6Situations Requiring Low-Level LanguagesRead next7Markup Language BasicsRead next8HTML Structure and TagsRead next9Using HTML Headings and ParagraphsRead next10HTML Formatting: Bold and ItalicsRead next11Creating Links in HTMLRead next12Adding Images in HTML PagesRead next13HTML Lists: Ordered and UnorderedRead next14HTML Blockquote and Horizontal Rule TagsRead next15Object-Oriented Programming ConceptsRead next16Greenfoot Environment OverviewRead next17Creating Classes in GreenfootRead next18Extending Existing Classes in GreenfootRead next19Creating Worlds in GreenfootRead next20Adding Objects to Worlds in GreenfootRead next21Writing Methods in GreenfootRead next22Editing and Invoking Methods in GreenfootRead next23Using Object Properties in GreenfootRead next24Keyboard Input in GreenfootRead next25Object Movement in Greenfoot WorldsRead next26Adding and Playing Sounds in GreenfootRead next27Implementing Parameter Passing in GreenfootRead next28Accessing Objects from Other ObjectsRead next29Object Collision Detection in GreenfootRead next30Random Number Generation in GreenfootRead next31Inheritance in Object-Oriented ProgrammingRead next32Encapsulation in Object-Oriented ProgrammingRead next33Assembly Language BasicsRead next34Understanding Assembly MnemonicsRead next35Input and Output in Assembly LanguageRead next36Storing and Loading Data in AssemblyRead next37Arithmetic Operations in Assembly LanguageRead next38Branching and Program Flow in AssemblyRead next39Defining Data in Assembly LanguageRead next40Testing and Refining ProgramsRead next41Common Errors in ProgrammingRead next42Debugging Techniques in GreenfootRead next43Exam Trap: Misusing HTML TagsRead next44Exam Trap: Incorrect Assembly SyntaxRead next45Exam Trap: Object-Oriented MisconceptionsRead next
1Definition of Data StructuresRead next2Definition of Data TypesRead next3Understanding ArraysRead next4One-Dimensional ArraysRead next5Two-Dimensional ArraysRead next6Manipulating ArraysRead next7Applications of ArraysRead next8Understanding RecordsRead next9Designing RecordsRead next10Manipulating RecordsRead next11Applications of RecordsRead next12Definition of VariablesRead next13Assigning VariablesRead next14Using Variables in ProgramsRead next15Definition of ConstantsRead next16Assigning ConstantsRead next17Using Constants in ProgramsRead next18Difference Between Variables and ConstantsRead next19Understanding Scope of VariablesRead next20Local VariablesRead next21Global VariablesRead next22Advantages of Local VariablesRead next23Advantages of Global VariablesRead next24Examining Variable Scope in ProgramsRead next25Understanding Lifetime of VariablesRead next26Static VariablesRead next27Dynamic VariablesRead next28Variable Lifetime in ProgramsRead next29Common Errors with Variable ScopeRead next30Common Errors with Variable LifetimeRead next31Choosing Data Structures for ProblemsRead next32Choosing Data Types for ProblemsRead next33Designing Files and RecordsRead next34Using Files in ProgramsRead next35Data Validation TechniquesRead next36Data Verification TechniquesRead next37Implementing Validation in ProgramsRead next38Implementing Verification in ProgramsRead next39Exam Trap: Misusing ArraysRead next40Exam Trap: Misusing RecordsRead next41Exam Trap: Variable Scope ErrorsRead next42Exam Trap: Misusing ConstantsRead next43Worked Example: Validating User InputRead next44Worked Example: Using Arrays for Data StorageRead next45Worked Example: Designing Records for a DatabaseRead next46Worked Example: Implementing Variable ScopeRead next47Worked Example: Lifetime of Variables in ProgramsRead next
1What is Security in Computing?Read next2The Importance of AuthenticationRead next3Understanding Validation TechniquesRead next4Input Validation: Purpose and ExamplesRead next5Common Validation MethodsRead next6Authentication vs. AuthorizationRead next7Password-Based AuthenticationRead next8Two-Factor Authentication (2FA)Read next9Biometric Authentication MethodsRead next10Token-Based AuthenticationRead next11Multi-Factor Authentication (MFA)Read next12Encryption: Purpose and BasicsRead next13Symmetric vs. Asymmetric EncryptionRead next14Hashing for Secure Data StorageRead next15Access Levels and PermissionsRead next16Firewalls: How They WorkRead next17Antivirus Software and Its RoleRead next18Understanding MalwareRead next19Types of Malware: Viruses, Worms, and TrojansRead next20Keyloggers and SpywareRead next21Phishing Attacks and PreventionRead next22Brute Force Attacks and CountermeasuresRead next23Denial of Service (DoS) AttacksRead next24SQL Injection and ProtectionRead next25Social Engineering and Its DangersRead next26The Role of Secure Software DesignRead next27Data Backups and Recovery PlansRead next28Archiving Files for SecurityRead next29Secure Password Creation and ManagementRead next30The Role of Cookies in SecurityRead next31Identifying Software VulnerabilitiesRead next32Penetration Testing BasicsRead next33Acceptable Use Policies (AUP)Read next34Disaster Recovery Plans: Key ComponentsRead next35Recognizing and Mitigating Insider ThreatsRead next36The Role of User Education in SecurityRead next37Common Security MisconfigurationsRead next38Ethical Hacking and Its Role in SecurityRead next39The Impact of Security BreachesRead next40Laws and Regulations Related to CybersecurityRead next41Examining Real-World Security IncidentsRead next42Best Practices for Secure System DesignRead next43Understanding Network Security BasicsRead next44Protecting Against RansomwareRead next45The Role of Authentication ProtocolsRead next46Common Security Exam Traps and How to Avoid ThemRead next
1Understanding the Software Development ProcessRead next2Defining the Scope of a ProblemRead next3Setting Measurable ObjectivesRead next4Analysing Input RequirementsRead next5Analysing Processing RequirementsRead next6Analysing Output RequirementsRead next7Designing Effective User InterfacesRead next8Documenting Input and Output FacilitiesRead next9Designing Data StructuresRead next10Using Pseudo Code for Validation RoutinesRead next11Using Flowcharts for Validation RoutinesRead next12Designing Data Handling RoutinesRead next13Designing Authentication RoutinesRead next14Implementing a Refinement LogRead next15Structuring Refinement Logs EffectivelyRead next16Evaluating Session Progress in Refinement LogsRead next17Documenting Problems EncounteredRead next18Justifying Design ChangesRead next19Planning Future RefinementsRead next20Creating Modular Program StructuresRead next21Ensuring Interface UsabilityRead next22Implementing Authentication MechanismsRead next23Ensuring Program Robustness and ReliabilityRead next24Writing Self-Documenting CodeRead next25Using Meaningful Identifiers in CodeRead next26Applying Consistent Programming StylesRead next27Using Local and Global Variables AppropriatelyRead next28Creating Validation RoutinesRead next29Implementing Exception HandlingRead next30Annotating Code for ClarityRead next31Developing a Comprehensive Test StrategyRead next32Purpose of Unit TestingRead next33Purpose of Integration TestingRead next34Purpose of Functional TestingRead next35Using Test Outcomes for RefinementRead next36Designing Test Data for Typical CasesRead next37Designing Test Data for Extreme CasesRead next38Designing Test Data for Erroneous CasesRead next39Executing Test Plans SystematicallyRead next40Commenting on Test OutcomesRead next41Evaluating Testing Results Against ObjectivesRead next42Identifying Successful Features of SolutionsRead next43Proposing Areas for ImprovementRead next44Suggesting Extensions to SolutionsRead next45Understanding the Role of Teachers in NEA SupervisionRead next46Preventing Malpractice in NEA ProjectsRead next47Submitting NEA Work ElectronicallyRead next