01202 006 464
learndirectPathways

Procedural, Object-Oriented and Event-Driven Programming

Podcast episode 18: Procedural, Object-Oriented and Event-Driven Programming. Alex and Sam explore key concepts from the Pearson BTEC Higher Nationals in Digital Technologies. Full transcript included.

Series: HTQ Digital Technologies: The Study Podcast  |  Module: Unit 4: Programming  |  Episode 18 of 80  |  Hosts: Alex with Sam, Digital Technologies Specialist
Key Takeaways
  • Procedural programming organises code as a sequence of instructions and function calls, making it intuitive for solving clearly defined, sequential problems but less suited to large-scale, complex software systems.
  • Object-oriented programming (OOP) models the world as a collection of objects, each with its own data and behaviour, enabling code to be organised, reused and maintained more effectively at scale.
  • The four core principles of OOP (encapsulation, abstraction, inheritance and polymorphism) provide powerful tools for managing complexity in large software systems and are central to most modern programming practice.
  • Event-driven programming responds to user actions or system events rather than executing instructions in a fixed sequence, and is the dominant paradigm for graphical user interfaces, web applications and IoT systems.
  • Most modern software combines elements of multiple paradigms: understanding the strengths of each allows you to make informed choices about how to structure your code for different types of problem.
Listen to This Episode

Listen to the full episode inside the course. Enrol to access all 80 episodes, plus assignments, tutor support and Student Finance funding.

Start learning →
Full Transcript

Alex: Hello and welcome back to The Study Podcast. I'm Alex, Sam is here, and today we're looking at programming paradigms: procedural, object-oriented and event-driven. Sam, why does it matter which paradigm you use?

Sam: Because the paradigm you choose shapes the structure of your entire programme. It influences how you think about the problem, how you organise your code, how you manage complexity as the programme grows, and how easy it is for other developers to understand and work with your code. Choosing the wrong paradigm for a given problem doesn't necessarily make the programme impossible to write, but it can make it significantly harder and the result harder to maintain.

Alex: Let's start with procedural programming, which is often where people begin.

Sam: Procedural programming is the most intuitive for beginners because it maps closely to how we naturally think about sequential tasks. You write a series of instructions that the computer executes in order, top to bottom, with the ability to jump to named functions or procedures when you want to reuse a block of logic. Languages like C and early Python encourage a procedural style. It works well for straightforward, linear problems but can become unwieldy as programmes grow in complexity.

Alex: And object-oriented programming is the dominant paradigm in most professional development?

Sam: It has been for the last thirty years or so, yes. Object-oriented programming organises code around objects, which are combinations of data and the functions that operate on that data. The core principles are encapsulation, hiding the internal details of how something works behind a clean interface; abstraction, representing complex things in simplified ways; inheritance, allowing new types to reuse and extend the behaviour of existing ones; and polymorphism, allowing different types of objects to be treated interchangeably when they share a common interface. Java, C++, Python and many other widely used languages are designed with OOP in mind.

Alex: Can you give a simple example of how OOP changes the way you think about a problem?

Sam: Sure. Imagine you're building software for a library. In a procedural approach, you might write separate functions for 'add book', 'search book', 'borrow book' and so on, and you'd pass around data structures representing books and members. In an OOP approach, you'd create a Book class that knows its title, author and availability status, and has methods for being borrowed and returned. You'd create a Member class that has a list of borrowed books and methods for borrowing and returning. The code more closely reflects the real-world entities and relationships, which tends to make it easier to reason about and extend.

Alex: And event-driven programming is a bit different from both of those.

Sam: It's a different model of control flow. Rather than the programme running from top to bottom or according to a predefined sequence, an event-driven programme sits and waits for events to occur, such as a user clicking a button, a network request arriving or a timer firing, and then executes the appropriate handler code in response. This is the model underlying essentially all graphical user interfaces, web servers and IoT systems. It can be harder to reason about because the order of execution depends on what events happen and when, which can vary unpredictably.

Alex: Most modern software combines elements of all three?

Sam: Absolutely. A modern web application might use OOP to model its domain entities, event-driven programming to handle user interactions on the frontend, and procedural code for simpler utility functions. The skill is in knowing which approach serves which situation best.

Alex: Excellent. Thanks, Sam. Next we'll actually write some code using an IDE.