Types:

Imperative Programming:

In imperative programming computations are sequences of statements that change the program’s state

x = 41
x = x + 1

Structured Programming:

Structured programming organises programs with subroutines and structured control flow constructs;

sum = 0
for x in array:
	sum += x

Object Orientated Programming:

Object-oriented programming organises programs into objects that contain data and encapsulate behaviour;

animal = Dog()
animal.makeNoise()

Functional Programming:

In functional programming programs are mathematical functions and avoid explicit change of state;

fib = lambda x, x_1 = 1, x_2 = 0: x_2 if x == 0 else fib(x-1, x_1 + x_2, x_1)