A procedural programming language is a language that specifies a series of steps and procedures. It contains a systematic order of statements, functions and commands completed by a computational task or program.
A procedural program will organise the instructions into blocks of code that are called subroutines and functions, or procedures, each of which handles one particular task.
Top down is when you take a program at the beginning and set a main goal for the project.
We then take that and make it into certain achievable objective these are called subroutines. Which are small parts of the program that achieve the main goal.
The sub routine consists of functions that complete smaller tasks to complete the overall goal.