O que é Tipos Abstrados de Dados?

Alguém sabe me explicar o que são Tipos Abstratos de Dados?

Aqui : Linguagem de Programação - Parte II

Tipos abstratos são tipos definidos pelo usuário , exemplo. Vc pode criar uma classe aluno contendo uma variável do tipo string para o nome e uma variável do tipo real para nota.

Logo “aluno” é um tipo abstrato de dado criado por vc, que pode ser instanciado como qualquer outra variável.[/code]