Mostrando las entradas con la etiqueta Facultad de Ingeniería. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Facultad de Ingeniería. Mostrar todas las entradas

miércoles, 11 de marzo de 2009

/el trabajo es salud



En el sitio de la Asociación de Ingenieros del Uruguay, se publicó este llamado para estudiantes avanzados de Ing. en Computación.

REQUISITOS:

* Estudiante avanzado de Ingeniería en Computación.
* Experiencia en bases de datos relacionales, lenguajes de programación y análisis de requerimientos.
* Se valorará haber aprobado Base de Datos y Taller de Programación, así como los conocimientos de GNU/Linux.
* Buen nivel de inglés.

Tareas principales:

* Análisis y relevamiento de requisitos junto al cliente.
* Diseño e implementación de aplicaciones
* Realización de pruebas y tareas de verificación de productos.
* Documentación


Enviar Currículum Vitae a: rrhhceibal@latu.org.uy hasta el 16 de marzo inclusive, haciendo mención a la referencia correspondiente.

Mas datos, aqui.






miércoles, 4 de marzo de 2009

/examen perdido



Fui a ver por qué reprobé, salvo un ejercicio en el que asumí el caos consecuente de los últimos quince minutos, todo el resto fue muy debatible.
Un buen rato de discusiones con los docentes, algunos me daban la razón, otros no, y las explicaciones no solo eran hacia mi, sino hacia los que coincidían conmigo, o al revés. Discusiones que entran en el terreno viscoso de los matices, que desdibujaron mi objetivo primordial, aprender del error. Parece que no entendía de manera inteligente (?).
Esas hojas son la prueba determinista de mi frustración, y de la rara determinación que puede tener lo debatible, que sé que no abarca mi vida, que va mucho mas allá de eso, ni es lo que me define.


100_5107








sábado, 22 de noviembre de 2008

/Ingeniería eléctrica- proyectos de fin de carrera 2008



De todo un poco, fue un miércoles.
Pez robótico con movimientos estudiados probabilísticamente, un marca paso externo (para uso temporal), un prototipo de satélite (globo con dispositivo GPS, sensores de temperaturas, altura, etc), lápiz óptico para las notebook del plan Ceibal, aislar sonidos, entre otras cosas.





vía brecha






miércoles, 14 de mayo de 2008

/método simplex




Web con algo de teoría (muy elemental), ejemplos, y una aplicación para calcularlo mediante los datos que ingresemos (función, restricciones, simple o dos fases). Muestra en cada paso como van quedando las tablas intermedias hasta llegar a la solución (útil como contralor), o bien puede irse al resultado definitivo.






lunes, 5 de mayo de 2008

/Herramientas para probar autómatas, expresiones regulares




Para los interesados en teoría de lenguajes, dejo unos links relacionados donde hay aplicaciones para hacer experimentos: crear autómatas a partir de expresiones regulares, editarlos, etc.
Hay para todos los gustos, y es interesante probar algunos (sobre todo los no deterministas, que no se cómo los resuelve!!!).

Este es el mejorcito, para Windows desarrollado por la universidad de Santiago del Estero, un proyecto del sepa : chalchalero
Incluye editor de autómatas, conversiones, minimización, y varias herramientas para el aprendizaje de compiladores.

Otras (aplicaciones web):
http://osteele.com/tools/reanimator/

http://ironphoenix.org/tril/tm/

http://www.cs.duke.edu/~rodger/tools/jflaptmp/






/web-ideas-aplicaciones (en la Fing)



El otro día en facultad vi un cartel donde invitan a sumarse a todos los interesados en programación web, diseño o el mantenimiento de un sitio.
Para los interesados había una dirección para informarse: com_web@cei.fing.edu.uy.

Me interesó por lo que significa el intercambio de ideas relacionadas a proyectos web, motivación suficiente para que escribiera.

La idea es armar un equipo de trabajo para desarrollar tareas de todo tipo, obviamente la mayoría de ellas relacionadas fuertemente con el sitio web del CEI, pero existen otros proyectos o ideas que se quieren organizar.
No es necesario ningun conocimiento previo o título, ergo, no es está restringido a la gente de Computación.

La reunión informativa será después de la semana de parciales.








viernes, 7 de marzo de 2008

/salón 107



Emblemático salón de la fing si los hay, de los 'cómodos', y que tiene una panorámica que me predispone bastante bien.
Ahí asisto a mi trasnochado curso de investigación de operaciones (aunque vi unos cuantos trasnochados, aun 'docentes').

(vista desde la borrosa ventana, mejor agrandarla con un click)




(vista hacia el centro desde la misma ventana)


Y me pasa lo de siempre. Me entusiasma mas el contenido de la materia, las ideas que segregan mucho mas que el proceso de cursarla. Porque ya conozco ese proceso repetitivo.
El profesor ya alertó que no se iba a profundizar sobre ciertos temas, que se aburre de dar clases, felicito su honestidad, pero todo pinta
como para que sea un tedioso cuentito, como tantas otras.
Parece coherente, y no creo que la complique porque el no quiere complicarse. También lo felicito por eso, aunque me aburra como un hongo.

Quizás sea porque navego mucho, y trabajo, una espera algo mas 'pro', lo que uno lee por ahí es mucho mas interesante que el universo acotado que la materia propone (no solo esa materia, para ser justa).

Asistí a peores cuentos en ese salón, solo por mencionar uno, tan solo uno, Teoría de Lenguajes, el rigor y el acierto del docente estaba en su encare intuitivo, que se contraponía con el duro rigor de los prácticos y
parciales, con sus pumping lemma 1 y 2, complicándome la existencia con artilugios tan ingeniosos como inutiles, porque de tanto esfuerzo para disecar el árbol no te acordabas del bosque.
¿Cuál era la esencia del pumping lemma? ¿cuántos se acu
erdan de algo más que artilugios?, ¿qué realmente trascendente quedó?, y varios tenemos la materia archivada, un éxito.

(timidez)







sábado, 15 de diciembre de 2007

/algoritmos de sorting II





Hubo un algoritmos de sorting en este blog, a diferencia del anterior, estos applets de xSortLab va de dos modos (hay una tercera, pero no es la mas relevante), uno visual, que muestra paso a paso el ordenamiento de 16 elementos, y una comparativa de sus tiempos de ejecución.
En la primera aparece debajo una línea detallando la 'instantánea' del momento.
Es bastante didáctico porque las diferencias entre los diferentes métodos son evidentes.
Los métodos que se muestran son: el método de la burbuja, ordenación por selección, por inserción, por intercalación (MergeSort) y ordenamiento rápido (QuickSort).





viernes, 5 de octubre de 2007

/axioma de FingYou!



"Las dos formas mas comunes de demostrar proposiciones en el análisis de estructuras de datos son la inducción y la contradicción o reducción al absurdo (y en ocasiones la demostración por intimidación, sólo por parte de los profesores)".

Estructura de datos y algoritmos - Mark Allen Weiss (capítulo 1 - Introducción)






sábado, 15 de setiembre de 2007

/taller de Programación y Arte



Hoy recibí de Aldo un mail con información sobre este taller de próximo comienzo en la Facultad de Ingeniería (2da semana de octubre). El mismo está orientado a alumnos de Bellas Artes, Arquitectura e Ingeniería.

Este taller fue armado por Etienne Delacroix, un docente francés proveniente del cyber punk que anda por el mundo ofreciendo su taller a las facultades interesadas.
Segun decía en el mail, Ingeniería fue la única facultad que aceptó su propuesta después de haber sido rechazada por Bellas Artes (no se mencionan motivos).
Actualmente se lleva a cabo en unos 'laboratorios' armados en los entrepisos del sector
de "sala de máquinas", al fondo de la facultad.

El cupo del taller es limitado, y el criterio de selección no parece ser tanto el orden de inscripción, sino mas bien las inquietudes que motivan a los interesados a realizarlo.
Uno de los requisitos es enviarle una carta al docente encargado señalandole las motivaciones que nos hacen querer tomar ese taller. El grupo parece estar formado en función de los perfiles de los 'postulantes' que mejor se adecuen a los objetivos del taller.
(
Para estudiantes de Ingeniería no tiene materias previas, y otorga 3 créditos ).

Actualmente el TAP no está bajo la dirección de Delacroix, sino de otros docentes, segun se citaba, con sus ventajas y desventajas.

" .....la idea del taller es que el alumno aprenda a re-utilizar porciones de harware y software para construir otros implementos. se aprende a reutilizar parches de java y html para construir páginas web y pequeños programas gráficos, o a usar elementos electrónicos básicos para construir desde instalaciones interactivas a instrumentos musicales. cuando fui vi muchas cosas interesantes: pequeños teclados, pequeños robots que se movian siguiendo reglas básicas, videos hechos con fotos y programación java, programitas de dibujo muy sencillos pero efectivos y pasibles de ser "colgados" en la web... html es el lenguaje de progrmación de páginas web, y java es un lenguaje orientado a objetos que permite dibujar y hacer animaciones, muy similar a actionscript (de hecho es su base). El grupo de estudiantes es heterogéneo. Se trabaja en conjunto con estudiantes de ingeniería capacitados para realizar cosas complejas para las que probablemente se necesite mucho más información que la que el TAP proporciona, por lo que a veces para un lego puede ser frustrante, pero si se va con ganas de adquirir elementos básicos de programación y trabajo en equipo interdisciplinal, es una muy buena oportunidad."

Quedé entusiasmada por participar de un taller donde se redefinen conceptos, y se experimenta con ellos extapolándolos a otra áreas. Y sin duda, que interactuar en esta experiencia con gente proveniente de otras orientaciones condimenta mis motivos. Me encuentro evaluando horarios de facultad y trabajo para ver si puedo formar parte...veremos.

En la web del Taller encontrarán mas información, aqui les dejo el programa, y particularmente destaco, aunque también está en la web, este texto imperdible de Pierre Lévy acerca de "La inteligencia colectiva".





miércoles, 29 de agosto de 2007

/fscanf errático o errática yo



Estoy desarrollando una algoritmo donde debo leer la información contenida en un archivo de texto, y con ella cargar un árbol con una cantidad no determinada de hijos. Justo en el dibujo quedó binario, pero no lo es. Los nodos del árbol tienen como información un nombre y un entero, y el formato del archivo de entrada es de este tipo: (A 1 (B 4 (C 3)) (D 7))
Cada nodo se representa por el par (nombre número).

Nota: no importa lo que haya entre dos paréntesis iguales )) puede haber cualquier cosa, si la entrada fuera (A 1 (B 4 (C 3)au) (D 7)111), el resultado sería el mismo.

Es obvio que la lectura es una función recursiva, y decidí hacerla empleando fscanf (o man fscanf para mas información) porque me permite chequear expresiones.


Al principio buscaba por fscanf(f,"%[()]",&c) donde c es un char. La idea era buscar por el carácter que sea "(" o ")" y leerlo, luego chequear cual fue leído.
El pseudocódigo, después postearé la solución, sería algo asi:


if c == "("
{
leo numero y nombre
creo nodo
llamo con hijo (nodo)
llamo con hermano del padre de nodo
asigno padre al hijo.
}


El problema con
fscanf(f,"%[()]",&c) es que para leer un carácter segun entiendo no saltea blancos, tabuladores, nueva línea, etc, y si bien identificaba bien los caracteres, la lectura de los datos posteriores (nombre y número) era errática. Por ejemplo a veces incluía el "(" al nombre, o sea quedaría algo asi como (B, y en otras no. No era en todos los casos.

La forma que encontré para solucionarlo fue usar lo siguiente:

char* lin; fscanf(f,"%[^()]",lin); (1)
fscanf(f,"%c",&c); (2) // leo el paréntesis que corresponda
fscanf(f,"%20s%d",nom,nro); // leo los datos del nodo

Lo que hace (1) es leer, saltando blanco, tabuladores, etc, todo hasta que encuentre alguno de los caracteres "(" o ")", esos no los lee. Para leer
los uso (2).
El string lee hasta el primer blanco, nueva línea o tabulador.

La estructura elegida para el árbol es la siguiente (las listas entre hermanos son doblemente encadenadas, algunos requerimientos asi lo imponen) :

Aclaro que omití el puntero al padre de cada nodo por motivos de claridad, pero basta ver cuales son los hijos de cada nodo para notar a qué nodo padre apuntan.

Traducido a C:

struct Arbol
{
int numero;
int cantHijos;
char* nombre;
struct Arbol* hijos;
struct Arbol *herSig,*herAnt;
struct Arbol* padre;
};


Disculpen los dibujos, pero espero sean claros, y como siempre cualquier sugerencia o mejora es bienvenida. Tampoco se si esta será mi solución definitiva.









viernes, 3 de agosto de 2007

/tarea de Arquitectura de Sistemas



Dejo una tarea que realizamos junto al Tata para la materia de Arquitectura de Sistemas, materia que consistía en ese entonces sobre circuitos lógicos, álgebra de boole, una introducción a la arquitectura de computadores, concepto de interrupciones, conocer assembler con el fin de programar a bajo nivel los componentes de la arquitectura 8086 (por medio de interrupciones, eventualmente recurrencia, etc), y una introducción a la arquitectura RISC y conceptos del lenguaje SPARC.

La tarea que realizamos fue una de las mejores que hice, tenía menos conciencia pero mas tiempo para dedicarle a facultad, y además porque en esta tarea se amalgaman una serie de conceptos: programación en assembler, manejo de la memoria de video y el manejo de interrupciones.

Objetivo de la tarea: implementar en ambiente DOS un controlador de un dispositivo de entrada/salida como es el mouse, y representar en la pantalla mediante un puntero los posibles movimientos que este hace, así como informar las coordenadas de dicho puntero cuando se presiona el botón izquierdo del mouse.

El trabajo fue realizado en ensamblador 8086, y está basado en la interrupción generada por el puerto serial COM1 o COM2.

Breve explicación:
El problema se divide en tres grandes tareas:

  • Recepción de datos
  • Procesamiento y detección de errores
  • Visualización en pantalla de información relativa al ratón

Un autómata finito muestra las diferentes instancias del problema, este diagrama nos sirvió a los efectos de construir el pseudocódigo de nuestro algoritmo principal.
(En la documentación se explica la semántica de cada estado)

Para abordar esta tarea debimos conocer algo más de lo que nos dieron sobre la UART (Universal Asynchronous receiver/transmitter), dispositivo de E/S que encapsula las funciones de transmisión y recepción empleadas en la comunicación en serie asíncrona
  • En serie porque los bits que representan un valor se transmiten uno a uno
  • Asíncrona porque se puede recibir/transmitir en cualquier momento
Si bien en la documentación hay una plantilla con mas especificaciones sobre el funcionamiento de la UART, sus registros, la forma en que recibe o envía señales, etc, a nosotros al menos no nos fue suficiente, y debimos googlear. De todos modos, la incluyo a modo de referencia rápida.

documentacion.rar
  • maquinas de estados.doc (descripción del problema, abordaje, rutinas)
  • uart.pdf (mini manual sobre UART)
  • arqoblig.pdf (letra del problema)
  • notas.txt (parámetros de la UART, notas generales)
fuentes.rar (contiene los fuentes en assembler del problema, el propósito de cada uno de los mismos está explicado en el archivo correspondiente)
  • macro.asm
  • setpic.asm
  • setuart.asm
  • vars.asm
  • rrssii.asm
  • const.asm
  • mouse.asm
utiliarios.rar (archivos necesarios para compliar, linkeditar, generar .com, etc)
  • compilo.bat
  • tasm.exe
  • td.exe
  • dosxnt.exe
  • tlink.exe

tasm
: "Turbo Assembler", ensamblador que genera un código objeto (.obj)
tlink: "Turbo Link", programa que linkedita el código objeto con otras rutinas ya compiladas, generando el programa ejecutable (.exe).
td: "Turbo Debbuger", programa que permite visualizar la ejecución de un programa, inspeccionando el valor de los registros en cada instancia del mismo en forma visual.
dosxnt: para trabajar en terminales Windows NT.

"Para ejecutar el Turbo Assembler en modo de compatibilidad con el código escrito para el Microsoft Macro Assembler, se le debe poner como parámetros:
tasm /jmasm archivo.asm
Como se debe generar un archivo ejecutable de dos .COM, al ejecutar el linker se le pasan los parámetros /t, o sea: tlink /t archivo.obj, luego de esto se habrá generado el archivo.com"

(Sobre el uso de los utilitarios está mas explicado en la letra de la tarea)

Paralelamente, no relacionado con la tarea pero sí con programación assembler, también hay un código que hicimos para preparar el examen y aprender a implementar recurrencia, implementamos el conocido problema de las Torres de Hanoi. (archivo: Hanoi.asm)

Lo pueden descargar desde la sección Fuckultad o aqui:


martes, 31 de julio de 2007

/everytime, anything



En reconocimiento a uno de mis fieles y rigurosos comentators va dedicado este post. Que bueno está el video, y la canción también (no la conocía), claro que para mi como para otros de la Fing tiene el plus de reconocer algunos ingenieriles cools (quien diría), hablo con algunos (que bien se guardaron sus 15 minutos Warhol), y ni hablar de los lugares.

by krahd (y otros)







sábado, 14 de julio de 2007

/viernes 13 - tuve parcial




Foto desde mi celular, cuando me iba. Salón B01 del Aulario, nuevo anexo de la Fing, en la planta baja. Estaba sentada en ese lugar, ahí donde tomé la foto, nro de parcial 142. Momento final del parcial.

El Aulario
Todo muy moderno y limpio, nobleza obliga decirlo, pero que frío, todo con vidrio a no demasiados kms de la rambla, no es raro que así sea...la hora y el frío, lindo horario, coreografía conspirativa.
De todos modos se agradece, en una facultad con tantos alumnos era necesario.

Sigue habiendo pocas sillas para zurdos, escribí torcida durante 3 horas y media, raro en una facultad donde veo que el número de zurdos no es nada despreciable.

Duró 3:30hs, estuve hasta el final, no quiero decir como me fue, pero mejor de lo que esperaba para haber practicado poco. El tema con esta materia es la práctica, hacer muchos ejercicios, y eso me faltó, aun así pude con la ansiedad de la culpa de no haberlo hecho, pude mas que otras veces al menos.

Me está pasando algo raro con facultad, no es que encuentre materias imposibles, pero soy yo quien está imposible para encararlas, hay que querer, y tener la mente en eso, attitude, y últimamente no es mi caso. Es raro considerando que me gusta, y no me imagino en otra cosa, pero hay motivos que desgastan. Y no significa que vaya a abandonarla, ni ahí, sino a redefinir mis expectativas y prioridades sin culpa. La culpa no es buena consejera.
No voy a entrar en los motivos personales, pero sí en los relativos a la facultad.

El horario de comienzo
supuestamente era a las 18hs, los salones estaban libres desde las 17:10hs, y los profesores llegaron 5 minutos antes del comienzo a acomodar las sillas, colocar las hojas sobre las mismas, la letra del parcial, y los números que cada estudiante tenía asignado para el mismo. A las 18:30hs, un tiempo record para mi, inconcebible, decidieron que todo estaba pronto. Los estudiantes, atónitos, aunque resignados lamentablemente, observábamos con la total parsimonia en que se desarrollaba todo. Parecían jugar con nuestra ansiedad, con el cansancio del horario, y con el frío insoportable. Como si eso no desgastara, no cansara.

Sobre las 18:30hs nos dicen donde están las listas donde teníamos que fijarnos el número de parcial asignado y el salón. Esperé hasta el final, nunca tuve demasiado afinado el instinto gregario, y no lo digo como una conquista intelectual, al contrario. Pero en este caso, era pragmatismo, esperaba que toda esa masa humana se disipara un poco.
Las listas estaban en un hall con una entrada a otro salón, donde en su puerta una docente a los gritos, pasaba lista de alumnos que iban a otro examen. A los gritos para sobrevivir al ansioso y sufrido grupo de estudiantes que habían esperado media hora más, y querían saber a qué salón correr.

La materia es del InCo, la matriz de todos los bytes sueltos de la facultad, ¿no se supone que puedan colgar esa lista en la web? si pudo imprimirse, de algun archivo habrá salido, ¿tanto cuesta?. ¿No sería un procedimiento mas limpio y optimizado? (algo que enseñan tanto por ahí).
Ni siquiera existe la justificación que no todos acceden a internet, en una facultad donde el contacto vía newsgroups entre docentes y estudiantes es un sustituto complementario y muy usado, sería ridículo.
Son detalles, que suman y suman...emergentes preocupantes porque no están aislados.

Punto a favor: un parcial relativamente accesible.

La luz del salón es cansadora, el ambiente de una limpieza e iluminación aséptica que lo hace frío, sumado a las dimensiones, bastante grandes...solo hace pensar en cuantos somos, y en la poca probabilidad de contacto entre nosotros, y el escaso contacto directo y didáctico entre docente y alumno.
Eso pensaba, ese salón es la prueba contundente de la masificación, y de las dificultades que conlleva.

Surrealismo trágico, la materia está lejos de ser una de las primeros años, muy por el contrario, sin embargo la masificación es abrumadora. La cantidad de alumnos que la recursan es de un porcentaje llamativo, el porcentaje de los que la aprueban por lo escaso (exonerando el curso o salvando el examen), también.
A esta altura de la carrera, no creo que nadie no sepa como estudiar, sino que hay otros motivos.

No me interesa igualar para abajo, y si por mi
fuera, pondría examen de ingreso.
Algunos pensarán, pero solo los que tienen plata podrán prepararlo, bueno, pero yo propongo que los docentes de facultad den clases de preparación, o nivelación para el mismo.

La escasa capacidad didáctica de los docentes, contribuye, no se transmiten las ideas claramente, nunca buscan alternativas, rara vez. Y uno está hasta el cuello de tareas que exigen mas de lo que las cátedras suelen dar.
Las explicaciones nunca son suficientes para resolver una tarea, ni mucho menos aclaradoras de un concepto. Los docentes parecen hablarse a ellos mismos, y muchas veces mandan a los menos experimentados, así los grandes trabajan tranquilos en sus proyectos, y la torta se divide sin problemas. Otras veces no hay demasiado interés por los peces gordos de venir a dar clase tampoco, basta en pensar en la sobredosis de Valium que puede ser Sistemas Operativos.
Otras veces es simple incapacidad para expresar o jugar con un concepto, no saben, no salen de su bunker tecnológico o de su mote de investigadores, en una actitud que tiene mucho de discriminativa no pocas veces.
Y no pocas veces también actúan con la displicencia enajenante de un empleado público.

Los docentes del InCo son los mas 'conflictivos', y el departamento de Arquitectura de los mas tediosos. Cuando cursé Arquitectura, último año que la materia era una sola, antes de dividirse en Arquitectura 1 y 2, para hacer la tarea (un driver para un mouse en assembler), no teníamos la mitad de los conceptos. Las clases de teórico, eran amenas, pero un cuentito, algo desordenadas, nada suficientes para la exigencia de los prácticos, ni mucho menos para la de la tarea, ni los parciales.
No pretendo que nos den digerido todo, pero sí contar con mas elementos para que pueda hilvanar, pretendo una orientación adecuada y no que me den todo resuelto.

Recuerdo cuando explicaron el funcionamiento de la UART en el práctico, miedo escénico en el docente, de quien conocidos me dijeron era muy capaz, bueno, prefiero uno menos capaz, pero que hable claro, y sepa controlar a una clase que del aburrimiento hablaba cualquiera. Y encima el tipo era incapaz de decir algo, de poner orden, no les importa.
Encima, la dio con errores que nos dimos cuenta al implementarla.
Googleé mucho para hacerla.
El material dado por la cátedra propagaba errores años tras años, sin ser corregidos, y dicho sea de paso dejaba mucho que desear. Indignante, si se considera que forma parte de su responsabilidad y que la mayoría de los docentes se repetían en la cátedra.
Diseño Lógico, emparentada en parte con Arquitectura, materia del Instituto de Eléctrica, era otra cosa. Se entendía todo, y uno percibía el placer de un sentimiento algo mas académico. Años luz de diferencia.

El funcionamiento de los diversos institutos de la facultad es una reproducción a escala de lo que sucede en la sociedad. La facultad no es ajena a lo que pasa en el exterior, es más, con todos los convenios que tiene, es imposible que lo esté, pero sin duda, el InCo refleja su aspecto mas mercantil. Mas competitivo en el peor sentido, y se nota
en la deficiencia de los cursos, salvo excepciones que las hay como en todos lados.

Estudiar apurado no es estudiar, estudiar con tantos palos en la rueda tampoco es aprender, así sólo se aprende a salvar cursos, eventualmente examenes, pero eso es otra cosa.

Trabajo para una universidad privada, varios docentes de mi facultad también están ahi, pero recuerdo a uno, que a la privada llegaba en hora, algo que nunca hacía en la Fing, y al menos en la privada los alumnos no tenían que aguantarlo con sus anécdotas pelotudas sobre Waterloo por mas de 40 minutos, sumada la media hora de atraso, una burla para todos los que pedían horas de su trabajo para asistir, hasta que no lo hicieron más, obvio. Parece que no está mas en la privada, si, imagino.

Aprender asi desgasta, siento mas ameno leyendo por mi cuenta e ir cada tanto a consultar dudas o a temas importantes, que asistiendo a clase soportando una serie de vicios conocidos, es que tengo la sensación de tiempo perdido cuando la contrasto con la velocidad de un mundo que va sobre la fibra óptica.

Google mediante, descubro artículos interesantísimos publicados por universidades de países del Mercosur, sobre temas diversos, principalmente de universidades de Argentina o Brasil. De nuestra universidad y facultad he visto pocas que valgan la pena rankearlas como decentes.
No hablo de investigaciones, que por cierto hay muchas en el InCo, las suficientes como para distraer la atención de los docentes, hablo de material generado para los alumnos por las cátedras, sin apartados de Fe de erratas o errores que se propaguen año a año, apuntes ejemplares como vi en la UBA o en la Universidad de Córdoba, o el Politécnico de Madrid, Stanford, etc.


Sumado, a que no es una facultad pensada para el que trabaja, horarios imposibles, esos alumnos se ven obligados a estudiar de apuntes ajenos.

Todo bien con el 4.5% para la educación, pero si es para que cada uno siga defendiendo su feudo sin autocrítica, no servirá demasiado.

Pais amateur la rep@^$%&#


vía mi catarsis, está desordenado y no importa





miércoles, 13 de junio de 2007

/estudiantes-profesores, victimas victimarios



Mas que horrores estudiantiles bien podrían considerarse una respuesta a la terrible calidad didáctica de los docentes de la Fing, o similares.

(sugiero clickear sobre algunas de las imágenes para verlas en su total dimensión, no tiene desperdicio)


















vía josé

lunes, 11 de junio de 2007

/implementar data types con C++


Data Type
concepto dado en el curso:

Es un descriptor de un conjunto de valores que carecen de identidad.
Data types pueden ser tipos primitivos predefinidos como:

  • Strings
  • Números
  • Fechas
  • También tipos definidos por el usuario, como enumerados
Muchos lenguajes de programación no tienen una construcción específica para data types.
En esos casos se implementan como clases:
  • Sus instancias serían formalmente objetos
  • Sin embargo, la identidad de esas instancias es ignorada
Data Value

Es un valor único que carece de identidad, una instancia de un data type
Un data value no puede cambiar su estado:
  • Eso quiere decir que todas las operaciones aplicables son “funciones puras” o consultas
  • Los data values son usados típicamente como valores de atributos
Identidad o no Identidad
¿Cómo saber si un elemento tiene o no identidad?:
  • Dos objetos separados que sean idénticos lucen iguales pero no son lo mismo (son distinguibles por su identidad)
  • Dos data values separados que sean idénticos son considerados lo mismo (no son distinguibles por no tener identidad)
Ejemplo de esto: una fecha, el valor 4, dos valores 4 no representan algo distinto.

Valores y Cambios de Estado
El valor “4” no puede ser convertido en el valor “5”. Se le aplica la operación suma con argumento “1” y el resultado es el valor “5”, otro valor diferente.
A un objeto persona se le puede cambiar la edad: reemplazando el valor de su atributo “edad” por otro valor nuevo. El resultado es la misma persona con otra edad.

En el newsgroup de la materia surgieron dudas sobre las diferentes alternativas para implementar data types con C++ (¿struct, class?) :

Esta es la respuesta de un docente:
"Struct no es un constructor del paradigma de orientación a objetos, sino una particularidad del lenguaje C++. Por ende no debería ser utilizado en el curso.
En términos del potencial que posee, no hay diferencias con una
clase. De hecho, se podrían definir operaciones (constructores entre ellos) para un struct."

Definición (ejemplo) del data type Fecha:

#ifndef FECHA_HH
#define FECHA_HH

#include
using namespace std;

class Fecha {

private:
unsigned int dia;
unsigned int mes;
unsigned int anio;
unsigned int hora;
unsigned int minutos;

public:
Fecha();
Fecha(const Fecha&);
Fecha(const int dia, const int mes, const int anio);
Fecha(const int dia, const int mes, const int anio,
const int hora, const int minutos);

virtual~Fecha();

unsigned int getDia() const;
unsigned int getMes() const;
unsigned int getAnio() const;
unsigned int getHora() const;
unsigned int getMinutos() const;

Fecha& operator=(const Fecha&);
bool operator==(const Fecha&) const;
bool operator!=(const Fecha&) const;
bool operator<(const Fecha&) const;
bool operator>(const Fecha&) const;
bool operator<=(const Fecha&) const;
bool operator>=(const Fecha&) const;

};

// imprime la fecha con formato (dd/mm/aaaa hh:mi)
ostream& operator<<(ostream&, const Fecha&);
// se lee la fecha con formato (dd/mm/aaaa hh:mi)
istream& operator>>(istream&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;, Fecha&);

#endif

Son de esas respuestas que no hacen mas que redondear muy bien un concepto.
En este caso, la aplicación de los conceptos de un paradigma a un lenguaje en particular.


martes, 1 de mayo de 2007

/buscadores de código fuente

Estoy padeciendo con una tarea para facultad, codificar en Perl para encontrar patrones en textos mediante expresiones regulares. Se supone que a esta altura podemos agarrar un manual, arremangarnos y comenzar a 'laburar', y es así, en parte, porque la realidad es que todo funciona a base de mucho ensayo y error.
La verdad que disponemos de poca ayuda sobre el lenguaje y su metodología de uso por parte de la cátedra (pero este es otro tema). Y los manuales generalmente no explican el trick salvador, ni ese detalle que se gana con la experiencia, van a lo general y mas descriptivo. Así que decidí obtener algo de código ejemplo para ir entendiendo (y consultar en foros, otra herramiente que puede ser util).

Hay varios sitios desde donde podemos descargar ejemplos con código fuente disponible.

En los que menciono aqui se puede encontrar código catalogado por tipo de licencias, de lenguajes y por un problema específico a resolver (threads, base de datos, applets, protocolo TCP/IP, etc), una diversidad interesante.

A alguno de ellos llegué googleando o gracias a una extensión de Firefox que me permite usar Stumble Upon.

Consulté en:


También está Hotscripts, mayormente orientado a código para la programación web (Java, Javascript, Perl, Python, ASP, PHP, etc).

Para buscar código fuente por proyecto, o aplicaciones open source, (o aprender eventualmente) está Sourceforge , pero esto son palabras mayores.
Aunque lo recomendaría para buscar aplicaciones open source, sin problemas de licencia con total funcionalidad, como Gimp, Azureus, Ares, o 7Zip, creo que mucha gente desconoce el origen de estos proyectos.