#18 #19 En este caso concreto yo creo que lo mejor que puede hacer #1 es no preocuparse, ya le enseñaran lo que necesite en la universidad. La mayoria de la gente que entra, por lo menos que yo haya visto hace años, no sabe programar.
Ahora, ¿cual es el mejor metodo para enseñar a un ingeniero a programar? Teniendo en cuenta que un lenguaje es una herramienta mas y lo que se le debe enseñar a un ingeniero son fundamentos, creo que un deberia comenzar viendo lenguajes de muy bajo nivel asociado a las clases de arquitectura y a la vez de alto nivel e interpretado asociado a clases como algoritmos y estructura de datos.
Para el lenguaje de bajo nivel yo escogeria ensamblador(usaria mips por ejemplo). Basicamente, por lo que he dicho que te fuerza a entender conceptos sobre como funciona un ordenador. Para el de alto nivel, como dice, MacSpawn, python es una muy buena opcion. Por ejemplo, en las clases de estructura de datos en vez de hacer pseudocodigo se podria usar python para implementarlas en "pizarra" y luego en practicas usar C.
#20 yo creo que lo di en 2º o 3º, usando un pico