A programming language is a description of the behavior of how a program should behave as written by a programmer. This programming language-written program is what is translated directly into an executable program that is run on a computer.
Pseudocode is similar to a programming language but is not expected to be translated into an executable program. It is a generic description of what a program should do written in a form that is not specific to any particular programming language. Its like a generic programming language that only people are expected to read.
An algorithm is a description of a sequence of steps needed to solve a particular problem. The notion of an algorithm has been around for centuries. An algorithm can be described and implemented in a programming language, be describe only in pseudocode, or simply be a set of steps described in human language.