A design principle in Computer Science which dictates that a computer program can be split into distinct sections such as each section addresses a separate concern.

A program which embodies the principle of Separation of Concerns is also known as a modular program which is achieved through encapsulation of information inside a section of code that has a well-defined interface.