¿Por qué aprendemos C en la universidad (y no en C ++)?

Sin más contexto, es difícil responder a esta pregunta, pero hay algunas razones por las que puedo pensar en por qué sería mejor enseñar a los estudiantes C en lugar de C ++.

  • En el contexto de una clase de arquitectura / organización, C está mucho más cerca del lenguaje ensamblador. Una de las ventajas de C ++ sobre C (y su razón de ser) es su mayor grado de abstracción. Sus características orientadas a objetos y la biblioteca de plantillas facilitan la descripción y definición de conceptos de alto nivel. En C, uno está mucho menos alejado de la estructura subyacente, y si el objetivo es enseñar a los estudiantes sobre esta estructura, entonces C es más útil. Primero me enseñaron C en un curso de arquitectura de computadoras: trabajamos desde el nivel del transistor, a través de puertas lógicas, hasta el código de máquina, y finalmente hasta C, donde concluyó el curso. C ++ y la implementación de OOP estaban más allá del alcance del curso.
  • C es más simple que C ++. Es un lenguaje mucho más pequeño con menos características y muchas menos sutilezas. Aprender C lo pone en una buena posición para aprender C ++ y, lo que es más importante, escribir un buen C ++.
  • En gran parte debido al punto anterior, algunas personas consideran que C es un lenguaje más agradable. No escala tan bien como C ++, pero carece de muchas características que son propensas a ser abusadas por programadores novatos. Alternativamente, a algunas personas no les gusta C ++ porque sienten que algunas de sus características modernas son groseras e incorporadas de manera poco elegante al lenguaje.
  • C tiene valor como lenguaje histórico. Fue uno de los primeros lenguajes portátiles de alto nivel (aunque hoy en día no se considera de alto nivel). Se utilizó para construir muchas de las tecnologías principales que dan forma al entorno informático actual. C ++ también se ha utilizado en una gran cantidad de software importante (y en algunos casos reemplaza el uso de C hoy, por ejemplo, GCC), pero no creo que haya tenido el efecto revolucionario que tuvo C. Si estoy equivocado sobre esto, alguien por favor corrígeme.

La Universidad Estatal de Ohio (cuando asistí) comenzó con Java y C ++. C era un curso electivo de 1 crédito.

Diferentes universidades usan diferentes idiomas y TODOS tienen sus razones. Simplemente demuestra las innumerables formas de abordar la programación y el aprendizaje de la programación.

C ++ está orientado a objetos, y la OOP en otras escuelas es un curso separado además de la introducción a la programación. Además, C es muy popular en algunos sistemas de desarrollo donde C ++ no es una opción.

Porque se supone que C es más simple. Esto es desafortunado porque muchas personas desarrollan programas de malos hábitos en C y nunca se vuelven competentes en OOP y los lenguajes OO como Java y C ++.

Sería mejor enseñar un idioma OOP primero porque los malos hábitos consumen mucho tiempo y son difíciles de romper.

C es un subconjunto del mundo OOP y en realidad debería enseñarse más tarde.

Estoy seguro de que la lista de razones podría ser tan larga como la lista de instructores, pero al menos cuando he dado cursos basados ​​en C, se debe a que C es lo suficientemente pequeña y transparente como para que los estudiantes puedan recogerla razonablemente en el lado y tener una idea de lo que está sucediendo, a pesar de que el lenguaje de implementación no es exactamente de lo que se trata el curso. C ++ puede ser una herramienta más poderosa en muchos contextos, y trato de señalar dónde podrían haber sido útiles sus abstracciones adicionales, pero usarlas realmente no ayuda si significa que se debe dedicar más de la mitad del tiempo de un estudiante a calcular exactamente lo que significan.

Una sólida comprensión de C es un buen comienzo si quieres pasar a C ++ de todos modos.

Pregunta a tus profesores. Muchas universidades enseñan C ++ (o Java, o Python, o LISP o algo más).