¿Por qué los estudiantes de primer año de ingeniería aprenden lenguaje C antes de Java, mientras que los estudiantes de primer año de ciencias de la computación solo aprenden Java?

Encontrarás diferentes idiomas y diferentes requisitos en los programas de grado de diferentes instituciones.

Dicho esto, aquí hay algunas razones típicas por las que se les pedirá a los estudiantes de ingeniería que aprendan C:

  • C es el lenguaje de alto nivel más utilizado en sistemas integrados, controladores de dispositivos y sistemas operativos. Los ingenieros a menudo se encontrarán trabajando a ese nivel, por lo que un conocimiento de C es valioso.
  • Aprender a programar en C le proporciona una mejor comprensión de los fundamentos de lo que realmente está sucediendo en el sistema (por ejemplo, tratar con direcciones de memoria, manejar la memoria, depurar en el nivel de instrucción de máquina nativa, etc.). Los lenguajes como Java te ocultan esto. Los ingenieros necesitan conocer los detalles básicos de cómo funcionan realmente las cosas.

La informática a veces es menos acerca de los detalles de bajo nivel (aunque depende de la escuela), pero afirmaría que los estudiantes de informática también deberían aprender C, para tener una mejor apreciación y comprensión de los fundamentos y qué orientado a objetos los idiomas traen a la mesa.

Lo llevo un paso más allá: tanto los estudiantes de ingeniería como de ciencias de la computación deben aprender al menos un lenguaje ensamblador (ya sea en clase o solos). Hacerlo les brinda una comprensión más profunda de los fundamentos de la arquitectura de computadoras y una mejor comprensión de cómo funcionan los compiladores. También ayuda a poder depurar mejor el código a nivel de instrucción.

Aprender un lenguaje de programación consiste en aprender dos cosas:

# 1 Los mecanismos fundamentales y las declaraciones contenidas en todos los lenguajes de programación originales de alto nivel, tales como El lenguaje C: 1) variables y asignación, 2) cálculos simples usando variables, 3) declaraciones if y loop basadas en el salto condicional, y 4) creando y usando funciones.

# 2 Luego aprende el mecanismo de objetos que crea objetos usando la palabra clave: clase o estructura. Los objetos son un mecanismo adicional a los mecanismos del lenguaje original que aprendiste en el n. ° 1. Los objetos no reemplazan los mecanismos en el n. ° 1, los objetos se usan para organizar, mejorar y automatizar los mecanismos en el n. ° 1.

Java, C ++, C # y todos los lenguajes modernos consisten en # 1 y # 2.

En resumen, todos enseñan idiomas modernos primero enseñando el n. ° 1 y luego enseñando el n. ° 2, que agrega el mecanismo de objeto al n. ° 1.

Si primero tomó un curso de C y luego un curso de Java, el instructor de Java omitiría las cosas de Java # 1 que ya aprendió en su curso de C y él iría directamente a las cosas de Java # 2, el objeto.

PD Todos los lenguajes modernos (Java, C ++, C # pero con la excepción de los lenguajes de programación funcional) tienen los mismos mecanismos básicos de lenguaje. Es solo la sintaxis la que cambia para molestarnos a los viejos programadores.

En que escuela No creo que haya ningún requisito de idioma específico aceptado en todas las universidades. Cuando fui al MIT en 1980, los estudiantes de CS y EE aprendieron LISP y Algol, que eran lenguajes de investigación populares. Los que están fuera de la escuela EECS generalmente aprendieron Pascal, un idioma “más fácil”.

Esta sería una pregunta para hacerle al personal de tu universidad. No creo que toda la escuela enseñe Java o C a estudiantes de primer año. Esto podría haber sido común desde finales de 1900 hasta principios de 2000. Me imagino que el curso podría incluir Python o MathLab. Dicho esto, piense en la naturaleza de la ingeniería frente a la informática, en ingeniería necesitaría comprender cómo funciona el hardware, por lo que C puede exponerlo fácilmente al hardware, pero Java lo oculta y hace que sea más fácil codificar que C.Aunque Java es más fácil de codificar que C, se puede hacer que haga exactamente lo que usted como Java también le ofrece un gran conjunto de características estándar.

C se usa comúnmente en sistemas embebidos y se usa con más frecuencia que Java para la computación numérica.