JAVAizando sistemas de la USAC.

Una de las cosas por las que la gloriosa y tricentenaria Universidad de San Carlos de Guatemala se ha dado a conocer a nivel nacional, por ser una de las universidades en donde ganar los cursos es un sacrificio sinigual, Decir que alguien se graduó de la USAC muchas veces significa que es una persona que ha superado etapas de burocracia, catedráticos trabadores, y sobre todo, muchos desvelos. Y qué decir del prestigio de salir de Ing. en Ciencias y Sistemas, una de las carreras que por mucho tiempo fue considerada como la más desafiante dentro de la USAC. Ahh un gran sacrificio, mas por los 80s; sin Internet, ni wikipedia, ni Sourceforge, sin Amarok o Winamp y obvio sin mp3 de Kreator que escuchar para una mayor iluminación de algoritmos, etc…, y con una gran carga algorítmica dada en los cursos científicos computacionales y que había que desarrollar e investigar en bibliotecas convencionales.

Sin embargo todo esto ha ido cambiando, y desde el 2005, desde que entro el dizque decano Paiz, y su equipo de trabajo, específicamenteel Ing. Mazariegos, ex director de la Escuela de Sistemas, quien propuso al inicio de su gestión, “cambios” que supuestamente beneficiarían al estudiantado. Estos cambios fueron fundamentados en la necesidad de renovación de enseñanza en la carrera, que según él, eran más aplicables, llevaron a convertir esta carrera de alta demanda en Guatemala, en algo asi como una carrera enfocada más en tecnologías cortoplazistas y triviales, removiendo todo rastro de ciencia que tenía la carrera, y convirtiéndolo en J2EE, etc, una tecnología que si bien los conocimientos de ésta tienen alta demanda en el mercado, todos sabemos muy bien que el mundo tecnológico cambia a un ritmo acelerado, y lo que hoy es tecnología de punta, mañana es tecnología inservible, e inútil. y Java no va a ser la excepción.

Hasta donde yo se el nombre de la carrera es “Ingeniería en Ciencias y Sistemas”, mas no “Ingeniería en Java y Paradigmas Tecnológicos Actuales de Sistemas”, ya que pareciese que se removió cualquier rastro de ciencia que quedaban en cursos de 3er semestre al 6to, Convirtiendo los contenidos de cursos tan importantes como Estructuras de Datos, de Arboles B a Web Services e i18n en Java, y a la masterización de herramientas como NetBeans y JDeveloper…

El problema ha llegado a tal extremo que la pobre generación que comenzó Programación 1 en el 2do semestre de 2005 no sabe ni siquiera el concepto de puntero en C/C++, mucho menos van a saber la implementación óptima de un arbol B en C/C++, o de un Arbol de Sintaxis Abstracta, muy útil para los cursos de Compiladores, que afortunadamente siguen sin cambio en sus temas titulares y el contenido se sigue basando en el Libro del Dragon sin embargo…

A esto viene la siguiente pregunta: Cuando se ha visto que un compilador este hecho en una plataforma tan ineficiente sobre Java??? pues señoras y señores, esto es lo que se está haciendo en los laboratorios de Compiladores 1 y 2, imponer el uso de herramientas tan ineficientes como JLex y Cup y crear un intérprete o compilador en lenguaje Java que se ejecute ineficientemente sobre la JVM…

Para muestra un boton, el proyecto publicado en este blog esta hecho en Java, con una ineficiencia enorme, y no tanto por culpa del programador(o sea yo ;-)), sino de la plataforma Java y su JVM, Esa ineficiencia se hubiera minimizado si se hubiese hecho en un lenguaje igual de portable, e incluso soportando más plataformas de hardware/software que el mismo Java como C/C++ bajo GCC usando Flex y Bison o ANTLR(y si no me creen lo de la portabilidad, dos preguntas sencillas… Con que lenguaje está hecho y bajo que esta compilado el kernel de Linux?? en C bajo GCC obviamente, y en cuantas plataformas de Hardware se ejecuta?? Muchísimas, incluyendo teléfonos móviles…), por lo que la excusa de la portabilidad era el motivo para el uso excesivo de Java en los cursos de programación en la Escuela, con el anterior argumento se acabó.

Y no es que esté en contra de tecnologías y paradigmas como J2EE, .NET, , ni de lenguajes como Java o C# o tendencias como Web Services o i18n, Se que con ellas se pueden realizar muy buenas aplicaciones con el mínimo de esfuerzo, y reconozco que estas tecnologías se tienen que seguir impartiendo, sin embargo como temas de laboratorio, no de la clase titular. De lo que sí estoy en contra es de la sustitución de la base científica fundamental por éstas, que bien se sabe que lo que es ciencia, perdura por los siglos de los siglos.

Afortunadamente yo todavía tuve la oportunidad de ser la última generación en aprender lo que quedaba de Ciencia de la computación… ya que gracias a este background científico, aprender nuevas tendencias como Ajax, Ruby on Rails, J2EE, se hace mucho mas sencillo, y el cambio de paradigma menos costoso y doloroso… a que si le ponen a un alumno carnet 2005 a que les desarrolle un sistema de archivos para una base de datos usando Árboles B+ bajo C++. Que las cosas buenas continúen, y la ciencia computacional regrese a donde debe estar, he dicho.

11 comentarios

  1. Desde que entré a la San Carlos a la gloriosa carrera de ingeniería en Ciencias y Sistemas (año 2002), que para mi sigue siendo gloriosa, se han dejado proyectos en los cuales hemos tenido que implementar un sin fin de cosas en plataformas ineficientes para ellas.
    Ahora preguntémonos cual es la razón de esto?
    Por experiencia propia te puedo dar la respuesta:
    “El desarrollo de aplicaciones en plataformas ineficientes nos permite conocer a fondo el funcionamiento de las distintas plataformas y sus principales debilidades y fortalezas, lo que nos coloca en una posición favorable cuando tenemos las herramientas óptimas para realizar una aplicación a una empresa que nos contrate o en la cual laboremos”
    Como es esto posible? La ineficiencia de las plataformas nos obliga a investigar los conceptos necesarios que nos permitan desarrollar aplicaciones eficientes a pesar de las debilidades que tengan las plataformas de desarrollo.
    Es utópico pensar que en una empresa uno llegará a desarrollar aplicaciones con las herramientas óptimas para ellas. Te lo digo siendo yo, pensum cerrado de la carrera en Ciencias y Sistemas, con 3 años de experiencia desarrollando aplicaciones en distintas empresas y departamentos de informática, habiendo desarrollado y modificado bases de datos elaboradas en pascal y excel, ambientes gráficos en c++, etc., no porque yo quisiera, sino porque era lo único que las empresas podían pagar y pues gracias a los proyectos en “plataformas ineficientes” que nos dejaban en los cursos, pude sacar adelante.
    Entiendo tu punto de vista, yo también pensaba igual cuando estaba en los cursos que vos estás, pero te garantizo que todo ese proyecto sin sentido que se deja cobra sentido al momento de tener que competir contra estudiantes o ingenieros en sistemas de otras universidades que te puedo decir con orgullo, se encuentran muy por debajo de nuestro nivel.
    Por cierto, en contraste con el título que le pusiste al post, yo le hubiera puesto “modernizando sistemas de la USAC”, ya que yo soy auxiliar y la plataforma que estoy utilizando para el curso es .NET no JAVA pues se pretende que el estudiante egresado de la carrera conozca las distintas plataformas mejor cotizadas en el mercado actualmente. A pesar de ello, todavía se enfatiza en el concepto para evitar que los alumnos no aprendan lo que se debe.

    No hablemos mal de una carrera que sigue manteniendo su prestigio dentro y fuera de la universidad. Estemos orgullosos de ser estudiantes de Ciencias y Sistemas, una carrera de la que salimos por nuestra capacidad de investigación e ingenio, no por que los profesores nos den todo servido en bandeja de plata.

  2. Estoy de acuerdo con vos en muchos de tus puntos, pues obviamente lo que vamos a encontrar en al salir a trabajar al “mundo exterior” va a ser muchas aplicaciones desarrolladas en .net y en java, o empresas que quieren portar sus aplicaciones propietarias hechas en sistemas cerrados como el AS400 de ibm a plataformas abiertas, sin embargo, a lo que me refiero es a la pedagogía aplicada en la escuela, no estoy de acuerdo en que desde un principio de la carrera, en cursos como IPC1 y 2, los labs sean en Java, ya que aunque es un excelente lenguaje para RAD, y cuente con una ambiciosa libreria, considero que existen mejores lenguajes para aprendizaje de conceptos de programacion orientada a objetos, tales como Perl o Python, que a pesar de ser lenguajes interpretados igual que java o .net, tienen un nivel pedagógico más alto, y cuentan con una libreria tan grande como JAVA. Además obviamente, mis puntos sobre compiladores fueron dados, y queda claro que los compiladores, aunque no tengan ninguna aplicación en el “mundo externo”, a nivel pedagógico se debe cultivar a las nuevas generaciones la eficiencia temporal de cualquier algoritmo, y que mejor curso que Compiladores para logralo.

  3. “Bajándole el nivel a Sistemas: esfuerzos realizados por la actual administración”, o “Sistemas, cada vez más accesible para los 2005+” son mejores títulos para este post, pero no “modernizando…” imo.

    Respecto a la eficiencia de las aplicaciones, no se puede SUPONER que como estudiantes nos vamos a molestar en investigar como escribir código eficiente, lo cual no se ve ya que la mayoría solo se basa en si “funciona o no”, en “bueno, así me lo hace a mí” y “mejor ni lo toco (el código) porque ya no me va a funcionar”, incluso muchos vuelven a implementar funcionalidad que ya es parte de la librería (ej. pilas, colas, etc) sin imaginarse si quiera que ya tienen a la mano otras más eficientes (y más probadas) y de paso no saben ni leer la documentación, no saben de algoritmos porque no han sido forzados a aprenderlos en alguno curso de 3er o 4to o 5to. semestre o solo han podido recibir clases con “ingenieros” como lo es “alonso”, “el chato”, “luis sanchez”, etc. Ya no cabe imaginarse al estudiante deteniéndose a pensar sobre los detalles de la plataforma, más bien buscándole un ‘goto’ a todo lenguaje.

    Como que sería más acertado decir que al estudiante se le esta poniendo la carrera en bandeja de plata al orientarlo al uso de entornos de desarrollo “eye-candy” y no a la independencia de herramientas perdiendo el enfoque en la buena programación gracias a los asistentes (y otros) que hacen gran parte del trabajo pero impiden que el principiante vea en el fondo como es la implementación. Por ejemplo, si en progra1 se usa Java y se supone que es una “introducción”, porque no entonces comenzar utilizando solamente un editor de textos y linea de comandos únicamente.

    Ya ni las matemáticas tienen el mismo nivel (y aún así, hay muchos dependientes de la voyage.) Si todo sigue así, es de esperarse que los cursos de compiladores sufran cambios negativos gracias a esta “modernización”.

  4. Cito textualmente: “Por ejemplo, si en progra1 se usa Java y se supone que es una “introducción”, porque no entonces comenzar utilizando solamente un editor de textos y linea de comandos únicamente.”…

    Creo que no has echado un vistazo a la progra1 del semestre pasado.

    Ahora bien, en estos comments hay dos puntos de vista interesantes: Los del auxiliar que dice que los estudiantes se ven obligados a trabajar con un lenguaje y plataforma ineficientes y engorrosos para que en el momento de salir al “mundo real” la cosa nos sea más sencilla; y los del estudiante que pone las cosas frías, mundanas y generalizadas al decir que nadie se pondrá a eficientar códigos, pues si por la obra y gracia del Espíritu Santo un teclazo funciono, mejor ni se toca porque aguanta hasta que algún auxiliar se digne a visitar el stand de nuestra compu para calificar.

    Un comentario no tiene ninguna realación con el otro, lo sé. Pero los considero interesantes porque el auxiliar, con experiencia, ojeras, arrugas y pensum cerrado (cuya identidad, gracias a la vasta y orgullosa descripcíon de su persona que nos ha brindado, deduzco con casi toda probidad) se refiere a la “eficiencia” como el manejo de las ideas y conceptos originales de desarrollo para una posterior aplicación en lenguajes obsoletos; mientras que el otro plantea que nadie jamás hará algo más que “sacar” los proyectos.

    Tengo muy claro que los conceptos antes mencionados son casi imposibles de digerir sin ser autodidactos, pero si se está trabajando con Java (cabe resaltar, engorroso y difícil de manejar), ¿no sería más “eficiente” trabajar en estas ideas y conceptos en ejercicios pequeños, en Progra 1 y 2, en Java, para luego mudar de lenguaje? Me refiero a algo más amigable, efectivo y estable como .NET, cosa que, según nuestro citado auxiliar, se está haciendo. Lástima que esta implementación no es cierto en todos los casos ni para todos los que imparten la santa cátedra, pues debemos recordar que los jefes e ingenieros graduados añales atrás aprendieron, en su mayoría, así, salieron así y esa didáctica es la que deberá seguirse aplicando, contradiciendo el concepto principal que todo ingeniero en Sistemas debe tener: Quien diga “Yo puedo manejar todo, lo último vos, a mi no me agarrás en curva con nada”, es aquél que no aprenderá más nada jamás.

    Alvos dice que debemos nadar contracorriente para disfrutar de la quietud de las aguas venideras. Mas éstas ideas, estos conceptos, de los que él habla, bien podrían aprenderse usando herramientas más estables y menos obsoletas.

    En lo personal, creo que Java es con lo que Murphy hubiese mandado a grabar poemas en las paredes de los baños modelo si se hubiese graduado de Sistemas. Agradezcamos que es Civil.

  5. Creo que no has echado un vistazo a la progra1 del semestre pasado.

    Ahora bien, en estos comments hay dos puntos de vista interesantes: Los del auxiliar que dice que los estudiantes se ven obligados a trabajar con un lenguaje y plataforma ineficientes y engorrosos para que en el momento de salir al “mundo real” la cosa nos sea más sencilla; y los del estudiante que pone las cosas frías, mundanas y generalizadas al decir que nadie se pondrá a eficientar códigos, pues si por la obra y gracia del Espíritu Santo un teclazo funciono, mejor ni se toca porque aguanta hasta que algún auxiliar se digne a visitar el stand de nuestra compu para calificar.

    Un comentario no tiene ninguna realación con el otro, lo sé. Pero los considero interesantes porque el auxiliar, con experiencia, ojeras, arrugas y pensum cerrado (cuya identidad, gracias a la vasta y orgullosa descripcíon de su persona que nos ha brindado, deduzco con casi toda probidad) se refiere a la “eficiencia” como el manejo de las ideas y conceptos originales de desarrollo para una posterior aplicación en lenguajes obsoletos; mientras que el otro plantea que nadie jamás hará algo más que “sacar” los proyectos.

    Tengo muy claro que los conceptos antes mencionados son casi imposibles de digerir sin ser autodidactos, pero si se está trabajando con Java (cabe resaltar, engorroso y difícil de manejar), ¿no sería más “eficiente” trabajar en estas ideas y conceptos en ejercicios pequeños, en Progra 1 y 2, en Java, para luego mudar de lenguaje? Me refiero a algo más amigable, efectivo y estable como .NET, cosa que, según nuestro citado auxiliar, se está haciendo. Lástima que esta implementación no es cierto en todos los casos ni para todos los que imparten la santa cátedra, pues debemos recordar que los jefes e ingenieros graduados añales atrás aprendieron, en su mayoría, así, salieron así y esa didáctica es la que deberá seguirse aplicando, contradiciendo el concepto principal que todo ingeniero en Sistemas debe tener: Quien diga “Yo puedo manejar todo, lo último vos, a mi no me agarrás en curva con nada”, es aquél que no aprenderá más nada jamás.

    Alvos dice que debemos nadar contracorriente para disfrutar de la quietud de las aguas venideras. Mas éstas ideas, estos conceptos, de los que él habla, bien podrían aprenderse usando herramientas más estables y menos obsoletas.

    En lo personal, creo que Java es con lo que Murphy hubiese mandado a grabar poemas en las paredes de los baños modelo si se hubiese graduado de Sistemas. Agradezcamos que es Civil.

  6. Supongo que la compañera “andrea” esta en progra1 o progra2, osea que puede que sea parte de las estadísticas aún… si sabemos que la mayoría de primer ingreso entran a sistemas y terminan en… ya sabemos que carrera verdad???…

    … Asumo tambien que mi colega Alvos (a quien le tengo estima y respeto) decidió no perder el tiempo contestando la sarta de estupideces que dice la estimada compañera… pero como por el momento no tengo nada bueno que hacer, quiero dar mi humilde opinión:

    …ahora resulta que Java es “engorroso y dificil de manejar”… teniendo IDEs como NetBeans, JBuilder, Eclipse, etc. todavía se le ocurre decir semejante ESTUPIDEZ… se acerca a las estadísticas.

    Luego que “¿no sería más “eficiente” trabajar en estas ideas y conceptos en ejercicios pequeños, en Progra 1 y 2, en Java, para luego mudar de lenguaje?”, lo tienen fácil y lo quieren mucho más fácil… se está acercando aún más a las estadísticas

    Luego continúa con “pues debemos recordar que los jefes e ingenieros graduados añales atrás aprendieron, en su mayoría, así, salieron así y esa didáctica es la que deberá seguirse aplicando , contradiciendo el concepto principal que todo ingeniero en Sistemas debe tener”… que muchachita más insolente, que bonito tener tu Laptop y poner en google “Java for dummies” o “Learning .Net” o cualquier cosa que necesites para resolver un problema y tener las soluciones en segundos, los ingenieros que se graduaron de sistemas hace añales como tu dices son los que fueron visionarios y ellos si sufrieron, no tenían a su alcance la cantidad de recursos que nosotros si, y es que, que falta de respeto generalizar de esa manera y estando a inicios de la carrera!!!, sinceramente me da pena ajena…

    Y finalicemos con broche de oro, lo de su opinión personal de Java no lo mencionó porque ayá ella pues… pero:

    “Alvos dice que debemos nadar contracorriente para disfrutar de la quietud de las aguas venideras. Mas éstas ideas, estos conceptos, de los que él habla, bien podrían aprenderse usando herramientas más estables y menos obsoletas.”
    … En que se basa para hacer dicha afirmación???, obviamente no ha trabajado en el área de sistemas en nuestra Guatemala, no sabe que sistemas en foxpro 2.6, delphi, etc. todavía son usados en la actualidad y bastante!… y entonces Alvos esta compartiendo su opinión de esto y su experiencia, yo creo que si se esta generando conocimiento en los blogs (como este en este caso), la cosa es entender bien las palabras de alguien que definitivamente, tiene bastante que aportar (por experiencia tanto estudiantil como laboral)… pero no!!!! la compañerita se pone a escribir de cosas que obviamente no conoce… yo sé por experiencia que uno debe de investigar, si algo aprende uno en la carrera de sistemas es a investigar y así fundamentar una opinión…

  7. jajaj… bueno algo tarde mi comentario, lo unico que puedo asegurar (siendo carnet 2002 y Pensum Cerrado) es que en los ultimos semestres que estuve en la U (estudiando Sistemas Claro) me di cuenta que los cursos perdieron el nivel drasticamente, siendo auxiliar del curso de lenguajes, puedo asegurar que ya ni “Satanas” (entiendase Otto Rodrigues), da un curso “yuca” es mas ahora lo buscan los estudiantes para estar en su seccion. No es que me oponga al cambio pero podria asegurar que algunos cursos tienen hasta el nivel de un curso de unca Universidad Privada. Y es que al buscar empleo algunos ingenieros me hicieron el comentario “Esque desde hace algunos semestres la Carrera ya no es lo que era”, refiriendose a el bajo nivel con que se dan los cursos.

  8. Buen dia Carlos, deja a Satanas en paz, que aunque ya no sea yuca como muchos cuentan, el curso sigue siendo exelente, y de muy buena base para compi 1 comparado con las otras secciones de lenguajes, y ya dejen de estar pelando a los 2005 q yo soy 2005!! :@ y ya estamos viendo c++, asi q compañeros no se estrecen, que si bien la carrera a bajado de nivel, es deber de nosotros mismos componerla y no ver a quien le podemos hechar la culpa, bueno esa es mi humilde opinion.
    salu2

  9. Les tiras mierda a los 2005 verdad vos ? jajaja, Bueno vos, leyendo esto pues lo unico que puedo decir es que siendo carnet 2004 y habiendome cambiado a sistemas en el segundo semestre del 2007 pues cambio total mente mi vision y orgullosamente me ire con los carnet 2007 ,algo rezagado de mi generacion original, no se como era sistemas antes pero lo importanten es estar abierto a aprender nuevas cosas, para mi java es excelente, al igual que c sharp o c puro y repitiendo lenguajes formales y progra 2 en el semestre actual pues me queda mucho por aprender , y ojala mis problemas economicos no me impidan llegar por lo menos al tercer año o hasta cerrar aunque lo veo lejos todavia,, no tengo nada de que quejarme, los cursos son trabados actualmente pero depende mucho de la voluntad de uno para aprender y para salir adelante, saludos

  10. Bueno yo soy un orgulloso carnet 2007, yo se que nos menosprecian y nos creen inferiores por que recibimos cursos “casacas”. Pues cuando yo empeze en IPC1 mis practicas entiendanse fueron en C y no crean que fueron totalmente faciles ya que desde ahi aplicamos los conceptos de recursividad (“Claramente no era el Factorial”), despues migramos a Java claramente pocos dias antes de la entrega del proyecto, y el proyecto fue hecho en un Ide a codigo puro, y claro el tercer proyecto fue en Netbeans pero los tiempos han cambiado… Aparte del monton de practicas en C usando memoria dinamica… Bueno en si IPC1 no es facil o pan comido como han de interpretar carnets anteriores, pero seguramente tampoco es tan complicado, en mi experiencia en Lenguajes respecto a clases teoricas muy malas,solo satanas se salva por los comentarios, Satanas era el mejor de los catedraticos dando clases, y hablando con compañeros de carnets anteriores mantienen que satanas no ha cambiado mucho, si queres ganar su clase tenes que leer, y respecto a los proyectos fue un scanner y un parser, sin mayores complicaciones claramente, pero no pueden despreciar nuestras investigaciones ya que efectivamente no recibimos ningun tipo de ayuda para hacer nuestras aplicaciones, aparte de uno que otro tip, y respecto a IPC2 muchos todavia estaran llorando por las trabadas que nos dieron en el proyecto 2 y 3, y por la mala mala calidad de auxiliares en estos cursos. Si lo miro claramente los proyectos tampoco tenian una complicacion tan grande, pero no eran pan comido, valieron en si mas de una semana de desvelo, y sigo creyendo que para ganar estos cursos tenes que saber… si no no ganas… Ahora haber que me espera de estructuras en vacas… Los tiempos cambian y las complicaciones son otras

  11. Soy carnet 2005, y pues yo no sé por qué se quejan tanto de que los cursos ya no son lo que eran antes. Si los auxiliares son los de antes, entonces por qué no tratan ellos de hacer algo? además varios ingenieros son los mismos, entonces… qué ha cambiado? el lenguaje de programación? no jodan, eso es algo irrelevante, un lenguaje u otro, qué mas da si al final los miramos todos. Terminamos viendo C, C++, C#, Java, .NET, SQL, código ensamblador, etc. entonces cuál es el clavo? si antes no miraban Java es porque no estaba tan de moda como ahora y posiblemente cuando ya no esté de moda ya no lo verán y sean los actuales estudiantes quienes critiquen que ya no es lo que era antes que Java era lo mejor que aquí que allá.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: