Antes de mais nada, veja se o aluno deseja aprender. De acordo com mim, os quebra-cabeças / exames baseados em inglês são inúteis. Provavelmente, eu poderia aceitar testar o inglês de uma pessoa, mas isso não deve ser baseado em um "teste". Deve ser baseado em como eles comunicam suas idéias. Pedir para que eles resolvam quebra-cabeças é apenas uma besteira.
Para ver o desejo deles de aprender, você pode questioná-los de várias formas. Supondo que seu currículo seja verdadeiro, procure uma pessoa com um bom conjunto de habilidades. Entreviste esse aluno com 2/3 pessoas que são versadas nessas habilidades (por exemplo, C ++ / C # / Java). Normalmente, na Índia, tenho visto alunos adicionar C / C ++ ao currículo, independentemente de quão confiantes estejam. Para testar se eles são bastante confiantes em C / C ++, teste-os no básico, como ponteiros / estruturas de dados relacionadas. Provavelmente, você também pode pedir que resolvam problemas simples ou depure um código com defeito etc.
Pessoalmente, não acho que o aluno deva ser da ciência da computação (nem eu). Se eles são do CS, testam-nos no básico - como autômatos, algoritmos, estruturas discretas, redes de computadores etc. etc. . Mesmo que eles não sejam do CS, com base em seu currículo, você pode fazer perguntas relacionadas à sua área de interesse. E, não basta ir por suas notas. Eles não são indicadores do seu conhecimento de programação.