A programming paradigm is a paradigmatic style of programming (compare with a Methodology which is a paradigmatic style of doing software engineering).
The programming paradigm involved provides (and determines) the view that the programmer has of the execution of the program: in the case of object-oriented programming, for instance, the programmer sees the execution of the program as a collection of dialoguing objects, while under functional programming the execution is seen as a sequence of state-less function evaluations.
Just as different schools of software engineering advocate different methodologies, different programming languages advocate different programming paradigms. Most languages are designed to support a particular paradigm (Smalltalk and Java support object-oriented programming while Haskell and Scheme support functional programming, for example), but some are capable of supporting multiple paradigms (such as Common Lisp, Python, and Oz.) The relationship between paradigms and languages can be quite complex, however: C++, for instance, adds aspects of object-oriented programming to C, a structured programming language.
Cutting and pasting code is not a programming paradigm: rather, it is a source code editing technique. The end result of a cut and paste session can be a program that fits any of the existing paradigms.
Contrasted paradigms:
Non-contrasted paradigms:
Candidate paradigms: