Paradigms (Cambridge International A-Level Computer Science)
Exam board Cambridge International · A-LevelUpdated 2025-05-20
Paradigms
What is a programming paradigm?
-
A programming paradigm is a style or approach to programming that influences:
- How programs are written
- How problems are broken down
- How solutions are structured
-
Different paradigms are suited to different types of problems and systems
Programming paradigms comparison table
| Paradigm | Description | Key characteristics | Examples |
|---|---|---|---|
| Low-level | Closest to machine code, using mnemonics to directly control hardware | - Direct memory access - Register manipulation - Hardware-specific instructions | x86 Assembly, ARM Assembly |
| Imperative (Procedural) | Tells the computer how to perform tasks using sequences of commands | - Step-by-step instructions - Use of loops, conditions -Procedures/functions | C, Pascal, Python (procedural) |
| Object-Oriented | Models real-world entities using objects that combine data and behaviour | - Classes and objects - Encapsulation, inheritance, polymorphism - Modularity | Java, C++, Python (OOP) |
| Declarative | Describes what should be done, not how to do it | - Rule-based or logic-based - No explicit control flow - Focus on outcomes/results | SQL, Prolog, Haskell |
Strengths and weaknesses of programming paradigms
| Paradigm | Strengths | Weaknesses |
|---|---|---|
| Procedural | - Clear flow of control (top to bottom) - Efficient for simple tasks - Easy to implement algorithms - Strong step-by-step logic | - Becomes hard to manage in large programs - Poor modularity can lead to redundancy - Not ideal for complex state-based systems |
| Object-Oriented | - Enhances modularity with encapsulation - Real-world modelling via objects - Code reuse through inheritance - Polymorphism for flexible interfaces | - Can become overly complex - Slower due to object overhead - Misuse leads to bloated hierarchies - Not ideal for every problem |
| Low-Level (Assembly) | - Complete control over hardware - Highly optimised for performance - Transparent view of machine operations | - Steep learning curve - Hardware-specific, not portable - Manual memory management is error-prone - Difficult to debug/scale |
| Declarative | - Focuses on the result rather than the process - Concise and expressive - Suitable for complex logic or rule-based problems (e.g. AI, SQL queries) | - Harder to learn for beginners - Less control over program flow - Not suited for all types of problems - Debugging can be challenging due to abstraction |
Was this revision note helpful?
Build on this topic