Gostaria de sugerir que fosse abordado na aula sobre Scanner, que, dependendo da ordem em que tipos diferentes são lidos, pode acarretar em erro de leitura.
Por exemplo, o código
int idade = Scanner.nextInt();
String nome = Scanner.nextLine();
double altura = Scanner.nextDouble();
irá gerar um erro de tempo de execução. Mais especificamente, a leitura da String será "pulada".
Isso acontece, pois o caractere de nova linha, ou "\n", (equivalente a pressionar a tecla "Enter") não é capturada pelo nextInt(), mas permanece no buffer (fila de entrada do teclado). Logo, o nextLine() entende que esse "\n" foi intencionalmente inserido pelo usuário e guarda essa informação na variável nome.
Uma forma de "resolver" essa questão é realizando uma leitura "vazia" sempre depois de qualquer leitura numérica (int ou double), para pular o caractere de nova linha.
Então o código corrigido seria:
int idade = Scanner.nextInt();
Scanner.nextLine();
String nome = Scanner.nextLine();
double altura = Scanner.nextDouble();
// como não há leitura de String após altura, a leitura vazia é opcional neste caso