SQA Visual Programming

Block-Based Programming

Q1: What is a Block in Scratch?
A1: A block is a visual code snippet in Scratch that represents a specific action (e.g., motion, sound, or control). Blocks snap together to create scripts.

Q2: How does a Sequence affect program execution?
A2: A sequence determines the order in which blocks execute, ensuring actions happen step-by-step.


Program Structure

Q3: What is the purpose of a Custom Block?
A3: Custom blocks allow users to create reusable code segments, simplifying complex scripts and reducing repetition.

Q4: How do Parameters enhance a custom block?
A4: Parameters let users pass values (e.g., numbers or text) into a custom block, making it adaptable for different scenarios.


Control Structures

Q5: What is the difference between a Loop (e.g., repeat) and a Forever block?
A5: A repeat loop runs code a set number of times, while forever runs code continuously until manually stopped.

Q6: How does Event Handling work in Scratch?
A6: Event handling uses blocks like when green flag clicked or when key pressed to trigger scripts based on user actions or conditions.


Data Management

Q7: How is a Variable used to track a game score?
A7: A variable stores numerical data (e.g., score) that increases/decreases based on in-game events (e.g., collecting items).

Q8: What is a List in Scratch?
A8: A list stores multiple related values (e.g., high scores or inventory items) in a single structure.


Animation Basics

Q9: How does a Sprite differ from a Backdrop?
A9: A sprite is a movable character/object, while a backdrop is the static background image of the stage.

Q10: What does the Motion block glide to x: y: do?
A10: It smoothly moves a sprite to specific coordinates over a set time, creating fluid animation.


Game Mechanics

Q11: How do you create Interaction between sprites?
A11: Use blocks like broadcast and when I receive to send messages between sprites, triggering coordinated actions.

Q12: Explain how to add a Sound effect when a sprite is clicked.
A12: Attach a when this sprite clicked event block to a play sound block.


Problem-Solving

Q13: What is Debugging in Scratch?
A13: Debugging involves identifying and fixing errors in scripts, such as misplaced blocks or incorrect logic.

Q14: How does Remix help improve a project?
A14: Remixing allows users to copy and modify others’ projects, learning from their code and experimenting with changes.


Development Process

Q15: Why is Planning important before coding?
A15: Planning (e.g., storyboarding or pseudocode) clarifies goals, reduces errors, and organizes the project structure.

Q16: What does Iteration mean in Scratch projects?
A16: Iteration refers to refining a project through repeated cycles of testing, feedback, and improvement.


Programming Tools

Q17: What is the Stage in Scratch?
A17: The stage is the background area where sprites perform actions, and it can switch between multiple backdrops.

Q18: Describe the Palette in the Scratch editor.
A18: The palette categorizes blocks by type (e.g., motion, control) for easy access during scripting.


Best Practices

Q19: Why are Comments useful in Scratch?
A19: Comments explain how parts of the code work, making projects easier to understand for others or future edits.

Q20: How does Optimization improve a Scratch project?
A20: Optimization simplifies code (e.g., using loops instead of repetitive blocks) to reduce lag and improve performance.


Block-Based Programming

Q21: What is the difference between a Hat Block and a Stack Block?
A21: A Hat Block (e.g., when green flag clicked) starts scripts based on events, while a Stack Block (e.g., move 10 steps) performs actions and snaps below other blocks.

Q22: How do Broadcast and Broadcast and Wait differ?
A22: Broadcast sends a message to trigger other scripts immediately, while Broadcast and Wait pauses the current script until the triggered scripts finish.


Program Structure

Q23: How can you use Multiple Sprites to organize code?
A23: Assign specific roles to sprites (e.g., one for movement, another for scoring) to keep scripts modular and easier to debug.

Q24: Give an example of an Event Block that responds to user input.
A24: When [space] key pressed or When this sprite clicked are event blocks that trigger scripts based on user actions.


Control Structures

Q25: How would you use a Conditional Statement to detect a sprite collision?
A25: Use the if <> then block with the touching [sprite]? sensing block to trigger actions on collision.

Q26: How can you Stop a Loop prematurely in Scratch?
A26: Use the stop [this script] block inside a conditional statement within the loop to exit early.


Data Management

Q27: What is a Cloud Variable, and how is it unique?
A27: Cloud variables (marked with ☁) store data online, allowing real-time updates across users’ projects (e.g., global high scores).

Q28: How would you use a List to create an inventory system?
A28: Store item names in a list (e.g., inventory) and use add [item] or delete blocks to manage items dynamically.


Animation Basics

Q29: How do Costumes create animation effects for a sprite?
A29: Switching between costumes rapidly (using next costume in a loop) simulates animation, like a walking character.

Q30: What does the go to front layer block do?
A30: It brings a sprite to the top layer of the stage, ensuring it’s visible over other sprites.


Game Mechanics

Q31: How would you code a Timer for a game?
A31: Create a variable timer, reset it to 0, and use a forever loop with change timer by 1 and wait 1 second blocks.

Q32: Explain how to detect Winning/Losing Conditions in a maze game.
A32: Use if blocks to check if the sprite touching [color]? (e.g., exit color for win, red for lose).


Problem-Solving

Q33: How do you troubleshoot a script that runs too slowly?
A33: Simplify loops, reduce unnecessary blocks, or use stop other scripts in sprite to optimize performance.

Q34: What is a common error when using Clones, and how do you fix it?
A34: Clones not deleting properly can cause lag. Always include delete this clone when their task is done.


Development Process

Q35: Why is User Testing critical before sharing a project?
A35: Testing uncovers bugs and usability issues, ensuring the project works as intended for all users.

Q36: How does Sharing a project foster learning?
A36: Sharing invites feedback, encourages remixing, and helps creators learn from others’ improvements.


Programming Tools

Q37: How do the Costumes Tab and Sounds Tab enhance a project?
A37: The Costumes Tab edits sprite visuals (e.g., drawing tools), while the Sounds Tab imports or records audio effects.

Q38: What is the Sprite Pane, and why is it useful?
A38: The Sprite Pane lists all sprites in the project, allowing quick selection and management of their scripts/costumes.


Best Practices

Q39: Why should you Name Variables and Lists clearly?
A39: Clear names (e.g., score instead of var1) make code readable and easier to debug.

Q40: How does Code Organization improve collaboration?
A40: Grouping related scripts, using comments, and modularizing code with custom blocks help others understand and edit your work.


Advanced Topics

Q41: How do Clones simulate multiple objects (e.g., bullets in a game)?
A41: Use create clone of [myself] to spawn clones, then program their behavior with when I start as a clone blocks.

Q42: What is the purpose of the Pen Extension?
A42: The Pen tools let sprites draw lines/shapes on the stage, useful for creating art, graphs, or trail effects.


Advanced Animation

Q43: How can you simulate gravity in a Scratch jumping game?
A43: Use a variable gravity that decreases a sprite’s y position gradually, combined with a jump variable to propel it upward.

Q44: What is parallax scrolling, and how would you code it?
A44: Parallax scrolling creates depth by moving backdrops at different speeds. Use multiple sprites with layered backgrounds and loops to adjust their x positions.


Game Design

Q45: How do you program a power-up system (e.g., speed boost)?
A45: Use variables (e.g., speed) and conditional statements to detect power-up collection (e.g., if touching [power-up] then change speed by 2).

Q46: How would you design a multi-level game in Scratch?
A46: Use a level variable and switch backdrop to [level 2] blocks, with if statements to trigger new enemy spawns or challenges.


User Input & Interaction

Q47: How can a user type their name into a Scratch game?
A47: Use the ask [What’s your name?] and wait block, then store the answer in a variable like player_name.

Q48: How do you create a drag-and-drop puzzle game?
A48: Use when this sprite clicked and go to [mouse-pointer] blocks to let users drag sprites, and if touching [target] to detect correct placement.


Advanced Data

Q49: How would you use binary or hexadecimal numbers in Scratch?
A49: Convert numbers using custom blocks or lists (e.g., store binary digits in a list and update them with division/modulo operations).

Q50: How can you save game progress without cloud variables?
A50: Encode progress (e.g., level, score) into a string variable and let users copy it to reload later (e.g., "level3-score250").


Cross-Disciplinary Projects

Q51: How can Scratch model a scientific concept like photosynthesis?
A51: Use sprites for sunlight, water, and plants, with variables tracking "energy" and conditional statements triggering growth animations.

Q52: Design a math quiz with randomized questions.
A52: Use operators (pick random) to generate numbers, ask blocks for user answers, and variables to track correct responses.


Troubleshooting & Optimization

Q53: Why does a sprite sometimes "glitch" through walls? How to fix it?
A53: This happens due to fast movement. Use smaller steps in loops or check for collisions before moving (if not touching [wall] then move).

Q54: How do you reduce lag in a project with many clones?
A54: Limit clone numbers, use hide instead of delete for reusable objects, or simplify costume/backdrop details.


Creative Extensions

Q55: How do you integrate music notes into a Scratch project?
A55: Use the Music extension to play notes (e.g., play note 60 for 0.5 beats) and loops to compose melodies.

Q56: How can Scratch interact with external hardware (e.g., micro:bit)?
A56: Use Scratch’s extensions (e.g., micro:bit plugin) to send/receive data via Bluetooth or USB.


Collaboration & Ethics

Q57: What are ethical considerations when remixing someone’s project?
A57: Always credit the original creator, avoid plagiarizing, and respect licensing rules (e.g., Scratch’s "ShareAlike" licenses).

Q58: How can you collaborate on a team project in Scratch?
A58: Use comments to divide tasks, share sprites/code via backpacks, and merge work by importing scripts.


Experimental Features

Q59: How does Turbo Mode work, and when should you use it?
A59: Turbo Mode (activated by Shift+Clicking the green flag) speeds up scripts for testing but disables smooth animations.

Q60: What is the Video Sensing extension, and how is it used?
A60: It detects motion from a webcam. For example, use video motion on [sprite] to control a character with body movements.


Project-Based Learning

Q61: Design a weather app in Scratch. What blocks would you use?
A61: Use ask for location input, variables for temperature, and conditional statements to display animations (e.g., rain if temp < 10).

Q62: How would you simulate a traffic light system?
A62: Use sprites with red/yellow/green costumes and timed switch costume loops with wait blocks.


Theoretical Concepts

Q63: How does Scratch teach computational thinking?
A63: By breaking problems into steps (algorithms), debugging logic, and reusing modular code (abstraction).

Q64: What is event-driven programming? How is it used in Scratch?
A64: Code execution is triggered by events (e.g., clicks, broadcasts). Scratch uses hat blocks like when key pressed for event-driven logic.