Back to 课程

Computer Science AS OCR

0% Complete
0/0 Steps
  1. 1-1-structure-and-function-of-the-processor as
    5 主题
  2. 1-2-types-of-processor as
    3 主题
  3. 1-3-input-output-and-storage as
    2 主题
  4. 2-1-systems-software as
    8 主题
  5. 2-3-software-development as
    5 主题
  6. 2-4-types-of-programming-language as
    4 主题
  7. 3-1-compression-encryption-and-hashing as
    3 主题
  8. 3-2-databases as
    3 主题
  9. 3-3-networks as
    8 主题
  10. 3-4-web-technologies as
    13 主题
  11. 4-1-data-types as
    8 主题
  12. 4-2-data-structures as
    4 主题
  13. 4-3-boolean-algebra as
    1 主题
  14. 5-1-computing-related-legislation as
    4 主题
  15. 5-2-moral-and-ethical-issues as
    9 主题
  16. 6-1-thinking-abstractly as
    3 主题
  17. 6-2-thinking-ahead as
    1 主题
  18. 6-3-thinking-procedurally as
    3 主题
  19. 6-4-thinking-logically as
    2 主题
  20. 6-5-thinking-concurrently as
    2 主题
  21. 7-1-programming-techniques as
    9 主题
  22. 8-1-standard-algorithms-and-big-o-notation as
    8 主题
课 Progress
0% Complete

Exam code:H046

Programming Paradigms

What are programming paradigms?

  • Programming paradigms are established conventions and practices that dictate how computer programs are structured and developed

  • Programming paradigms offer varied methodologies for software construction

  • Different paradigms are suited to different tasks, e.g. simple web applications can be achieved with light-weight procedural languages, complex enterprise-level software can only be achieved with a complex object-oriented paradigm

  • New paradigms arise, and existing ones adapt in response to changes in computing and software challenges

Overview of programming paradigms

Paradigm

Description

Examples of Languages

Key Concepts

Procedural

A subtype of imperative, structured around procedure calls.

C, Go, Rust

Procedures, function calls, structured programming

Object-Oriented

Organises code around “objects” (which combine data and functionality) rather than functions.

Java, C#, Swift

Classes, inheritance, polymorphism, encapsulation

Assembly

Low-level mnemonic representation of machine code for a specific computer architecture.

x86-64 Assembly, ARMv8 Assembly

Registers, mnemonics, memory addresses, opcodes

Strengths & weaknesses of programming paradigms

Paradigm

Strengths

Weaknesses

Procedural

  • Efficient execution of straightforward tasks

  • A clear flow of control (top to bottom)

  • Ease of implementation for algorithms

  • Strong emphasis on step-by-step procedure execution

  • Can become unwieldy for large programs

  • Lack of modularity can lead to code redundancy

  • Not ideal for applications with complex states or behaviours

  • Difficulty in managing and scaling the system as it grows

Object-Oriented

 

  • Enhances modularity with encapsulation

  • Enables real-world modelling using objects

  • Code reuse through inheritance

  • Polymorphism allows flexibility in interface design

  • Can lead to unnecessary complexity

  • Inefficiency due to overhead (e.g., memory for objects)

  • Not always intuitive for all types of problems

  • Misuse can lead to overly complex inheritance hierarchies

Assembly

  • Direct control over hardware

  • Optimised performance due to low-level operations

  • A transparent understanding of how the machine operates

  • Potential for very efficient code

  • Extremely steep learning curve

  • Hardware-specific, leading to a lack of portability

  • Tedious and error-prone due to manual memory management.

  • Difficult to write, debug, and maintain large programs

Responses

您的邮箱地址不会被公开。 必填项已用 * 标注