¿Cómo se les enseña a los estudiantes de las universidades indias la programación?

Pregunta del examen: Escriba un programa para imprimir un cuadrado vacío con 10 unidades laterales usando * .


Solución estándar (del manual) –

  1. int main ()
  2. {
  3. para (int a = 1; a <= 10; a ++)
  4. {
  5. cout << "*";
  6. }
  7. cout << endl;
  8. para (int b = 1; b <= 8; b ++)
  9. {
  10. para (int c = 1; c <= 1; c ++)
  11. {
  12. cout << "*";
  13. }
  14. para (int d = 1; d <= 8; d ++)
  15. {
  16. cout << "";
  17. }
  18. cout << "*" << endl;
  19. }
  20. para (int e = 1; e <= 10; e ++)
  21. {
  22. cout << "*";
  23. }
  24. devuelve 0;
  25. }

Mi solución-

  1. int main () {
  2. para (int x = 0; x <10; x ++) {
  3. para (int y = 0; y <10; y ++)
  4. if (y == 0 || y == 9 || x == 0 || x == 9) printf (“*”);
  5. sino printf (“”);
  6. printf (“\ n”);
  7. }
  8. }

Resultado – 3/20.


Conversación con mi prof.

Yo: Señor, ¿por qué me diste tan bajas calificaciones?

Prof: Tu código está equivocado.

Yo: Señor, ¿cómo podría estar mal? Imprime el resultado exacto requerido !!!

Prof: Pero tu código tiene solo 6 líneas de largo. El código correcto es de aproximadamente 25 líneas. Consulte el manual.

Yo: Pero señor, ¿qué tiene que ver la longitud del código con su corrección? Mi código imprime el resultado exacto requerido.

Prof: ¿Sabes cuánto tiempo llevo enseñando aquí? 25 años.   ¿Crees que eres el primer estudiante que intenta engañarme? El código correcto tiene 5 para bucles. Su código solo tiene 2. No intente actuar de manera inteligente conmigo. Ahora salga antes de deducir 2 puntos más de su total.

Yo: WTF !!!


EDITAR:

Ahora que esta respuesta está ganando una gran atención, pensé que debería agregar algunos incidentes más. Aunque no están estrictamente relacionados con la enseñanza, sin embargo, demuestran mucho el lamentable estado de la educación informática.

Como mi universidad es una universidad típica del gobierno, sucede que algunos de los profesores fueron nombrados por métodos no convencionales (leer corrupción / fuente). ¿Cómo puedo saber? Bueno, estos profesores tienen cero conocimiento sobre computadoras. CERO. En realidad, si el mundo fuera justo, estos profesores ni siquiera habrían calificado para ser barrenderos.

Uno de esos profesores está muy arriba en la jerarquía del Departamento de Computación. Es famoso por soltar la mierda más idiota cada vez que abre la boca.

Estas son algunas de sus citas ultra estúpidas, que desde entonces se han convertido en leyenda en mi universidad:

1)

Un grupo fue a él para mostrarle un sitio web que habían construido. Cuando comenzaron con la demostración, el sitio web no se abrió. Lo intentaron y lo intentaron pero no pudieron.

Prof (sonriendo): “Kya hua bachho, kuch problema hai?” (¿Qué pasa?)

Estudiantes: “Sir pata nahi par localhost ki vajah se kuch problem aa rahi hai”. (Señor, hay algún problema con localhost)

Profesor (en tono autoritario):Kon hai ye localhost. Bula ke lao ise meros paas. Le enseñaré una lección ” (¿Quién es este localhost? Ve y tráelo. Le enseñaré una lección)

Pensó que localhost era una persona: ¡anfitrión local! WTF !!!


2)

Un día, comenzó a discutir con un grupo de estudiantes la condición de los laboratorios de computación en el departamento.

Él: “Mera pak ek achha idea hai. Ham log apne labs ke saare computadoras me windows 8 daal dete hain. Abeto hamare computadoras bhi pantalla táctil ho jayenge”. (Tengo una idea brillante. Instalemos Windows 8 en todas las computadoras de nuestro laboratorio. Luego, todas nuestras computadoras se convertirán en pantallas táctiles).

¡¡¡Épico!!!

Suena demasiado estúpido para ser verdad. Pero desafortunadamente lo es.

ACLARACIÓN:

Un comentario señaló que esto parece sarcasmo. Me gustaría aclarar que no fue así. Estaba haciendo estas declaraciones en serio. Créame.


Hay otro profesor en nuestro departamento. Un día, recibió una llamada de un número de teléfono desconocido.

Persona que llama: “Señor, estoy hablando desde su banco. ¿Su número de cuenta es xxxxxxxxx?”

Prof: “Sí”

Persona que llama: “Señor, parece que hay algún problema técnico en su cuenta debido a que su cuenta ha sido bloqueada. Si desea reanudarlo, por favor proporcione los siguientes detalles”

Prof: “Ok … Aquí están mis detalles”

y él da todos los detalles, incluido su pin de cajero automático.

En unos minutos, su cuenta fue borrada.

Un simple ataque de ingeniería social. ¿Qué tiene de bueno esta historia?

Bueno, este profesor enseña el curso de SEGURIDAD CIBERNÉTICA.


Y para colmo, simplemente admire el siguiente hecho:

Tuvimos el curso ALGORITMS en tercer año. Y no había laboratorio asignado para este curso. Fue puramente basado en la teoría.

Era como Umbridge en Harry Potter y la Orden del Fénix había hecho que la Defensa contra las Artes Oscuras se basara exclusivamente en la teoría.

Solo que peor.

Porque Harry Potter es fantasía.

Y esta es la vida real.


Ni soy de una universidad de nivel 1 , ni la programación en mi universidad se enseña como se menciona en la mayoría de las respuestas aquí. De hecho, es bastante contrastante. Intentaré resumirlo:

  • En nuestro primer laboratorio del curso de Programación C (primer semestre) nos presentaron los comandos básicos de Linux y VIM . Todas las máquinas en el laboratorio ejecutaban Linux (no recuerdo qué distribución, pero creo que fue Mint). Fuimos estrictamente instruidos para usar VIM durante todo el curso.

    PD: Al principio pensé que la universidad no podía pagar la licencia de Windows, así que están usando Linux. Ahora me doy cuenta de lo tonto que era .

  • En nuestro segundo semestre tuvimos un curso: Taller de TI . Cubrió gran cantidad de herramientas como:
    1. SED
    2. Bash
    3. Matlab
    4. Dia
    5. GNUplot
    6. LaTex
    7. Netbeans IDE, etc.
  • En el curso de Organización y arquitectura de computadoras, se nos pidió que diseñáramos nuestro propio ISA (Arquitectura de conjunto de instrucciones) y un ensamblador para el mismo en C / C ++.
  • El curso de estructuras de datos no fue totalmente teórico, nos dieron ideas también como los registros de activación en recursividad, memoria de pila y montón y cómo son diferentes de las estructuras de datos de pila y montón, cuándo usar qué estructura de datos y demás … Los laboratorios se basaron en implementación de lo que estudiemos en nuestra clase. La vida del laboratorio se centró más en los conceptos que en el aprendizaje de memoria.
  • El diseño y análisis de algoritmos fue el mejor curso de mi vida. No tengo palabras para describir su experiencia. Las preguntas en los exámenes se basaron absolutamente en la aplicación y fueron un tipo de preguntas que esperará en una entrevista. Eran totalmente nuevos, al menos para nosotros. El único problema era que no había laboratorios, pero siempre se puede practicar en el albergue.

    Recuerdo, una vez que los estudiantes estaban sentados en las escaleras de la sala de conferencias solo para asistir a la clase. (¡ Todos los asientos de LH estaban llenos! )

  • En el curso de Sistemas Operativos se nos permitió elegir un proyecto de nuestra elección. Desarrollamos una utilidad para compartir el portapapeles del sistema (Kollaborate). Fue una gran experiencia de aprendizaje.
  • Aquí hay una captura de pantalla de un correo electrónico que recibimos para el curso de Ingeniería de Software :

Bueno, al final eres tú quien tiene que dar un paso adelante, la universidad no puede hacer todo . Lamentablemente , hay muchas personas de CS en nuestra universidad que todavía usan Windows y el bloc de notas.

EDITAR: Estoy estudiando en LNMIIT, Jaipur.

¡¡OKAY!! He visto varias respuestas sobre cómo se les está enseñando a la gente la programación de computadoras en las facultades de ingeniería y descubrí que son ridículas. Por lo tanto, supongo que se ha convertido en una idea errónea para muchas personas que los maestros en las universidades indias son tontos y que los estudiantes toman muchas formas ridículas para obtener el resultado deseado por las buenas y por las malas y lograr obtener la máxima puntuación.

¡Entonces, decidí escribir esta respuesta para dejar en claro que existen algunas universidades en la India que le dan mucha importancia a los conceptos de programación y se aseguran de que los estudiantes realmente aprendan algunas cosas! Y confía en mí, ¡esta respuesta va a ser muy larga!

Soy un estudiante de tercer año de Ciencias de la Computación en NIT Calicut, Kerala. Se sabe que nuestra universidad tiene uno de los planes de estudio más exigentes del país. También nuestra facultad, la facultad de ciencias de la computación en particular, está altamente calificada y tiene experiencia. Todos los cursos relacionados con las ciencias de la computación están presentes en Moodle / Eduserver, donde se publican todos los cursos, material relevante, tareas, soluciones de prueba, etc., se envían las tareas y se publican foros de preguntas y respuestas por parte del profesorado.

En nuestro tercer semestre, tuvimos un curso de “Fundamentos de programación” donde teníamos el esquema MIT / GNU, un lenguaje de programación funcional. También tuvimos un curso de laboratorio sobre lo mismo. Todo el curso de laboratorio se dividió en cuatro pruebas de diseño, cada una con 25 puntos.

Las sesiones de diseño fueron programadas los jueves. El procedimiento para un diseño fue así. Primero, nos hicieron sentar en una clase y la sesión de diseño se llevó a cabo durante una hora. En esa hora, se hizo la pregunta y se nos requeriría escribir el algoritmo, la función principal completa y las especificaciones de las subfunciones que necesitaríamos para resolverlo. Esta sesión sería de 1.30 p.m. a 2.30 p.m. Luego, se recogerían las hojas de respuestas y se declararía la fecha límite de envío del código a las 7 u 8 pm del mismo día. Tuvimos que codificarlo de la misma manera que nuestro algoritmo fue escrito y enviar el código cumplido antes de la fecha límite. Cualquier desviación del código del diseño daría lugar a una penalización.

Luego vendría la sesión de evaluación, probablemente en la próxima semana de la presentación. El esquema de evaluación se cargaría en el eduserver y las hojas de diseño se evaluarían de 15 puntos según el esquema de evaluación y se devolverían a los estudiantes. Ahora, seríamos analizados según nuestras marcas de diseño. Solo aquellos estudiantes con calificaciones de más de 5 de 15 podrían descargar sus códigos, que se evaluarían de 10 en función de la salida y las desviaciones del diseño presentado. Para los otros estudiantes cuyas calificaciones están por debajo de 5, su envío de código no se considerará en absoluto y se cargará una pregunta de modificación por separado y se les requerirá que la programen dentro de 2 horas. Ese código sería evaluado por solo 5 puntos. Por lo tanto, sus calificaciones serían 10 como máximo (<5 puntos para diseño + máximo 5 para modificación) de 25. Y créanme, la política de evaluación es tan dura que entre el 40 y el 50% de los estudiantes no obtienen el 30% ( 5 puntos de 15) en el diseño.

Luego, llegando al cuarto semestre, tuvimos un curso y laboratorio de estructuras de datos. ¡Ahora, esto fue aún más difícil! Este curso se dividió en 8 tareas, cada una para 8 puntos y 3 exámenes, cada uno para 20 puntos. ¡Y este curso literalmente nos robó nuestros fines de semana! Principalmente porque enviamos una tarea el domingo o un examen la próxima semana durante todo el semestre. Al comienzo del semestre, teníamos un examen basado en nuestro conocimiento de C / C ++ para dividir a los estudiantes en dos lotes, a saber, el lote ‘principal’ y el ‘avanzado’, el avanzado era el lote de mejores estudiantes y desafortunadamente estaba en el lote avanzado !!

Este curso continuó así. Cada semana alternativa, se cargarían las tareas principales y avanzadas y se anunciaría la fecha de envío, que generalmente sería las 5.00 p. M. Del domingo de la próxima semana inmediata para el lote de la red y las 5.00 p. M. Del martes para el lote avanzado. Se requeriría que los estudiantes de lotes avanzados hicieran tanto la tarea principal como la tarea avanzada. Gracias a la vida de B.tech, el 90% de nosotros comenzaríamos nuestra tarea solo los viernes. Y literalmente solía ser muy doloroso codificar nuestras tareas, mientras que nuestros amigos de otras ramas solían relajarse durante los fines de semana. Los estudiantes de lotes principales solían esperar desesperadamente a las 5.00 pm del domingo para terminar la presentación y relajarse, mientras que para los estudiantes avanzados de lotes, ¡el momento difícil comenzaría! Solíamos referirnos a sitios en línea, personas mayores, amigos y todo tipo de materiales para descubrir la lógica para resolver la pregunta. Y las siguientes 48 horas dedicadas a resolver la tarea serían horrendas, y de alguna manera nos las arreglamos para hacer la presentación antes de la fecha límite.

Luego viene el día de la evaluación. Allí, el archivo comprimido de casos de prueba, que tenía al menos 5-6 casos de prueba típicos para cada pregunta, con muchos de ellos como excepciones, se cargaría al servidor y necesitábamos descargar nuestras presentaciones y los casos de prueba. Habría TA para verificar nuestros resultados y notas para cada caso de prueba en una hoja que se les proporcionó. Después de esto, tendríamos un cuestionario en línea que nos evaluaría sobre los temas de la tarea. La tarea completa se evaluaría para 8 puntos (5 para las presentaciones y 3 para el cuestionario).

Ahora viene la parte más horrible de la tarea, ‘Verificación del plagarismo’. Cada uno de nuestros códigos enviados coincidiría con los códigos de todos los demás estudiantes de la clase para plagarismo y la lista de pares de estudiantes cuyos códigos coinciden se publican en el eduserver y se les convocará para que vengan y den una explicación satisfactoria para el coincidencia de código, en su defecto, su código de coincidencia recibiría una marca cero.

Al llegar a los exámenes, solíamos tener exámenes de 2 p.m. a 5 p.m., por separado para estudiantes principales y avanzados. Habría 3 preguntas y la regla era que podríamos obtener la segunda pregunta solo si completamos la primera pregunta con todos los casos de prueba en ejecución, la regla es la misma para la tercera pregunta también. Y para cada pregunta, primero teníamos que escribir el algoritmo y se nos permitiría codificar solo si nuestro algoritmo era correcto y su complejidad satisface los requisitos de la pregunta. Y créanme, muy pocos estudiantes logran ver la segunda pregunta y solo uno o dos tienen la oportunidad de ver la tercera pregunta. ¡Me pregunto por qué incluso hacen la tercera pregunta cuando ninguno de los estudiantes puede verla!

De esta manera, nuestros exámenes fueron una pesadilla. Ahora, finalmente, mi respuesta llega a su fin y concluyo diciendo que existen pocas universidades en la India que realmente se preocupan por la calidad de los estudiantes que producen y se aseguran de que los estudiantes que se desmayan realmente tengan esas cosas.

Puede consultar nuestras tareas para el curso de laboratorio dsa en github. Los he subido y aquí está el enlace: AZHARULLAH / dsa_lab_codes

El escenario en BITS – Hyderabad es mucho mejor que la situación promedio presentada aquí.

Programación en C:

– videos de conferencias se cargaron en la plataforma edge edX

– esos fueron nuevamente discutidos en la sesión de conferencia y se resolvieron algunos problemas con respecto a esos conceptos

– todas las semanas se publicaría un cuestionario en línea.

– en cada sesión de laboratorio alternativa, se supone que debe escribir un programa sobre conceptos relacionados y anteriores que debe cargar en un juez en línea.

– También se realizaron dos exámenes de laboratorio que exigieron a los estudiantes que escribieran un programa un poco complicado en 1 hora

– El conocimiento teórico se probó a través de dos exámenes escritos.

– Se cargaron muchos (literalmente muchos) exámenes, pruebas, conjuntos de problemas para ayudar a los estudiantes a familiarizarse con la programación.

– Se tuvo mucho cuidado al configurar los documentos de preguntas ya que el curso no suponía experiencia previa en programación.

– El ritmo general del curso fue lento inicialmente y luego se aceleró. El motivo principal se logró. “Los estudiantes se involucraron en la codificación”.

Programación orientada a objetos

– La serie de conferencias cubre todos los conceptos, definiciones y jergas relacionadas con la programación, el diseño y el análisis orientados a objetos.

– Las sesiones de laboratorio tratan de implementarlas usando Java.

– Horas Tutoriales enfatizan en tratar con dudas y resolver ejemplos

– Conceptos como Abstracción, Polimorfismo, Herencia, GUI, Multi-Threading, etc. se explicaron maravillosamente con la ayuda de ejemplos.

Matemáticas discretas :

en este curso nos enseñaron varios tipos de gráficos, árboles, relaciones, funciones, algoritmos relacionados con ellos.

– Análisis detallado y pruebas de varios teoremas y algoritmos como los principios del agujero de paloma, el teorema del apretón de manos, el algoritmo de Kruskal y Prim, el teorema de Havel Hakimi, etc.

– La parte interesante de este curso fueron las tareas que requieren que codifique estas cosas y las envíe. El problema es que no se permiten punteros, estructuras de datos e idiomas distintos de C.

-El objetivo principal de la tarea era inculcar la aptitud de codificación en el estudiante y dado que había muchas restricciones sobre qué usar, tuvimos que tomar la ayuda de la teoría para superar estos obstáculos.

Estructuras de datos y algoritmos:

  • Las conferencias cubren conceptos como la notación asintótica, el cálculo de la complejidad, el análisis del peor de los casos, el mejor de los casos y, a veces, el promedio de casos de algoritmos, aplicaciones de varias estructuras de datos, algoritmos de clasificación, etc.
  • Las sesiones de tutoría involucran preguntas que tienen una solución de fuerza bruta muy obvia, pero la tarea es resolver en la menor complejidad posible.
  • Todos los jueves el instructor carga un conjunto de problemas que contiene 10 problemas que cubren los conceptos discutidos en la clase. Cuando tengamos una sesión de laboratorio, anunciará uno de los problemas entre los diez que tenemos que hacer en una hora.

    Problemas y sus soluciones: greetsandeep / Coding-Solutions-

  • Se actualizará más sobre este curso a medida que avance el semestre.

La condición es más crítica en las universidades de Bengala Occidental. Aquí, convertirse en un buen programador se considera una actividad co-curricular. Las universidades no enseñan la programación correctamente, ni siquiera tienen a alguien a quien enseñar. Nuestro programa de estudios solo tiene temas tradicionales teóricos, sin programación (excepto Java con el bloc de notas y Java 1.4 y C / C ++ con Turbo C). Si te dedicas a la programación, no te interesaría la universidad.

Cuando la programación debería ser un trabajo común y regular en CS, aquí, si tiene habilidades de codificación, ¡se sentiría como un paria!
En consecuencia, la universidad sería una pérdida de tiempo para ti.

¡Los maestros piensan que la programación competitiva es un juego con el que algunos estudiantes pierden el tiempo!
Tienes las habilidades de atraco? ¿No sabes programar?
Bueno, eres bienvenido aquí!

Eres un buen codificador? Habilidades fuertes?
Bueno, ¡obtendrás 1000 obstáculos!

Ser un buen programador o desarrollador no tiene ninguna ventaja aquí cuando esto es lo fundamental que uno necesita saber. Como resultado, los estudiantes se abstienen de codificar ya que saben: “¿Por qué debo aprender cuando obtengo calificaciones fáciles? ¡Eso es suficiente para el trabajo!”
¡Piensan que es una habilidad opcional que uno puede aprender si tiene tiempo libre!

Los maestros no conocen la programación ni la alientan. En la práctica (lo único que te puede gustar), si le pides a un maestro que te ayude a depurar un código, lo más común que hará es mirar el código por algún tiempo o sugerir una tontería que te odiarás a ti mismo. por haber terminado aquí 🙁

Ahora, si usted es un programador devoto (¡no es el que ocasionalmente durante el descanso saca su computadora portátil del baúl para codificar algunos Hello Worlds!), Puede sufrir una gran depresión e inquietud como resultado del entorno podrido aquí.

Te darás cuenta de que en realidad no necesitas que nadie te enseñe. Eso es mucho pedir aquí.
Lo que necesita es solo un buen ambiente que fomente la programación y pocas personas como usted con las que pueda colaborar, discutan para que no tengan que preocuparse por el sistema.

Pero hey! De nuevo es demasiado pedir.

Me alegra que hayas hecho esta pregunta. Los siguientes son los incidentes que realmente sucedieron.

1. Un estudiante no pudo encontrar el error en el código que había escrito, le pidió ayuda a un maestro en el laboratorio. Ella se sentó con él y comprobó el código, después de un rato abrió el libro y verificó si el código escrito por el estudiante era el mismo. Ella le pidió que hiciera cambios en el código tal como estaba en el libro. Incluso entonces hubo errores. Lo que dijo a continuación me sorprendió “Todo su código es exactamente el mismo, pero aún no funciona. Creo que es por los comentarios. Vuelva a escribir los comentarios tal como están en el libro y veamos”.

2. Después de cada prueba, la maestra corrige las hojas de respuestas y nos pide que veamos si hay errores de conteo o si ella ha cometido errores al verificar. En una de esas pruebas, había escrito un programa con mi propia lógica y el profesor lo había marcado como incorrecto. Le pregunté por qué y le expliqué que puedo ejecutar este código para obtener los resultados adecuados. Ella dice: “Hay tantos estudiantes en la clase que, si todos escriben con su propia lógica, ¿cómo voy a poder verificarlo? Debería escribirlo exactamente de la manera en que se da en el libro de texto”.

3. Una vez, el código ejecutado se estaba ejecutando en bucle infinito y no pude entender por qué. Le pedí a un maestro en mi laboratorio que revisara el código y lo depurara. Él mira el código por un momento y da una sugerencia asombrosa: “Hay una declaración de interrupción en el bucle, se coloca en una condición if, elimine la condición if”.

Eso resume los estándares / coeficiente intelectual de los maestros en la mayoría de las universidades de ingeniería.

Ahora, para responder a su pregunta específicamente, en India, la forma en que se enseña a los ingenieros a programar es patética. No solo no entienden los programas / conceptos, sino que también enseñan cosas incorrectas e irrelevantes. A veces, incluso los estudiantes pueden sentir que el maestro está tratando de descifrar las líneas de código que ha memorizado. La parte triste de la India es que los estudiantes que memorizan el código obtienen buenas calificaciones. La parte más triste es que los padres de otros estudiantes piensan que estos estudiantes son genios y les piden a sus hijos que sean como ellos.

Mira el siguiente video para tener una idea de cómo se enseña Java.
Por favor, no mire el siguiente video por completo, puede causar daño recursivo en la parte central de su cerebro.

PD: la enseñanza puede no ser deficiente en todas las instituciones de la India. He compartido desde mi experiencia.

1. ¿Qué carajo F (Fahrenheit) ?! : – /

Pregunta en la clase de programación C después de muchas conferencias:

  • Escriba un programa en C para convertir grados Celsius en grados Fahrenheit .

(C’mn, no tienes derecho a insultar a Dennis Ritchie. Por estas tareas aburridas, más tarde tuve dificultades para creer que UNIX estaba escrito completamente en el mismo idioma)

Pregunta en la clase de programación JAVA después de 2-3 conferencias:

  • Escriba un programa JAVA para convertir grados Celsius a grados Fahrenheit .

(¡Maldición! El maestro te obliga a hacer clases y objetos para una conversión de unidades. Knew ¡Sabía que algo estaba terriblemente mal cuando tenía una sonrisa en su rostro que decía ‘Bienvenido a OOP’!)

Pregunta en la clase de secuencias de comandos BASH después de la primera clase:

*** Solo tome un WILD GUESS *** x- ([Sugerencia: solo observe el cambio de patrón en las preguntas anteriores … 😉)

(¡La automatización del lado del servidor parecía fuera de este mundo cuando lo supe!
:-RE)

2. ¿Es esta una clase de gramática inglesa?

Cuando me pidieron que mostrara el código de Bubble Sort en la copia de asignación de laboratorio, entregué con orgullo el código modificado de Bubble Sort optimizado para la lista de números ya ordenados.
Sin embargo, el profesor estaba menos interesado en la Complejidad del Tiempo, descubrió que faltaba un punto y coma en el código y comenzó a dar una conferencia sobre cuán tontos errores como estos es una mala programación y cómo ni siquiera COMPILARÁ.

No estoy seguro de si tiene que compilar un código C a punta de pistola en la vida real (se pierde un punto y coma y el compilador grita ‘¡Ya es suficiente’ y te dispara!).

Personalmente sentí toda la idea de escribir código en papel y que el profesor lo revisara realmente estúpido (especialmente cuando se trataba de profesores que estaban OBSESIONADOS con SEMICOLONS)

MORAL : Hay pocas posibilidades de que se acerque a tener un conocimiento profundo de Algo y Estructura de datos en una clase de programación típica. Si está realmente interesado, vaya a SPOJ y TopCoder. Esto es lo que sentí personalmente.

PD : Probé a esa persona cometiendo un error deliberadamente en la condición de bucle del código de multiplicación de matrices, pero mantuvo todos los puntos y comas en el lugar correcto. ¡Adivina qué, conseguí 10/10! 😛

Todos no tienen la oportunidad de ser seleccionados en las mejores universidades de la India como IIT o NIT, porque están reservados para verdaderos genios. Obviamente, cada estudiante en India no es un genio, pero seguramente ni siquiera son tontos. Pero, las universidades locales tienden a hacerlos uno.

Soy estudiante de BSc-IT (y curso sin ayuda en Mumbai) de una universidad local en Mumbai. Es un curso de tres años (6 semestres). Aquí hay algunas materias específicas de informática

1er año
Semestre 1: C ++
Semestre 2: Desarrollo web (HTML, CSS, JavaScript, PHP)

Segundo año
Semestre 3: C ++ orientado a objetos
Semestre 4: Java

3er año
Semestre 5: Java avanzado (versión de JDBC, Servlet, JSP, etc. de la Universidad de Mumbai), Administración de Linux, ASP.NET

Cada universidad de BSc-IT tiene algunos programas básicos que se repiten cada semestre.

Lista de programas básicos:
1. El programa ‘Hello World’
2: adición de dos números
3: mayor entre dos números
4: número de palíndromo
5: serie de Fibonacci
6: intercambio de dos números

Parece que cada universidad BSc-IT tiene una reunión MAL para decidir estos programas que arruinarán la vida del estudiante. Casi todos los estudiantes de BSc-IT han asaltado estos programas

C ++ : la versión obsoleta #include todavía se usa para escribir programas. Turbo C ++ (segundo programa feo después del Bloc de notas para escribir programas) se utiliza para la programación. El maestro escribe el programa en la pizarra y luego se tipean los mismos programas tal como están en el IDE. Los estudiantes apenas pueden deshacerse de los errores que aparecen durante la ejecución del programa.

Desarrollo web : etiquetas HTML básicas, selectores CSS, los mismos programas básicos en JavaScript (quiero decir, ¿quién hace eso? JavaScript no es para eso). Los mismos programas básicos en PHP. PHP es uno de los lenguajes de programación web más famosos. Los estudiantes apenas pueden escribir programas para los que está destinado php.

C ++ orientado a objetos : el mismo programa que usa la orientación a objetos. Tome la entrada del usuario de un método, páselo a otro método e imprima la suma de esos números. Eso es todo, y ahora ustedes son desarrolladores orientados a objetos …

Java : nuevamente los mismos programas básicos en la línea de comandos, y ahora ni siquiera usan un IDE, usan NOTEPAD

AVANCE Java : Aquí hay algo nuevo, no escribes esos programas básicos ahora. En cambio, ahora se conecta con la base de datos y realiza algunas transacciones en ella. Bueno, no todo va a cambiar, el maestro escribe esos nuevos programas a bordo y nuevamente los estudiantes copian eso

ASP.NET : los programas son casi los mismos que los escritos en ADVANCE Java. ASP casi queda en desuso del mercado, ¿por qué enseñarías ASP cuando Java puede lograr lo mismo?

Administración de Linux : los maestros ni siquiera le dan la lista de comandos básicos de Linux. Solo hay algunos comandos que usan ‘cd’ y ‘vi’ y, a veces, ‘ls’. Todo lo que enseñan es configurar DHCP, DNS, etc. Nadie sabe qué son y por qué lo configuran.

El plan de estudios de la Universidad de Mumbai se actualiza después de 4-5 años, con la tecnología cambiando drásticamente, el plan de estudios debe actualizarse cada 2-3 años.

y finalmente, aquí están los pros y los contras de estudiar en este tipo de universidades.

Pros
Si a diferencia de otros, eres un geek, no necesitas estudiar para sacar buenas notas

Contras
No enseñan nada sobre algoritmos, estructuras de datos, etc.
Después de tres años, muchos estudiantes terminan en BPO, agencia de ventas, etc.
Apenas aprendes nada sobre programación en esos 3 años

Consejo:
Inscríbase en CS50 de la Universidad de Harvard (Introducción a la informática)
Centrarse en la resolución de problemas.
Resuelva problemas de Project Euler, topcoder y http://codechef.com

  • Incidente 1:

En Junior College: escriba un programa en C ++ para encontrar la suma de los primeros 10 números usando for loop. * Explica el programa en la pizarra *
Compilador utilizado: Turbo C ++ (la versión más antigua)
Sistema operativo: Windows 7 (El maestro de las aplicaciones incompatibles)
Yo:
* Escribe el programa tal como es. *

Yo: haga clic en Compilar programa. No de errores = 0. ¡Genial!
* El mouse deja de funcionar * (No se puede hacer clic en ejecutar)
* Maldita cosa se congela *

Yo: * Llama al profesor *
Prof: ¿Qué demonios hacen ustedes con la PC?
Yo: señor, no lo sé. A la mitad del mouse de codificación dejó de funcionar.
Prof: Es un virus. Por eso te lo digo todo. Debes haber ingresado un código incorrecto. Ahora la computadora tiene virus, tiene que eliminarlo. * Presiona Alt + Ctrl + Eliminar y cierra C ++. *
Yo: -_____- Señor, no guardé el programa. Ahora tengo que volver a escribir.
Prof: Por eso te digo que codifiques correctamente. Ahora escribe de nuevo.
Yo: * Facepalm *
* Viene a casa Google el problema. Encuentra que Turbo C ++ es incompatible con Windows 7. * Doble facepalm.

  • Incidente 2:

Escriba un programa de lenguaje ensamblador (ALP) para encontrar los números más grandes y más pequeños en un bloque de datos.
Prof: * Comienza explicando y escribiendo el programa. en el BB. Encuentra condición CMP. *
Un estudiante: Señor, ¿cómo afecta CMP a las banderas?
Prof: * dice algo. Se confunde *
Comienza a buscar su libro de referencia. La búsqueda del MH370 perdido comienza. Quedan 15 minutos, aún buscando.

Trrrrrng …… ..Trrrrngggg …… .La conferencia termina… .. Prof: Ok, entonces continuaremos con el programa en la próxima conferencia. * Frenéticamente se va en busca del libro *

Estos incidentes son reales. Estos no están destinados a mostrar falta de respeto hacia los profesores. Los aprecio Entonces, ¿qué hace el profesor?

  1. Memorice el programa de un libro de referencia.
  2. Ingrese a la clase y comience a escribir en el BB.
  3. Explique algunas cosas sobre el programa sin explicar en profundidad la lógica.
  4. Pídales a los estudiantes que escriban el programa en papel,
  5. Pídales que escriban y verifiquen en la PC.
  6. Hecho.!

Lo que el estudiante debe hacer:

  1. Memorizar.
  2. Memorizar.
  3. Memorizar.
  4. Escriba el programa tal como está en los exámenes.
  5. La máxima puntuación.

Espero que eso explique. No puedo lidiar con respuestas cortas. 😛

Al ver que la mayoría de las respuestas aquí destacan cómo la programación no se enseña correctamente en sus universidades, me gustaría agregar mi experiencia en una universidad india. Estoy agregando esta respuesta solo para indicar la variación en la calidad de la educación de programación en las universidades indias, y para proporcionar una opinión contrastante.

También entiendo que esto podría no ser la norma para la mayoría de las universidades indias, sin embargo, proporciona más perspectiva. Entonces aquí va:

Hay dos cursos de programación de nivel introductorio ofrecidos en mi universidad (101 y 102). El primero es para personas sin experiencia en programación y el segundo es un curso introductorio bastante avanzado. Aunque, después de manejar problemas sintácticos en la primera semana o dos, ambos cursos comienzan a enfocarse en el análisis y el diseño.

Los lenguajes de programación con los que suele comenzar la gente son Python para 101 y Standard ML para 102. Nuestras tareas se centran en comprender las especificaciones de un problema de programación, formular un algoritmo para esas especificaciones y diseñar el programa requerido. Se espera que los conceptos sintácticos se aprendan mediante la práctica, y los conceptos de programación como aleatorización, memorización, modularización, recursión están integrados en las tareas, y los estudiantes generalmente trabajan en ellas individualmente. Las conferencias abarcan estructuras de datos estándar, paradigmas de programación y algunos algoritmos particulares (DFS, BFS, etc.). Nuestros exámenes abordan la complejidad y el análisis en particular, y nunca se nos pide que escribamos el código C ++; de hecho, me sorprendieron un poco las respuestas a esta pregunta, donde la gente realmente cita pruebas que tienen preguntas como esa.

Después del curso introductorio (que deben tomar los estudiantes de todas las especialidades), tenemos otros cursos centrales de ciencias de la computación que tienen un trabajo de programación pesado (estructuras de datos, arquitectura de computadoras, lenguajes de programación, sistemas operativos), sin embargo, ninguno de ellos se enfoca en la programación explícitamente: cada curso tiene diferentes conceptos de informática que atienden, aunque con tareas en diferentes idiomas (de ML a C ++ a Prolog). Pero supongo que las técnicas de programación estándar se enseñan solo en el curso introductorio, y después de eso estamos principalmente solos. A través de los diferentes cursos, se nos enseñan los diferentes paradigmas de programación (funcional, lógico, orientado a objetos, simbólico, etc.), pero principalmente en un nivel abstracto.

En pocas palabras, se nos enseña cómo analizar y construir algoritmos, y luego se espera que los implementemos con cierto grado de eficiencia. Quizás es por eso que mi universidad no tiene un entorno muy centrado en la codificación (programación competitiva) que tienen otras escuelas importantes en la India, tenemos algunos programadores competitivos excepcionales, de hecho, PGM, Nikhil Garg, Rudradev Basak son todos ex alumnos, pero en mi humilde opinión la cultura promedio se inclina hacia la implementación y construcción de cosas en lugar de la programación competitiva.

Editar: La universidad de la que estoy hablando aquí es Indian Institute of Technology, Delhi.

Ahora lo que voy a decir es auténtico. Mi universidad es, con mucho, la más tonta, la más miserable y no es un lugar para aprender.
Lo que sea que hayas enumerado en la pregunta, sucede en mi universidad. Se ve tan estúpido y una pérdida de tiempo para un estudiante que realmente asistió a la clase saber algo sobre lenguajes de programación. Estoy haciendo un curso BCA, que es por tres años.
Ahora directamente al grano:
Cada maestro escribe un programa en la pizarra y espera que todos y cada uno de los estudiantes lo copien . Nunca puedes hacer preguntas mientras enseñan. E incluso si lo preguntas, obtienes una respuesta de una línea que ni siquiera Google podría buscar por el amor de Dios.

Cuando comenzaron a enseñar lenguaje C en el primer semestre, no sabía mucho sobre ningún idioma ni tenía Internet en mi hogar para aprenderlo. Así que fue muy difícil para mí saber qué son los encabezados o cómo funciona un compilador.
¡Y la parte más estúpida es que cada estudiante sigue el aprendizaje de memoria! ¡Si! ¡Aprenden cada línea del código memorizando una página completa o todas las 4 páginas! ¡E incluso buscan cualquier código en Internet sin importar si es solo un laboratorio normal o un examen semestral! Nadie explica por qué o cómo debemos escribir el código o cómo funciona exactamente el código. Esperan que sepas todo eso antes de enseñarte. Los profesores no le dicen cómo planear primero el código antes de presionar el teclado, y mucho menos ayudar a corregir los errores. Traté de pedirles que explicaran qué significaban algunos errores, como “fuera de alcance” y por qué se sale de alcance o cómo definir una variable global, y preguntas similares que eran demasiado básicas y simples (que no sabía en el comienzo del curso), y todo lo que obtuve fue algunas respuestas ignorantes como “¿Por qué no te imaginas y dejas de preguntarnos todo?”.
Un día, durante el laboratorio de Java, estaba escribiendo etiquetas HTML para un applet de Java que pretendía parecer un formulario de inicio de sesión y un código de applet, ¡pero me sacaron de la clase por no seguir su código!

Y SÍ, esperan que todos sepan de memoria todas y cada una de las líneas de código. No sé si es apropiado decirlo, pero estoy pasando por una depresión en este momento y mi universidad es una de las principales razones para eso . Me siento tan triste cuando creo que necesito presionar otro año para salir de este lugar infernal. Después de todo, fue mi culpa unirme a esa universidad de mierda y necesito enfrentarlo solo. En el último año, que es después de mis exámenes Sem, tenemos C # y .NET para estudiar. Y solo Dios sabe cómo se nos enseñará.
La mayoría de los estudiantes aquí son de aldeas y no tienen idea de qué es una computadora, ni tienen una, por lo que el aprendizaje de memoria es obligatorio para ellos, pero es un duro golpe para cualquiera que realmente quiera ser un programador.
Tengo tantas cosas que hablar sobre mi universidad solo si tengo suficiente tiempo para contarlo todo. En este momento, estoy estudiando para mi examen que comienza a las 2 p.m. de hoy.

Incidente 1 : Desarrollo web :
Hay un profesor en mi universidad que fue designado para enseñarnos Desarrollo Web en el 5º semestre de B.tech. el último mes del semestre estaba preocupada porque había mucho plan de estudios pendiente de ser cubierto. Ella comenzó a asignar temas del programa de estudios restante y tenemos que discutir ese tema como una presentación de unos 15-20 minutos en clase. Me sorprendió cuando llegué a conocer mi tema. Mi tema fue:

“Qué es XML. Cuál es la diferencia entre XML y HTML. Escriba un programa en XML.

Ya sé mucho sobre XML y su uso. El día D, le expliqué a la clase (incluido el profesor) que XML es un lenguaje de marcado y no un lenguaje de programación. Por lo tanto, no puede programar nada en XML. Escribí un código en .NET para explicar cómo se puede usar XML. Estaba escuchando todo y pensé que al menos ella se beneficia con mi presentación.

Dos años después de este incidente, un día, cuando estaba trabajando en mi oficina, un compañero mío que está haciendo MTech de la misma universidad me llamó en Facebook.

Ella: hola
Yo: hola! wassup …

Ella: Bharat, necesito ayuda …
Yo: qué tipo de ayuda.

Ella: Mi clase acaba de recibir una tarea para escribir un programa en XML. “Busqué mucho en Google, pero fue un desperdicio. Solías ser muy bueno en cosas relacionadas con la web. ¿Puedes ayudar? Incluso un programa ‘Hello World’ servirá …

Yo: quién le dio a tu clase esta tarea imposible. ! Eso también en M.Tech !!!!

Ella: son wo hola jisne Desarrollo web padhaya tha … Apni NIDHI SHARMA
(en inglés: es el mismo maestro que nos enseñó desarrollo web en B.Tech, Sra. Nidhi Sharma ).

Yo: ***** Facepalm *****
—————————————————————

Incidente 2 : REDES :

Así que la gran conferencista fue Aastha Kalra [se merece letras en negrita por arruinar dos semestres] que solía tener un diario (notas) en el que tenía algunas líneas seleccionadas de los libros en Computer Networking y solía recitarlo literalmente solo como conferencia . Un día, el tema era sobre dispositivos de red y estábamos copiando sus notas como de costumbre cuando de la nada, mi amigo Deepak planteó una duda muy común y obvia:

Deepak: Mam, ¿cuáles son las diferencias entre enrutador, conmutador y Hub? Según su definición, todos parecen resolver el mismo propósito.

Y la línea poderosa que salió como respuesta fue:
“Es muy simple Deepak, ” Switch es switch And Hub es hub “.

[[Y estábamos como … ¡Oh, en serio! ¡Qué gran diferencia! ]]
y luego ella solo repitió las definiciones …
PD: cada vez que nos encontramos y hablamos de la vida universitaria, hablamos de esta línea.
————————————————————–

Incidente 3 : TECNOLOGÍAS JAVA :

Vaishali Yadav nos enseñó Java. La Sra. Vaishali, en su primera conferencia en nuestra clase, presentó un libro local que tenía todos los temas del programa de estudios enumerados en línea como pregunta – respuesta [con programas de muestra, para no olvidar], costos como 100-120 / -, tenía algunas cosas copiadas de wikipedia y otras fuentes en línea. Ella dijo :

“Miren chicos, voy a seguir este libro [[que se presenta como un anuncio de NIRMA, GHADI o cualquier otro detergente en polvo]] para este tema. Tiene todos los temas cubiertos, por lo que { leer ME } no tiene que ir a ningún lado y busque este tema. Además, creo que si lee este libro por completo, puede obtener fácilmente las marcas de aprobación “.

De todos modos, un día ella estaba enseñando sobre herencia múltiple en Java .

Ella: No tenemos herencia múltiple en Java, pero podemos lograr esto con la ayuda de Interfaces.

YO [ un novato en ese momento en lo que respecta a Java ]: Mam, suena confuso. ¿Puedes dar un ejemplo para dejarlo claro?

Ella: No tengo un pequeño ejemplo. Tomará tiempo. Léelo solo en casa.

Yo [y algunos compañeros al azar]: ¡Por favor, mamá!

Ella: Ok Bharat, ven aquí y escribe este código en la pizarra. Estoy muy cansado para eso.

Literalmente copié un ejemplo de 5 páginas de ese libro de mierda al tablero y la clase lo copió de un tablero a otro.

Después de esa sesión de 15 minutos para copiar y pegar.

ELLA: ¿Lo tienes ahora?

Yo [cansado de escribir y sintiéndome castigado por preguntar dudas]: ¡absolutamente!

Y la conferencia ha terminado !! ..

Colegio: El Instituto Tecnológico de Textiles y Ciencias.

Edición 1: errores de ortografía corregidos.
Edición 2: se agregaron más incidentes.

Déjame contarte sobre mi primera clase de C en NIT Surat. Era alguien que no tenía experiencia previa en programación en C o en ningún otro lenguaje antes de eso.
.
Entonces la maestra vino a la clase y ella preguntó: “¿Cuántas personas han trabajado en C en esta clase?”. Pocos levantan la mano. Shifu les hizo algunas preguntas y luego comenzó a “enseñar”. No perdió mucho tiempo explicando cosas “inútiles” a personas “inútiles” como nosotros (la mayoría de nosotros), y comenzó a escribir algún programa en la pizarra que usaba scanf & printf. Todo lo que sabía sobre estas dos palabras es que hay dos máquinas llamadas impresora y escáner que he usado antes, y me preguntaba si estos dos comandos se usaron para imprimir y escanear documentos. (Sí, búrlate de mí si quieres, pero tenía biología en mis clases 11 y 12, antes elegí Computadora, pero no había profesores regulares, así que tuve que cambiar)
.
Entonces, allí estaba, entre muchos otros que no tenían idea de lo que estaba pasando en la clase. El maestro de alguna manera asumió que todos los estudiantes aquí tienen suficiente conocimiento sobre el tema, solo porque los dos o tres estudiantes incluso sabían Java y algunos otros idiomas (seguramente impresionante). En las siguientes 2-3 clases, ella había completado los conceptos básicos del lenguaje C, y teníamos la fuerte sensación de que nos iban a joder bastante.
.
Recuerdo cómo logramos obtener un libro de ejercicios de algún instituto de entrenamiento (quizás NIIT), y comenzamos a atracar los programas. Hasta entonces, seguramente sabía que “scanf” no funciona con un escáner, y “printf” seguramente no imprime documentos con una impresora. Pero más allá de eso, todavía estábamos luchando por ejecutar bucles la cantidad correcta de veces para escribir los famosos programas de “impresión de patrones”. Recuerdo que 4 de mis amigos estaban teniendo las fotocopias de ese libro, y nos estábamos ayudando mutuamente a asaltar todo el libro lleno de programas hasta las 6 de la mañana (mi primer estudio nocturno en B.Tech. 😀)
.
Puedes imaginar cómo podría haber resultado el día siguiente después de ese tipo de estudio. Aunque realmente habíamos desarrollado algunos “trucos” para recordar cosas, y de alguna manera ayudó mucho aprobar el examen.
.
Ese tema fue un rompecorazones. Después de los exámenes semestrales, estaba muy motivado para aprender C. Me uní a una clase durante mis vacaciones, y aprendí muchísimo de C en esos 1.5 meses. Volví con confianza en mis ojos. Seguí aprendiendo algunas cosas hasta que pasó el segundo semestre del primer año. No lo dejé “fuera de práctica”, ya que pocos adultos mayores me habían dicho que “C es un lenguaje muy importante para aprender”.
.
Luego vino el segundo año. Ahora, déjame decirte que fui uno de los tipos que no tenía idea de las diferencias en las diferentes corrientes de ingeniería cuando me uní a la facultad de ingeniería. Todo lo que me importaba mientras estudiaba para los exámenes de ingreso era obtener un buen rango, de modo que obtuviera “Ingeniería Electrónica y de Comunicación”, que solía tener el rango de corte más alto en la mayoría de las universidades, eso me dijeron. Entonces, se suponía que era el mejor, ya que era más difícil de conseguir. Lógica simple, sí … ?? (Hablaremos de eso algún otro día). No estoy seguro de si esta es la forma en que se enseñó la programación en las clases de informática, pero los comentarios de mis amigos tampoco fueron emocionantes.
.
Sí … así que era el segundo año y estábamos en nuestro Departamento de Ingeniería de Electrónica y Comunicación (habíamos combinado clases de todas las sucursales durante el primer año)
.
Y ahora era un tipo seguro de sí mismo que sabía codificar en C. Y había un tema llamado Metodología Computacional que usaba la Programación C, lo que me estaba haciendo muy emocionado, ya que ahora no iba a ser el tipo tonto de la clase que imaginará “Impresoras y escáneres”.
.
Entonces, el curso comenzó. Vino un maestro y dio una introducción al tema. Estaba esperando que él cortara la basura y que empezáramos a codificar. (Ohh sí … estaba muy emocionado de presumir un poco finalmente). Nos llevó unos días darnos cuenta de que este tema casi no tiene nada que ver con “Programación en C”. Gracias al genio que había diseñado el curso, todo lo que teníamos que hacer era resolver todos los problemas matemáticos como la integración, la diferenciación utilizando métodos iterativos y no implicaba ninguna codificación. Tuvimos que hacer las iteraciones en papel. La programación solo estaba destinada a las clases de laboratorio de la asignatura, y esa parte ni siquiera se incluyó en los exámenes. Tuvimos que tomar el libro, escribir el código en el laboratorio, solo por el bien. Incluso los maestros no estaban muy interesados ​​en hacer programación, ya que sabían “No estaba llegando a los exámenes”. Solo teníamos que asegurarnos de que ejecutamos todas las iteraciones correctamente en la hoja de respuestas en los exámenes, o de lo contrario se nos dará un “cero” por un solo error de cálculo. Recuerde que el tema aún decía: “Uso de la programación en C”.
.
En los años siguientes de B.Tech, los únicos temas que disfruté estaban relacionados con la programación de una forma u otra, como los sistemas embebidos, o incluso VLSI hasta cierto punto. La comunicación también fue divertida, pero no mucho. Y sí, todavía me preguntaba por qué el rango de corte para ECE es tan alto.
.
Finalmente, hasta el último año, supe que iba a buscar un trabajo de Software, por dos razones: Primero, no había muchos trabajos básicos de ECE, y en segundo lugar, eso era lo único que me gustaba de todos modos.
.
Estudié muchas cosas más tarde (después de completar mi B.Tech, durante mi primer trabajo), y me di cuenta de que la programación realmente no es algo, alguien puede enseñarte en una clase. Pero seguramente, ver “scanf & printf” en el primer día sin presentación sobre qué “hacemos cuando codificamos”, cuando nunca has visto un fragmento de código, todavía era un horror que recuerdo.
.
Entonces, no confíes en los maestros. La mayoría de ellos de todos modos estarán simplemente enseñando a apoyar su propio M.Tech o PHD, especialmente en NIT o IIT y estarían menos preocupados por “hacerte entender las cosas”. Como máximo, se preocuparán por completar el curso a tiempo. Entonces, si tiene suerte y ha aprendido algo de codificación antes de ingresar a los cursos de B.Tech, dedique más tiempo a hacer cosas reales: codificación en foros en línea y competencias de codificación. Sigue aprendiendo, y no te importa lo que el maestro enseñe en la clase más de lo que se necesita para saber que el plan de estudios obtiene calificaciones en los exámenes. Si eres realmente afortunado, obtendrás un buen maestro, a quien le importará un poco, pero lo más probable es que estés solo. La programación es divertida, una vez que comienzas a amarla, no hay vuelta atrás. Tu amor seguirá aumentando.

Soy un estudiante de primer año en IIT Delhi, y afortunadamente tengo un curso para lenguaje C. La situación no es la misma que en cualquier otra universidad en la India. Nuestro profesor es perfecto para enseñar cualquier lenguaje de programación. Obtuvo su doctorado en arquitectura de computadoras de la Universidad de Illinois en Urbana-Champaign y un B.Tech. en CS de IIT Kharagpur. Actualmente es profesor asistente en el departamento de CSE de IIT Delhi. Sus áreas de investigación abarcan procesadores multinúcleo, red en chip, sistemas operativos para computadoras paralelas y algoritmos paralelos. Tiene 5 patentes estadounidenses y ha publicado 50 artículos en prestigiosas conferencias y revistas internacionales.

Ahora, llegando a su metodología de enseñanza, primero nos enseña la sintaxis básica y el funcionamiento de las funciones, y luego nos da el objetivo del programa, y ​​luego pide sugerencias de los estudiantes sobre cómo debemos proceder. Después de escuchar a unos 5-6 estudiantes, él cuenta la mejor manera y escribe todo el programa en la clase y lo compila frente a nosotros.
Por supuesto, también podemos sacar nuestras computadoras portátiles y escribir el código en la clase y hacer preguntas después de compilar instantáneamente. Luego carga todos los programas que hizo en su sitio web para que podamos consultarlos después de la clase. Podemos enviarle cualquier duda si la tenemos. Y también, nos envía algunos programas interesantes para depurar, etc.
Esta metodología también nos ayuda a entender cómo pensar de manera estructurada. No creo que pueda haber una mejor metodología para enseñar un lenguaje de programación que este. Además de esto, también tenemos sesiones de laboratorio, en las que se nos dan algunos programas para escribir y tenemos asistentes de enseñanza en el laboratorio para ayudarnos cuando nos quedemos atrapados. Entonces, la situación no es mala en absoluto.

Aquí hay un enlace a su página web: http://www.cse.iitd.ac.in/~srsarangi/

Y, estas son algunas imágenes tomadas en nuestro salón de clases mientras el profesor enseñaba:

Pantalla proyectada del portátil del profesor

La clase se ve vacía, pero no lo es. Confía en mí 😛

Aquí hay una instantánea de todos los programas que ha subido a su sitio web para que los consultemos. Estos son los programas que hizo en la clase:

Edición 1: Gracias a todos. Mi primera respuesta con más de 500 votos a favor. Ojalá el profesor Sarangi estuviera en Quora para presenciar un agradecimiento por su dedicación hacia su trabajo.

Edición 2: ahora estoy en mi tercer semestre y tengo un curso sobre “Estructura de datos y algoritmos”. De este curso, me di cuenta de que aunque el profesor Sarangi nos enseñó desde lo básico y desde cero, no pudo aumentar nuestro nivel hasta lo que se esperaba de él. Yo y otros estudiantes enfrentamos dificultades para completar las tareas difíciles. En realidad, el caso es que los estudiantes en IIT D se dividen en dos lotes en el primer año, los cursos realizados por primer lote en el primer semestre se realizan en el segundo semestre por los otros estudiantes por lotes. El profesor, que enseñó COL100 (Conceptos básicos de informática) en el segundo lote, hizo que el curso fuera mucho más difícil de lo que fue para nosotros. Entonces, esos estudiantes encuentran el curso de Data Structures más fácil, y estamos luchando por alcanzar ese nivel. Aunque disfrutamos el curso fácil y tranquilo en el primer semestre. Estamos pagando en la tercera sem. Puede decirse con razón que si todo va bien y es fácil en la vida, significa que algo está mal.

Permítanme explicar también cómo Amitabha Bagchi nos enseña Estructura de datos y Algoritmos. Para presentar a Amitabha Bagchi, él es el profesor más genial e ingenioso con un increíble sentido del humor. Nunca he visto a ningún profesor con una personalidad tan increíble. También ha escrito una novela “Above Average” que fue un éxito de ventas. Puedes leer sobre esto aquí [1].

En cuanto al estilo de enseñanza, solo discute algoritmos y estructuras de datos en su clase de 300 estudiantes, pero las conferencias no son exactamente conferencias, son una especie de discusiones, donde en realidad se nos da el camino para pensar y nosotros mismos ideamos soluciones y todo.

Puede parecer que me convierto en un fanático de todos los profesores que tomo, pero no es el caso. También he tomado cursos de física y otros departamentos. Y no escribiré nada sobre ellos 😛

Notas al pie

[1] Reseña del libro: La novela IIT de Amitabha Bagchi ‘Above Average’ 12032007

Bueno, yo soy de una universidad privada y no sé cómo es con los IIT y NIT. Aquí la situación es bastante diferente.

Hay un profesor que solía venir a enseñar C en nuestro primer semestre. Maldición, él era tan bueno en eso, pero el único problema con él era que no podía mantener la clase en silencio porque algunos estudiantes terminaron sin entender nada. Solía ​​hacernos escribir programas. Sus clases solían ser como si él enseñara un concepto en una clase y luego solía darnos problemas relacionados con él y hacernos escribir los programas. Raramente nos dio el código para ello. Y muchos estudiantes que eran buenos en el llamado “ractafying” (recuerden y reproduzcan lo mismo en el examen) fueron completamente en contra de él y se quejaron al director. Aunque estuvo allí hasta el final de ese semestre. Pero pocos estudiantes, incluido yo, que eran realmente buenos en la programación, obtuvieron buenas calificaciones en C, así como en su laboratorio, y muchos otros tenían un retraso y lo culparon por eso.

En el segundo semestre, vino otra señora para enseñarnos C ++. Y confía en mí si no tuviera el libro de texto de Balaguruswamy para C ++ que no enseñaría ese día. Ella no podía escribir un solo programa por su cuenta. Y luego favoreció a todos los estudiantes que la impresionaron. Y pocos de los tipos, incluyéndome a mí, que escribimos programas de manera diferente a lo que solía decir, no nos consideraría y nos tomó como tontos. Cuando el semestre estaba llegando a su fin, llamó a pocos estudiantes cuyos promedios internos eran realmente pobres y no sé de dónde apareció mi nombre, aunque tenía un promedio de 24/30. Ese día me regañó sin razón y cuando insistí en que era bueno con las calificaciones y con la programación a cambio, me dijo que aprendiera modales y toda esa mierda. Incluso hoy no puedo entender qué salió mal con ella. Ella era la profesora más tonta que vi. Y los estudiantes que tenían un retraso en C pasaron en C ++ asegurando las calificaciones más altas.

Y pasando al tercer semestre, volvió a aparecer el mismo chico que vino a enseñarnos C, eso fue una pesadilla para muchos estudiantes. Después supe que era uno de los mejores profesores de nuestra universidad y tenía experiencia industrial en inteligencia artificial e incluso tenía muchos artículos publicados en revistas internacionales.

Básicamente, en las universidades privadas tienes dos tipos de profesores. Uno que es el Dios de la programación y otro que no puede sobrevivir si Balaguruswamy no hubiera escrito un libro de texto. Es la elección del alumno a quién quiere seguir.

Actualmente estudio en 3er año para mi título de BTech, en Ingeniería Informática.

Hace 5 años, durante mi último año escolar, nos enseñaron C ++, tan mal que nunca entendí nada, tampoco me pareció interesante. Me preguntaron qué significa ‘void main ()’ para mi final viva, e inventé algunas cosas realmente malas y terminé aprobando de todos modos. No tomé ningún tipo de programación informática sin sentir interés después de eso, por mi universidad secundaria.

Terminé la ingeniería informática seleccionada, dándome cuenta de que eso es lo único en lo que soy bueno, porque tenía conocimientos previos en HTML y pensé que era una parte importante en la ingeniería informática. ( nunca había estado tan mal ) Pero puedo decir que mi experiencia en el aprendizaje ha sido muy buena en mi universidad.

Estudio en MPSTME (universidad de ingeniería y gestión en Mumbai, bajo la institución Nmims). El primer año de ingeniería consiste en tener asignaturas de todas las ramas de la ingeniería. Según el ciruculo, comenzamos a aprender C y C ++ en el primer año. Se utiliza TurboC. En aquel entonces pensé que era un software estándar utilizado. ( Nuevamente, nunca ha estado tan mal ) El primer año termina con algunos conocimientos básicos sobre estructuras de datos, principalmente pilas y colas. La facultad sabe lo que enseñan y siempre ha regresado con cualquier duda estúpida o desafiante que se le pida ( tal vez esa sea mi tarifa )

Aquí es donde comenzó la diversión para mí:
Segundo año, solo tenemos asignaturas específicas de computadora, una de ellas es Data Structures (DS). En este momento tenía una buena idea sobre la lógica de programación y me estaba yendo muy bien en temas de programación. La facultad de DS esperaba mucho de nuestra clase y siempre tiene grandes problemas para sus sesiones prácticas. Cada programa consistiría en aplicar las estructuras de datos pero la declaración del problema que haría que el programa tuviera más de 800 líneas. Un enunciado del problema que recuerdo muy específicamente fue sobre la clasificación de varios archivos con diferentes cantidades de números (10,100,1000,…., 10000000) usando varias técnicas de clasificación (burbuja, inserción, selección, shell, rápido y montón). Nos llevó a mí y a otro más, juntos, más de dos semanas encontrar la técnica para resolver este problema. Nos dimos cuenta de que turboC era ineficiente y cambiamos a mingW para compilar y ejecutar el programa. Es posible que la facultad no nos haya enseñado cómo usar otros compiladores, pero la tutoría proporcionada siempre fue útil. Aprendimos mucho por nuestra cuenta qué programación para tales enunciados de problemas. Finalmente, cuando nuestro código en C estaba listo, tenía excelentes resultados que tuvimos que documentar como un informe gráfico. ( Y la sensación de que funcionó fue una de las mejores ) Esa fue una sesión práctica difícil pero me pareció muchas cosas sobre la programación de computadoras, no solo las cosas que se pueden usar de lo que se usaba normalmente en la universidad, sino también por qué es importante codificar de manera eficiente en lugar de la misma de finalización.

Después de ese semestre, fuimos creados para codificar programas simples para redes de computadoras, gráficos, sistemas operativos que usan C o C ++. Recientemente se les enseñó sobre tecnologías web con introducción a HTML, CSS y JavaScript, también a la codificación Matlab para procesamiento de imágenes y procesamiento de señales. ( Java nunca enseñó oficialmente ) Siempre les he preguntado a mis profesores por qué nunca usamos un IDE, todos dicen que solo están siguiendo el progreso académico de cómo hacerlo.

Puedo relacionarme con muchas respuestas respondidas aquí, ya que he visto a mis compañeros de clase hacer tales cosas. Algunos inteligentes, codifican con brillantez, algunos perezosos, codifican una salida, otros simplemente no molestan, ya que siempre pueden copiar. Pero me di cuenta de que hay una buena ayuda de una facultad experta cuando se le pregunta con la consulta y la intención adecuadas.

Aquí hay un pequeño fragmento de los cursos incluidos en casi todas las universidades de ingeniería de la India para un programa de informática.

Año 1 (común a todos los programas)
Conceptos informáticos y programación en C, electrónica, física, dibujo asistido por computadora, desarrollo de la personalidad, inglés (como si ya no lo supiéramos)

Año 2
Estructuras de datos, algoritmos, OOP con C ++, DBMS, álgebra lineal, teoría de grafos, UNIX, comunicación de datos, arquitectura de computadoras, microprocesadores, matemática discreta.

Año 3
Redes de computadoras, ingeniería de software, modelado y diseño orientado a objetos, software de sistema, Java, sistemas operativos, computación en la nube, probabilidad y estadística.

Año 4
Inteligencia artificial, ley cibernética india, redes de área de almacenamiento, gráficos por computadora

Al mirar estos cursos, una persona realmente esperaría que un estudiante de informática de la India sea realmente bueno en informática. El hecho real del asunto es que la mayoría de los estudiantes, literalmente, no aprenden nada.

Llegando al foco principal de la pregunta, y esa es la forma en que se enseña la programación en las universidades indias.

Entonces, en 4 años de ingeniería, probablemente te sumergirías en lenguajes de programación como C, C ++, Java, C #, un par de lenguajes de scripting: JS, Perl o PHP, API como OpenGL (si tienes suerte y eliges bien tus opciones electivas) )

Por lo general, un curso tendría un instructor (que generalmente no tendría experiencia en el mundo real con el tema que él / ella estaría enseñando). Un libro de texto prescrito de estándar internacional, pero, dado que los instructores no serían competentes con un buen vocabulario y gramática, los instructores pedirían a los estudiantes que “estudien” la asignatura / curso de un libro de texto escrito por un autor indio (que generalmente solo condensa el contenido del libro de texto prescrito real, elimina las palabras grandes, los ejemplos difíciles y en su lugar pone ejemplos de código cojos y extremadamente simples (si los hay)

La mayoría de las universidades tienen un conjunto de unidades para completar durante todo el semestre, para cada materia. El instructor tiene esto en mente, y el único objetivo que el instructor sigue es terminar estas unidades, independientemente de si los estudiantes realmente terminan entendiendo el tema o no. (Nadie lo hace, ni siquiera el instructor 😮)

Por lo tanto, cuando se trata de un tema de programación, el instructor probablemente repasaría los conceptos básicos del lenguaje y usaría algunos ejemplos diferentes de “hola mundo” para “ENSEÑAR” la sintaxis y, aparte de eso, el estudiante está casi en sus manos. propio. Eso es probablemente durante las primeras 2-3 semanas del curso.
La presión de terminar el programa de estudios se establece, y el instructor solo quiere terminar con todas las unidades. Entonces, él / ella copia y pega la mayoría de las muestras de código del libro de texto (la versión condensada) (si el tiempo lo permite) y les pide a los estudiantes que lo escriban y lo aprendan “de memoria”.

Así es como fluiría todo el semestre.

Llegando a los laboratorios de programación. Básicamente, tendrá aproximadamente 20 programas para terminar durante todo el semestre, similar a lo que mencionó la otra persona anónima con más de 300 votos. De los 20 programas, el instructor generalmente elegirá los 10 más fáciles y copiará los programas de algún libro de texto que describa la implementación más fácil y les pedirá a los estudiantes que aprendan exactamente el mismo algoritmo. Cualquier diferencia en el algoritmo terminaría siendo incorrecta según el instructor.

Llegando a proyectos. (Siempre me pregunté por qué se molestarían en darnos tales tareas). Probablemente le pedirían al estudiante que implemente algún software “integral” para algún “problema del mundo real”, según lo descrito por el instructor. Estos proyectos se repiten para cada lote de estudiantes que toman el curso. Por lo general, lo que sucede es que el estudiante busca en Google el proyecto, encuentra un código fuente en línea, lo copia y lo envía como su proyecto.

El instructor realmente no se molestaría en revisar el código, en primer lugar, porque no lo entendería, en segundo lugar, no le importaría una mierda si el estudiante implementara el proyecto por sí mismo y lo entendiera o no.

Entonces, ahí lo tienen, así es precisamente cómo se enseña la programación en la mayoría de las universidades indias, excepto en algunas muy buenas.

Tengo muchas respuestas para esta pregunta. No voy a decirte cómo enseñan aquí, ya que Vishnu KS ya lo ha explicado muy bien en su respuesta. Pero algunos otros aspectos que configuran la educación.

Evaluacion de proyecto:

En primer lugar poco fondo. Soy cuarto estudiante de doble titulación en IIIT-A. Teníamos 10 créditos del proyecto de verano. Así que desafortunadamente, todos los de doble titulación tuvieron que hacerlo. Mientras todos los demás disfrutaban de sus vacaciones o estaban ocupados en la preparación de la colocación, tuvimos que permanecer en la universidad solo para completar el proyecto. La razón que dan para esta estadía es que estamos obteniendo ambos títulos en 5 años, por lo que para compensar ese año adicional, tendremos que arruinar nuestras vacaciones. 🙁

De alguna manera, todos estuvimos de acuerdo con ese punto y comenzamos a hacer nuestro proyecto. Nos quedamos aquí, durante todo el verano, y trabajamos muchísimo. Ahora, aquí, en este punto, aconsejaré que nunca trabajes tan duro si estás haciendo un proyecto universitario. Nunca lo verán. Su ego siempre te decepcionará. Esto es lo que sucedió el día del juicio final. Estaba listo con la presentación, ya que la mayor parte de mi algoritmo estaba en la simulación, necesito mostrar la demostración. Así fue como fue mi presentación.

F1, F2, F3 – Facultades en panel

M- Mi mentor

Yo me

F1- ( Leyó) RRT-Scan, ¿qué es esto?

I- Señor, déjeme explicarle qué es RRT. Es un muestreo basado en algo de planificación de movimiento, … bla bla bla

F1- ( me interrumpió) No nos interesa la teoría, muéstrame los resultados.

I- ( cambiando a resultados) Señor, estos son …

F1- (de nuevo interrumpiendo ) ¿Qué, cómo …? ¿Cómo puedes obtener esos resultados?

I- Señor, primero déjeme explicarle qué algoritmos he usado para comparar. no me dejaste

F1- Bien, continúa.

F1 – ( Antes de que pueda comenzar) Hablaste sobre el muestreo, cuál es el conjunto de datos.

I- ( ¿Qué demonios?) Señor, esto no es aprendizaje automático. Esto es muestreo en planificación de movimiento. Las entradas son la posición inicial y el objetivo.

F1- ( Evitando lo que acabo de decir ) Estás perdiendo el tiempo, ni siquiera lo has explicado. Te lo dije al principio, no debería tomar más de 10 minutos.

I- (¿Cómo puedo explicarle el trabajo de 3 meses en solo 10 minutos, y eso también cuando no está listo para escuchar?) Señor, sería mejor si ve el algoritmo en la simulación. Explicarlo de esta manera, llevará años.

F1-Ok, muéstranos.

I- (comenzó la simulación)

No era visible en la pantalla del proyector ya que durante el día, la luz del sol entraba en la habitación, por lo que toda la pantalla brillaba. mi mal 🙁

Le pedí que viniera a ver en la PC.

F1- (gritando) no has hecho nada en verano y nos has engañado.

I- Pero, señor, solo vea el trabajo que hemos hecho aquí.

F1- No, no me gusta, has perdido nuestro tiempo, cada año un chico proyecta en simulación. Ustedes toman códigos de internet y nos lo muestran. ¿Cuándo nos mostrará la implementación real del hardware?

I- Señor, le hemos mostrado hardware solo en el último semestre, este proyecto fue de alguna manera más grande que el anterior, por lo que no pude hacer la simulación y el hardware al mismo tiempo en un corto lapso de 2 meses.

F1- ¿Cómo es mejor tu algoritmo?

Yo, señor, le he mostrado los resultados.

F2 – ( por primera vez ) ¿Has hecho alguna encuesta de literatura? ¿Dime el nombre de alguien que ha trabajado en el mismo campo?

Yo – ( ¿qué demonios? Ella ni siquiera me estaba escuchando cuando estaba explicando. Bueno, mi mentor nunca me pidió que leyera los documentos durante el proceso, porque entonces empiezas a pensar de la manera en que otros han hecho su trabajo. Y realmente esto aumentó mi procesamiento de pensamiento )

La ignoré 😛 totalmente.

M: este es un algoritmo adaptativo.

F3 nunca habló, todo el tiempo ocupado en su teléfono móvil.

F1- (de nuevo) Entonces no has hecho nada, no estoy contento.

Estaba pensando, bueno, esto no me ha pasado solo a mí, el semestre pasado, ni siquiera vio una presentación, solo porque no podían explicar en términos matemáticos adecuados.

Todavía estoy esperando calificaciones, solo esperando obtener C o D 🙁

Antes de mí, uno de mis amigos, que proyectó conmigo en el sexto semestre, hizo su presentación. Hizo la implementación de hardware. Realmente implementó el controlador PID y también probó su algoritmo (BUG modificado) en ese banco de pruebas. Los que no entienden, trabajó mucho en poco tiempo. Diseñó un nuevo algoritmo, implementando un filtro Kalman extendido. No es tan fácil. Pero lo hizo.

Después de la presentación, le pidió al señor que viera la demostración de hardware, donde su robot tuvo que atravesar el camino desde la fuente hasta el objetivo evitando obstáculos. En la primera prueba, su robot se atascó, puede ser un problema de batería. Solicitó otro juicio. F1 no estaba listo para escuchar. Dijo que no lo has implementado, me estás engañando.

Pensé que te engañamos en el último semestre (le mostramos el controlador de Bang Bang, que mostraba un comportamiento estocástico), te convertiste en uno, y ahora nuevamente eres uno.

Este es el problema principal, la facultad nunca aprecia el trabajo. Durante el tiempo del panel, están listos para patear tu a **. Ni siquiera quieren escucharte. No sé si es cuestión de ego que cómo pueden los estudiantes enseñar a una facultad o si están alimentados con su vida.

Para todas las facultades, es una solicitud, comenzar a apreciar el trabajo del estudiante en lugar de ser cínico todo el tiempo.

Escenario reciente sobre la Facultad F2: algunos de mis jóvenes tomaron el proyecto debajo de ella, y ella les ha asignado un proyecto, supongamos X. Justo antes de un día de presentación, estos chicos descubrieron que otro grupo debajo de ella está haciendo el mismo proyecto y usando el mismo conjunto de datos. Intentaron contactarla, ella comenzó a culparlos. 😛 ironía. Entonces, finalmente, de alguna manera obtuvieron un proyecto de mi compañero de lote y salvaron su trasero. (PD: F1 no pudo asistir a la presentación, de alguna manera, por lo que su trasero se salvó)

Evaluación de laboratorio:

Primero de todo algunos enlaces:

Laboratorio virtual de ingeniería de software

http://www.nitkkr.ac.in/clientFi

Así es como se debe enseñar el curso de ingeniería de software.

  • Lo que nos pidieron es hacer
  • Alguna programación básica de Java (lo hicimos en la programación Orientada a Objetos: /)
  • Utilice el conector Java DB (¿qué ???: O)
  • Dado un código C, encuentre todo el identificador.
  • Escriba un código para encontrar la cohesión y el acoplamiento de un código C dado
  • código para el árbol de decisión
  • y código para ……

En teoría, nos enseñaron todos los modelos de software, pero la implementación práctica nunca se mostró. Mientras que en otra universidad, incluso en IIT, usan una herramienta estándar para encontrar cohesión y acoplamiento y luego el análisis es lo que se les ha enseñado. Lo que hicimos, desperdició nuestro tiempo codificándolo. Era como si nos pidieran crear un compilador. Sé que hay codificadores increíbles en nuestra universidad, pero eso no significa que podamos codificar cualquier cosa. Por el nombre mismo, cualquiera puede adivinar, el sujeto de ingeniería de software debe tener algún proyecto en el laboratorio, pero no, somos codificadores, por lo que tuvimos pruebas de laboratorio.

En 2 horas tienes que hacer un software que funcione.

Afortunadamente, de alguna manera pude hacer uno, pero durante la evaluación, solicitó ejecutar código en su archivo de entrada. De alguna manera usé mi nombre de archivo ficticio como “test.inp”, pensando que lo cambiaría por el nombre de archivo que TA tiene en el momento de la evaluación, ya que solo una línea de cambio no costará nada. Pero aquí viene el suspenso, el TA no me dejó cambiar el código. Entonces, dije señor, déjelo entonces, no funcionará en ese archivo, mostrará algún error. Ahora aquí viene la respuesta final ” Simplemente ejecútalo una vez, a veces se ejecuta “. ¿Cómo puede ser tan estocástico para algo determinista? Veredicto: obtuve 0, solo por una sola línea.

Algo exactamente similar le sucedió a uno de mis jóvenes.

Si el profesorado está tan preocupado por estas pequeñas cosas, deberían haber utilizado un poco de OJ para una evaluación justa. Al menos no son tan tontos. 🙁

La mayoría debe haber escuchado que IIIT-A es bueno para la codificación debido a su entorno de codificación, pero es cierto. Pero nadie dice eso, solo hay algunos maestros que aprecian y ayudan a este entorno.

Lo que Vishnu KS ha mencionado es cierto, pero también es una verdad amarga.

Así es como la programación es como se enseña la programación en mi universidad.

PD: eliminé la respuesta anterior porque ahora mi percepción ha cambiado y he visto algunas cosas más.

Mi reacción después de leer esta pregunta.

Profesor: hoy vamos a aprender cómo crear una página web básica usando html.

Estudiante- ¡ Bien señor!

Maestro , empecemos.

(Cuenta todo muy rápido en 10 minutos, escribe sintaxis solamente. Ni siquiera un programa completo está escrito por él en la pizarra que nadie puede entender)

¿Cómo puede alguien enseñarnos a escribir una página web básica en 10 minutos? Tal vez el maestro es superman.

Profesor- svdbdbdvbdvxkdvehbdgdbfhdbdbbd (algo como esto)

Estudiantes- ( Emoji pensando )

Maestro: ¿ Todos entienden?

Estudiante (toda la clase) – Señor, no podemos entender lo que ha dicho, por favor sea lento para que podamos escuchar sus palabras.

Profesor : vamos al laboratorio a hacer prácticas, entonces lo entenderás. No te preocupes! Ayudaré.

Estudiante- ¡ Bien señor!

(Los estudiantes cotillean entre sí “El señor ayudará, entonces no habrá ningún problema”)

Va al laboratorio, algunos sistemas no se encienden

Estudiante 1- Señor, mi computadora no funciona.

Estudiante 2- Sir mío tampoco está funcionando.

El estudiante 3- mío tampoco funciona.

Maestro: Espera, lo solucionaremos.

(El maestro llama al asistente de laboratorio 15 minutos muertos 45 minutos restantes)

Profesor: abra el bloc de notas y comience a escribir el programa que le he dicho.

Primer pensamiento ( en mente ) : lo que sea que nos haya dicho el señor, no lo podemos entender. ¿Qué deberíamos escribir? (Emoji de ojos rodantes)

Segundo pensamiento ( en mente ) : realmente el bloc de notas que usa el bloc de notas hoy en día para desarrollar programas en la industria, al menos instala notepad ++, parece bueno escribir el programa, es más fácil de usar, al menos podemos centrarnos más en escribir códigos y luego luchar por buscar fuera de lugar soportes.

Estudiante- Señor, díganos qué escribir. No podemos entender lo que has dicho en clase.

Profesor: escriba lo que le he dicho en clase (¿en serio?). Volveré pronto hasta entonces escribir programa.

Algunos de los estudiantes que buscaban en Internet hicieron una página web.

Profesor: mira estos tres estudiantes han hecho una página web que les dije

Algunos estudiantes luchando

Estudiante- Señor, estoy atrapado aquí, ¿cómo puedo hacer esto?

viene el maestro

Maestro: Esto es lo que te dije en clase, ¿dónde estabas en ese momento? (Le da una buena conferencia de 5 minutos a ese estudiante acerca de cuán menos le importaba porque no puede escuchar lo que el maestro le dijo en clase “que nadie pudo entender”)

Otros estudiantes atorados no llaman al maestro por esto.

Las conferencias de laboratorio en más del 50% de los estudiantes no han hecho página web

Profesor: el sábado quiero que todos escriban el mismo código de página web en el archivo. Si alguien no pudo traer el archivo, no se le permitirá hacer prácticas.

Los estudiantes que cotillean entre ellos lo que escribimos no hemos hecho la página web porque el señor no ha dicho el concepto correctamente. Por fin, toda la clase copió el código de esos tres estudiantes.

Las clases siguen así, nadie entiende lo que el maestro le dijo.

Después de algunas clases.

Profesor: su curso de más del 50% ha finalizado.

Ahora youtube y google es nuestro maestro para ayudarnos a programar.

Los estudiantes buscaron en internet videos vistos en youtube que finalmente pudieron entender. Otorgue buenas calificaciones a los semestres. Cuando llegó el resultado. La mayoría de los estudiantes obtienen buenas notas.

Maestro: le he enseñado a los estudiantes que por eso obtienen buenas notas.

Estudiante ( con sarcasmo ) – ¡ Sí señor! Todo esto es por tu culpa.

Mis sugerencias : proporcione al menos los IDE actualizados que se utilizan en la industria hoy en día para que podamos aprender qué está utilizando realmente la industria. Si no, al menos proporcione notepad ++. Y Turbo C es lo que debe cambiarse. Algunos conceptos nuevos de C no funcionan en Turbo C. Hay otros compiladores como gcc.

Ese es el escenario!

MORAL- Te enseñan alfabetos y esperan que escribas historias.

ps- No creo que odie la programación, por eso escribo esta respuesta. ME ENCANTA LA PROGRAMACIÓN.

En una línea: diría que nos enseñaron programas en lugar de programación.

Todavía recuerdo los días de la universidad cuando nos “enseñaron” HTML como parte de un trabajo llamado “Programación centrada en la red”.

  1. Tuvimos una pregunta de 10 puntos donde tuvimos que escribir el marcado HTML de una página web en papel. Con una gran tabla que se proporcionó y básicamente tenía que escribir para la tabla con todas las filas. NO “ETC”.
  2. Recuerdo que escribí “
    ” en lugar del “
    ” prescrito y tuve marcas cortadas en mi papel 😀
  3. Otro maestro no sabía que “flotar” era una palabra. Solíamos divertirnos cuando ella lo pronunciaba h-over. Algunos de nosotros que estábamos familiarizados con CSS le pedimos que confirmara, y ella dijo que significaba “dirigirse” a la razón de esto, el ejemplo CSS contenía “h1: hover {color: red}”
  4. Uno de los maestros anteriores menciona que “Wireshark” no tiene nada que ver con la creación de redes.

Muchos trucos para agregar, pero inútiles. Tú entiendes.

Estos son ejemplos de incompetencia en los maestros en ciertas materias que requieren la actualización de los maestros.

Como se señaló en alguna otra respuesta, se han protegido o se han protegido de ponerse frente a una computadora y escribir código real (incluido el marcado).

Hay incidentes de mi universidad, pero diría que esto sucede en muchas de las universidades de toda la India.

Incluso para los cursos de posgrado, el contenido de las presentaciones se extrae literalmente de las diapositivas disponibles en línea (estado allí, hecho) en MUCHAS universidades porque:

  1. Los estudiantes quieren hacer algo diferente, pero no están equipados. Quieren “verse” genial.
  2. Los profesores no están equipados para comprender si el contenido es original.
  3. Calificaciones y la forma en que se asignan las calificaciones.

Habiendo dicho todo esto, tuvimos algunos buenos hombres y mujeres apasionados por lo que estaban haciendo. Tuvimos algunas raras ocasiones en las que se nos dio un problema y se nos pidió que resolvieramos.

Esta es sólo mi opinión. Podría estar lejos de la verdad. Por favor corrija mi miopía si la hay.