Programmable Systems & Programming Languages
What Makes a System Programmable?
A programmable system differs from a fixed (hard-wired) circuit because its behaviour is controlled by software — a set of instructions stored in memory — rather than by the physical arrangement of components alone. In a hard-wired circuit, changing what the circuit does means physically re-wiring it. In a programmable system, the same hardware can be given an entirely new function by rewriting the program. This flexibility is one of the greatest advantages of programmable systems in engineering design.
Microcontrollers
A microcontroller is a compact integrated circuit containing a processor (CPU), program memory (flash), data memory (RAM), and configurable input/output (I/O) pins — all on a single chip. It reads inputs from sensors and switches, executes a stored program, and produces outputs to control actuators and displays. Well-known microcontroller platforms include the Arduino (using the ATmega328P) and the BBC micro:bit. Microcontrollers are ideal for low-power, low-cost, embedded applications where a full computer would be excessive — for example, a smart thermostat, a traffic light controller, or an automatic plant watering system.
The advantages of using a microcontroller include: flexibility (the program can be changed without hardware alteration); reduced component count (one chip replaces many logic ICs); low cost for mass production; and reliability (no moving parts). The disadvantages include: the need for programming skills to write or modify the code; dependence on a power supply that does not fail; and potential vulnerability to software bugs that can cause unpredictable behaviour.
Advantages of a programmable system over hard-wired: easily reprogrammed, reduced component count, flexible for multiple applications, easier to update or correct. Disadvantages: requires programming knowledge, relies on power supply stability, software bugs can cause faults, initial setup is more complex than simple hard-wired circuits.
Programmable Logic Controllers (PLCs)
A Programmable Logic Controller (PLC) is a specialised industrial microcontroller built for harsh environments — it is designed to be shock-resistant, tolerant of temperature extremes and electromagnetic interference, and capable of controlling multiple high-power outputs simultaneously. PLCs are programmed using ladder logic (a graphical language resembling relay circuit diagrams) or structured text, and are used extensively in factories, water treatment plants, and automated assembly lines. Compared to a general-purpose microcontroller, a PLC is more expensive, but far more robust and better suited to safety-critical industrial environments where reliability is paramount.
Types of Programming Language and Systems
There are three types of programming language or system to know. A text-based language (such as Python, C, or C++) uses written code consisting of commands, variables, and syntax rules. It is the most powerful and flexible option, offering full control over system behaviour, but requires the programmer to learn the language syntax and is harder for beginners to read. A block-based editor (such as Scratch, MakeCode, or MIT App Inventor) represents program instructions as visual blocks that snap together, eliminating syntax errors and making logic easy to see — ideal for beginners and for teaching purposes, but less efficient for complex programs. A flowchart system (such as Flowol or similar graphical tools) uses standard flowchart symbols (start/stop ovals, process rectangles, decision diamonds) connected by arrows to represent program logic — visual and easy to plan, but can become cluttered for large programs and is not used in professional development.
Text-based: most flexible, full control, but requires syntax knowledge and harder for beginners. Block-based: no syntax errors, visually clear, easy for beginners, but less efficient for complex tasks. Flowchart: easy to plan logic visually, but cluttered for large programs and not used professionally. You are not required to write code in any specific language.
A microcontroller (e.g. Arduino, micro:bit) is a low-cost, compact chip typically used in prototyping, educational projects, and consumer electronics. It is programmed via a USB connection from a laptop and runs on 3.3 V or 5 V. A PLC is a larger, more expensive, industrial-grade unit designed for continuous operation in electrically noisy factory environments — it operates from 24 V DC or 110/240 V AC, has screw-terminal I/O connections for industrial wiring, and is built to safety standards that a microcontroller does not meet. For a school project controlling LEDs and a buzzer, a microcontroller is entirely suitable. For controlling a bottling plant's conveyor and filling machines that must run 24 hours a day without failure, a PLC is the appropriate choice.
When an OCR exam question asks you to recommend a programming language type, consider the user's experience and the complexity of the task. A Year 7 student creating a simple flashing LED sequence: block-based editor — no syntax to learn, immediate visual feedback, drag-and-drop makes it accessible. A university engineer writing firmware for a commercial product: text-based language (C or Python) — full control over memory and timing, code can be optimised, and it integrates with professional toolchains. A teacher planning the logic of a new control system before implementation: flowchart system — easy to map out decision trees and loops before writing any code, acts as a design document. You need to compare the relative merits for a given application — always state why the chosen type suits the context, not just what its general advantages are.