Cita:Amen por eso, pero TAD en SSL era un tema aislado que no tenia nada q ver con los demas , digamos q TAD y tal vez en alguna forma los programas comandos eran lo mas util que se aprendia en sintaxis... siendo el programa comando una boludez q cualquiera puede aprender, pero no cuesta nada gastar 30 min de una clase en explicarlo... ahi encima te das cuenta de como trabajan los comandos de la linea cmd. Por lo menos, ami me paso asi. Sin embargo con un batch o bash tambien se puede hacer un programa comando, es mas, se hace, pero es mucho menos generico que uno hecho en un lenguaje como C, ya que el programa comando en C, corre en cualquier plataforma, mientras que los otros, estan hechos para sistemas operativos determinados porque son un bloque de ejecucuion.
TADs lo mencione porque diste a entender de que estabas en contra de la enseñanza de "Matematica teorica". Si no sabes, por ejemplo, lo que es una n-upla en Conjuntos, es mas facil que te confundas una llave con un parentesis, por ejemplo. TADs es un lenguaje en si mismo, es una forma de documentar, de explicar a los demas que hace tal estructura. Y para entenderlo bien, se necesitan ciertos conocimientos "teoricos".
No es el tema de que "no cueste nada explicar X cosa", sino mas bien, si corresponde enseñarlo en esa parte o no. Generalmente, no aprendes Pascal en Algoritmos, sino que aprendes lo "minimo indispensable" para ver que lo que pensaste, funciona. Y nadie se queja de ello, porque lo importante es aprender el algoritmo. Sino, se llamaria "Programacion 1" como en su momento lo fue.
Cita:Claro, entonces analisis matematico, fisica, y todas esas materias son al pedo tambien no? no entendiste, o si, pero no tiene sentido que me digas eso ya que aprender C no implica tirar lineas de codigo toda la vida porque para empezar, saber C no te da laburo hoy en dia, pero sabiendo C, que es "el padre" de la mayoria de los lenguajes que hizieron furor en la historia, te da el pase directo a cualquier lenguaje despues.
¿Con analisis matematico y fisica aprendes a programar? Guau, que loco, no sabia!!!
Fijate que yo dije: La idea de que el ing. en sistemas
estudie cosas de programación, es modelizar.....
No mezcles los tantos.
Cita:Ojo, no estoy acudiendo a que se enseñe C, sino que se enseñen tecnicas faltantes de programacion CON C, ya que para mi el lenguaje C es un elemento fundamental para TODO LO QUE PASA ABAJO! al ingeniero no le interesa lo que pasa arriba nada mas, el ingeniero es ingeniero porque conoce un sistema de abajo hacia arriba, creeme que no me equivoque de carrera, y cada vez me rectifico mas
C es un elemento fundamental para ser el tecnico de todo lo que pasa abajo.
Para entender lo que pasa abajo, no necesitas saber ningun lenguaje de programacion, ni siquiera assembler.
Necesitas saber de algoritmos, mas cosas de Arquitectura de Computadores.
C no 'invento nada'. No es que vino Ritchie y dijo "uia, vamos a crear los punteros" y luego "uia, tomemoslo como matrices", y la computacion fue mejor por eso... C es un lenguaje que se uso masivamente en su epoca, y que no es necesario para entender nada, ni tampoco te hace mejor ingeniero, que alguien que aprendio Pascal envez de C, o que sabe un poco mas de recursos humanos que vos. C deberia ser un curso paralelo, y la facultad deberia estar llena de cursos paralelos. Esa es mi prupuesta.
Vote a Bladimir para Rector, postulante por el (ne)Gro.
Por ultimo, deberia ser como dijo donadello con la herramienta Rational: La usa el que quiere. El que hace el TP con Rational, recibe un certificado oficial de IBM (creo) en el uso de Rational. Por eso mi idea de que NO SEA OBLIGATORIO, al igual que no deberia ser obligatorio el uso de Pascal para el TP en Algoritmos. No se deberia gastar ni una micra de segundo de clases, en enseñar C o Pascal, en materias que no son exclusivamente eso (como talvez si lo puede ser Paradigmas).
Cita:aver si vamos a ponernos a hacer un arbol B en java sin punteros... te quiero ver, todas las cosas de bajo nivel estan implementadas en C... todas, desde los sistemas operativos, hasta los interpretes de lenguaje, los motores de lenguaje, los engines de juegos, las aplicaciones que usan directamente las APIs, los motores de bases de datos...
Mini-pelotudeces:
A) Porque no hacer el arbol B en Pascal? Aunque no lo creas, es muy potente.
B) Si queres hacer un arbol B en java, tenes la clase respectiva para hacerlo.
C) En java,
toda variable es un puntero, con contadas excepciones. Es algo que nunca me canse de repetirte en Objetos :P...
D) Podes hacerlo en C#. Tenes que desactivar el "seguro" que tiene, y podes programar un arbol B, en un lenguaje interpretado. La sintaxis es similar a la de C. Segun tu criterio: ¿Porque aprender C, si con C# estoy dentro del mercado, y ademas puedo hacer estructuras que solo se hace con lenguajes de 'bajo nivel'? ¿
C# es de bajo nivel por eso? ¿incluso cuando sea un lenguaje interpretado? ¿Porque sibarita es tan rica?
E) Todas las cosas de bajo nivel estan implementadas en lenguajes de bajo nivel, valga la redundacia. Los unicos lenguajes de bajo nivel son los onda Assembler. C es, de los de
alto nivel, el mas bajo. Osea, C es de alto nivel.
F) Con C se pueden hacer programas de 'bajo nivel', porque permite enbeber codigo Assembler. Osea, como no es de tan bajo nivel, tiene que llamar a otro lenguaje para hacerlo. Como las API.
G) El que un lenguaje pueda o no hacer las cosas que vos decis que son de "bajo nivel", depende del que genera el codigo maquina, mas que del lenguaje en si. Se puede ver el caso de Python, del cual no hay solo un 'compilador' sino que hay varios, incluso uno que te lo termina compilando en MS-IL (el 'assembler' de .net).
H ) Excepto algunas que poseen maquinas virtuales, la mayoria usan directamente las API de un sistema operativo. Te puedo dar el caso de VisualBASIC, lenguaje interpretado, y creo que tambien tiene maquina virtual propia,y sin embargo, podes acceder a la API de windows como quieras. Si queres, te paso un par de manuales al respecto ;).
I ) Con smalltalk se hizo un sistema operativo en sus inicios, hecho por Xerox si no me equivoco. Mucho antes de Mac-Os, y del tio Bill. ¿Smalltalk por eso tambien es de bajo nivel?
J ) Sobre los motores de juegos, en el foro de la ADVA se estuvo discutiendo eso. Vos estas defendiendo la misma postura que se defendia hace veinte años: ¿Porque voy a programar en C, si con Assembler puedo hacer juegos con mejores efectos graficos?.
Bueno, el tema es que las maquinas cada vez se hacen mas rapidas, mas potentes. Hay multiprocesamiento bajo el poder de usuarios comunes. Hay virtualizacion por hardware. Al igual que antes, se dejo Assembler para usar C, porque C era 'mas facil, rapido y mantenible programar' que assembler. Se eligio perder potencia, para ganar tiempos de trabajo. Ahora esta pasando exactamente lo mismo entre C, y otros lenguajes (como C# con XNA, entre muchisimas otras opciones). Se prefiere perder potencialidad, porque en estos momentos no importa tanto...
Cosa importante:
En SSL, se obligaba a todos a que aprendan un lenguaje ( C ) cuando no era realmente necesario. Aca se esta hablando de que ese hecho no sucede mas.
Cita:Yo veo un hueco entre los algoritmos y los sistemas de bajo y medio nivel, y mas ahora que no se aprende C que es fundamental para eso.
¿Porque no nos enseñan a hacer arboles en Assembler, que es de bajo nivel? ¿Porque no tiene sentido? Y bue.... durante muchisimo tiempo seguro que se hacia....