Seguidores

miércoles, 31 de diciembre de 2014

Computacion como profesion

​​
Estimados, 

les adjunto un articulo super interesante que acaba de ser publicado en ACM y que tiene que ver directamente con nuestra profesion: Computacion.

Computing: an emerging profession?

Author:Stephen SeidmanTexas State University, San Marcos, Texas
Published in:
Cover Image
· Magazine
ACM Inroads archive
Volume 5 Issue 4, December 2014
Pages 6-11 

Aqui algunas frases que destaco pero vale la pena leerlo por completo.
  • To use a software engineering metaphor, program accreditation can be seen as “validation and verification” of an academic program. It answers the following two questions:
    • Does the name of a program correspond to its nature?
    • Does the program have sufficient quality?
  • When computing emerged as a recognized academic discipline in the 1960s, it came in multiple flavors: computer engineering arose from electrical engineering (circuits, processors, instruction sets), computer science had roots in mathematics (algorithms, theory of computation, numerical analysis),and information systems supported business applications
  • Aqui recuerdo que hace poco tiempo, en una universidad, un docente dijo que Sistemas de Infromacion no se trataba de hacer software (porque lo que buscaban era justificar Ing de SW) y yo dije que Sistemas de Informacion se trataba de hacer software para organizaciones. El resultado es que me acusaron de difamacion tomando como base esa afirmacion mia.Aqui hay otra persona a quien podrian acusar por publicar esto en un articulo de alcance mundial. El dice:This is emphatically not the case in the US and Canada, where computing is not included under the engineering umbrella.
  • Peru tambien es mencionado en el articulo pues el autor ya estuvo aqui algunas veces y se llego inclusive a tener reuniones con el CIP (Juan Fernan Munoz) tratando de entender esta idea confusa que propone el CIP con relacion a meter computacion dentro sin saber justificar esta propuesta mas alla de que hay una palabra en comun....
  • Luego viene una seccion completa que titula: Software Engineering: Forerunner or Cautionary Tale (Ingenieria de Sotware: Corredor delantero o cuento aleccionador).
    Vale la pena ver la definici'on que dio origen al termino Ing de Software: establishment and use of sound engineering principles to obtain economically software that is reliable and works on real machines efficiently.”
  • Luego dice: "It clearly has roots and affiliations in computer science, but its name and associations suggest an affiliation with engineering".
    Mas claro que el agua. Esto es como cardiologia y medicina.
  • En el proceso de acreditacion de ABET existe la comision de acreditacion de Ingenieria (EAC) y la de Computacion (CAC). En el articulo menciona que: "The program evaluators visiting a software engineering program are appointed by CSAB, but the team chair is a member of the EAC".
    Esta claro qeu quienes evaluan un programa de SWE son gente de Computacion y no ingenieros.
  • Engineers Canada has trademarked (registrado) the words “engineer” and “engineering” [3]. When Memorial University of Newfoundland attempted to offer an undergraduate degree in software engineering, the university was sued (demandada) by Engineers Canada.
    Esta es una buena idea para el CIP cosa que nadie mas que los miembros del club podrian utilizar dicha palabra (solo los que estan al dia claro y si no pagan les aplican la ley y asi protegen a los puntuales).
  • Fijense tambien qeu indica que un aprox de 40 estados en EEUU actualmente han creado examenes para licenciar (noten que esta es la razon de la palabra licenciado-> alguien que tiene licencia) a profesionales en Ingenieria de Software.
    Tambien menciona el numero exacto de personas que hay tomado este examen: 16 (dieciseis exactamente) y luego tambien menciona que son 1000 con el estandar internacional. Cuantos seran peruanos?
    Indudablemente no se trata de ningun tipo de tendencia a nivel mundial.
    Tambien indica queeste numero se debe a que este examen involucra conocimientos comunes a todo ingeniero: mecanica de fluidos, resistencia de materiales, electricidad, magnetismo y termodinamica.
    Que opinan los defensores de esta tendencia (nula) a nivel mundial? 
  • Aqui hay otra frase super interesante: The resulting Certified Software Development Professional (CSDP) examination was first offered in 2002. Note the deliberate avoidance (evasion) of the words “engineer” and “engineering.”
    Me pregunto si esto es lo que harian en Peru?
  • Aqui una frase muy fuerte pero muy real:
    Finally, there has not yet been any pressure from industry to hire software engineers with formal academic background in software engineering.
    En el Peru tampoco existe esa presion  de parte de la industria pero el CIP trato de crearla a traves de la ley. Como no es real pues la gente la ignora simplemente.
Indudablemente estamos frente a algo de velocidad incomparable con otras disciplinas ... crecio muy rapido y afecto todo lo que el ser humano hace en la actualidad.

La velocidad de esta disciplina es requiere que cada uno de nosotros le dediquemos un tiempo para entender la naturaleza de la misma y requiere tambien que estemos dispuestos a reaprender los conceptos que ya teniamos acunados en nuestras mentes.

Saludos
er

martes, 30 de diciembre de 2014

BBVA (Tratamiento de excepciones)

Holas,

Sobre este asunto de excepciones no atrapadas del BBVA que envie hace algunos dias ... (ver excepcion al final de este email) me gustaria hacer un comentario en voz alta que suelo hacer a mis alumnos ...

Todo programa debe tener un catch en el nivel mas alto de codigo que este bajo nuestro control y de esa forma evitar que la excepcion siga subiendo hasta el Sistema operativo y termine en algo asi. de feo en la pantalla del usuario.

Tambien es necesario siempre prestar atencion a la documentacion de las librerias que se utiliza pues si ahi dice que puede lanzar una excepcion hat que ponerle su try/catch siempre.

Sin embargo, con respecto al tratamiento de la excepcion hay varios niveles que me gustaria comentarlos de manera informal.

Nivel 1.- La excepcion es lanzada y el codigo nuestro no la atrapa entonces sigue subiendo hasta el nivel del Sistema Operativo y termina apareciendo en la pantalla del cliente y el desarrollador jamas se entera del problema sucedido.
Esta es la peor situacion.

Nivel 2.- El codigo tiene un catch y muestra un mensaje de error amigable al usuario pero los detalles internos (como el stack) no se muestran.
Esto esta mejor que el anterior pero los desarrolladores no se enteran del problema.

Nivel 3.- Se atrapa la excepcion, se muestra un mensaje amigable pero se guarda la misma en una tabla de la BD donde despues podamos analizar las causas y talvez reproducir el error. Ademas del stack tambien deberiamos guardar el usuario que la provoco, la hora, el IP, el navegador, etc. Con todo eso es mas facil que los desarrolladores puedan corregir el problema facilmente.
El problema aqui es que en un banco podriamos tener decenas de modulos y se formaria un cuello de botella en distribuir los errores a cada equipo.
Esta solucion no es escalable a grandes volumenes de esta ocurrencia.
Piensen por ejemplo en gmail con 400 millones de usuarios.

Nivel 4.- Se hace todo lo del nivel 3 pero ademas se procesa el stack de forma asincrona (sin interruimpir la hebra principal de ejecucion) se identifica (a partir del stack) que modulo es el que causo el problema y se graba toda la informacion en la BD pero ademas se direcciona el error al equipo de desarrollo responsable de la misma.
Esto es mejor que el anterior pero de nuevo no escala si el jefe del equipo tiene que procesar miles o millones de problemas por dia.

Nivel 5.- Capturamos la excepcion, grabamos toda la informacion relacionada a las condiciones en que aparecio la misma. Por otro lado en otro servidor y en otra hebra de menor prioridad nos podriamos conectar al controlador de versiones y detectar en que modulo sucedio y quien fue el que la programó ... asi podriamos direccionar el problema a quien mejor conoce lo que hizo.
De nuevo el problema es que si tuviesemos millares de casos asi seria una tarea no escalable.

Nivel 6.- Hacemos todo lo anterior pero ademas intentamos clasificar la excepcion y acumulamos todas las ocurrencias que sean del mismo caso para presentarlas en forma grafica al responsable.
Ademas podriamos crear un modulo de analisis de ocurrencias como estas de tal forma que al llegar a su trabajo el responsable podria analizar la ocurrencia de estas excepciones por rango de horas en un dia, por origen geografico, por browser, por idioma, etc.
Esta solucion si escala a millones de ocurrencias y permite que el desarrollador pueda corregir lo sucedido.

Nivel Complementario.- Siempre que uno hace un click que carga una nueva funcionalidad lo comun es que se cargue la misma.
Un profesional en computación sabe que el click es algo muy rico y que antes de cargar la nueva funcionalidad debo guardar esa ocurrencia del click junto con el usuario, IP, idioma, browser, hora, dipo de dispositivo, sistema operativo, funcionalidad anterior y posterior. Todo eso se hace de forma asíncrona en una hebra e¡con menor prioridad de tal forma que el usuario no se sienta perjudicado en el tiempo de respuesta de la aplicación.

Solo con esa informacion podria generarse un grafo de transicion de estados en una aplicacion y así podriamos, mas adelante, saber cuales son los caminos por los que se mueve la masa de usuarios. Podríamos detectar que funcionalidades son las mas frecuentes y las menos frecuentes.
Podríamos detectar las condiciones mas frecuentes en las cuales el usuario requiere una funcionalidad, etc.

Esta informacion sumada al Nivel 6 que mencioné anteriormente me da muchos elementos para corregir el software sin tener que preguntarle nada al usuario.

A mi me parece que esto es lo que haría alguien de ciencia de la computación. Es algo de sentido común y no lo he sacado de ningún libro y no estoy aplicando ninguna metodología ... solo sentido común y algo de abstracción.

Saludos
er

Error bean datos not found within scopeHa ocurrido un error procesando: https://150.250.252.104:16640/bdnt_pe_web/error_apl.jspMensaje: bean datos not found within scopeTraza: java.lang.InstantiationException: bean datos not found within scope 
at com.ibm._jsp._error_5F_apl._jspService(_error_5F_apl.java:86) at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:93) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1796) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:887) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121) at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:222) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:348) at com.grupobbva.ii.sf.servlets.OperacionCBTFServlet.formatErrorResponse(OperacionCBTFServlet.java:1532) at com.grupobbva.ii.sf.servlets.OperacionCBTFServlet.processPost(OperacionCBTFServlet.java:2897) at com.ibm.dse.clientserver.servlet.CSReqProtocolServlet.doPost(CSReqProtocolServlet.java) at com.ibm.dse.clientserver.servlet.CSReqProtocolServlet.service(CSReqProtocolServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1796) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:887) at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1937) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:130) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:434) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:373) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:101) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952) at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)

sábado, 15 de noviembre de 2014

El "secreto" de CS-UCSP

Holas de nuevo,

En varias ocasiones me han preguntado que hemos hecho de diferente en la la carrera de CS-UCSP y la verdad es que no habia un plan previo hace 20 años pero terminó siendo consecuencia de algunas decisiones que se tomaron en 1995 cuando UCSP aun no fue creada, no había SPC.

Voy a dividir las cosas que se hicieron en dos grupos:

Decisiones indispensables (si te falla una de estas no tienes una buena carrera y todo podría fallar)
  1. Salimos a estudiar fuera y no en Peru (esto fue iniciativa individual no institucional ... no hubo ayuda del gobierno). Ver articulo de el postgrado y también la graduación del pregrado.
  2. Las maestrias/doctorados que hicimos fueron de tiempo completo y no de final de semana
  3. Abrimos las puertas a los chicos que vienen con grados academicos de ese tipo (en muchos lugares veo que los espantan y les ponen problemas).
  4. A la hora de repartir los cursos se hace por grado academico y no por antigüedad. Se prioriza el grado académico. Si llega alguien con doctorado pues se le asigna curso inmediatamente.
  5. Hemos ordenado el contenido mirando como referencia las propuestas internacionales y no las de Peru (incluyendo Lima).
  6. Hemos cambiado el nombre porque eso te da un norte claro y no pierdes el tiempo en poner cursos que no son prioritarios.
  7. TODOS los docentes tienen claro que somos y no perdemos el tiempo en discusiones se ser Ingenieria o no. Nadie habla de eso acá porque está claro.
  8. Todos nuestros alumnos reciben la explicación de lo que somos y de lo que no somos antes de postular y adentro el mensaje es único y es coherente de todas las fuentes con las que tiene contacto: profesores, alumnos mayores, direccion de carrera, autoridades, etc.
  9. No buscamos ganarle a otra univ de Lima ni de Arequipa. Nos interesa compararnos con Stanford, USP Brasil, UNAM y eso provoca que el ritmo cambie en la gente.
  10. Un Arequipeño ayuda a otro arequipeño. Fue así que se pudo llevar centenas de personas a estudiar fuera. Yo he tenido amigos meses durmiendo en el sofá de departamento en Brasil y gracias a eso pudieron seguir estudiando.
    Algo común en Peru es ir a estudiar fuera y no jalar a nadie. Luego vuelven y son islas y por eso no florece el asunto en la ciudad de origen.
  11. El ambiente institucional es muy favorable. en UCSP se pueden hacer las cosas sin preocuparse de la política.
  12. Los alumnos pueden tratar a sus profesores por su nombre. Esto es simple pero ayuda mucho porque tu no eres en titulo. Aquí sonaría gracioso que alguien exija ser llamado de Ingeniero habiendo mas de 15 magisters y 8 doctores. Si alguien pide ser llamado de Ingeniero probablemente significa que esta desactualizado.
  13. Las tesis se hacen en base a publicaciones de IEEE y de ACM y todos estan familiarizados con textos en inglés.
  14. Incluimos la tesis dentro de los 10 semestres y no tenemos cursos de titulacion ni cosas extrañas. La Ley universitaria ahora pide eso y no nos afecta nada.
  15. Los docentes a tiempo completo son del tipo que no hay que corretear ni estar chequeando. Esto es fundamental porque son gente que trabaja con piloto automático. Si un día no encuentras a alguno no significa que faltó sin avisar. Sabemos que la persona solita va a recuperar esas horas porque es alguien responsable.
Otras decisiones no indispensables pero de gran ayuda
  1. Pusimos cursos en ingles en el pregrado
  2. Comenzamos a hacer la sustentación de la tesis en ingles y luego tambien en portugues.
Ese es el "secreto" pero personalmente creo que no se ha hecho nada extraordinario ... solo hicimos lo que el sentido común dice que hay que hacer buscando el bien común ... el problema es que en muchos casos: "el sentido común es el menos común de los sentidos"

Cualquier profesional que busque la excelencia academica podría y debería haber hecho lo mismo.
El problema es que en muchos casos ponen por delante los intereses personales y no los del grupo.

miércoles, 9 de abril de 2014

El postgrado en la USP Brasil

Luego de mis primeras experiencias chocantes al salir del país ya había decidido que tenía ir a estudiar en otros países.

En 1994, trabajando en el instituto de Informática de la UNSA donde hacía el buscador de textos, por pura casualidad un colega Boris Verástegui, que era el encargado de la internet en la UNSA, recibió un email de un tal Marco Alvarez que era un peruano que vivía en Brasil y ahora es mi amigo. Marco estudiaba algo llamado Ciencia de la Computación que para mi era toda una novedad. Marco buscaba a su mamá en Tacna (mismo Marco el del pueblo italiano al pie de las montañas). Boris ya sabía que yo andaba en plan de salir a estudiar fuera y me pasó el contacto. No recuerdo si llegamos a contactar a su mamá por email pero lo que si es cierto es que comenzamos a hablar de diversos temas computacionales y un dia también recibí un anuncio de que habría un curso de verano en la USP de Brasil.

En paralelo, uno de mis profesores y ahora mi amigo, Wilber Ramos, nos decía en las clases que debíamos salir a estudiar afuera y volver luego ... que no deberíamos quedarnos en Perú. Él hacía mención explícita a la USP de Brasil pues su hermano estudiaba allá y parecía algo muy bueno. Wilber decía que bastaba que hagas un buen curso de verano y que conseguiría la beca y eso se me quedó muy grabado.

Él también decía que allá la gente que hacía postgrados solo estudiaba a tiempo completo y que le pagaban! parecía una maravilla especialmente considerando que yo sabía que no podía pedirle dinero en dólares a mis padres. Sin duda se hubieran endeudado para ayudarme pero el hecho de no haberles pedido obligo a que resuelva el problema por mis propios medios y mis padres no tuvieron que pasar por este problema. Algo interesante es que como te pagaban por estudiar no te dejaban trabajar. Eso tendría mucho que ver con el error que cometí al postular para entrar al postgrado que explicaré luego.

No tengo idea cuántos muchachos le prestaron atención a Wilber (muy común en los alumnos). Creo ese pequeño comentario fue algo muy importante pues también marcó mucho en mi vida profesional y cambió nuevamente mis objetivos hacia algo más lejano, Brasil.

Deberían haber muchos Wilbers por ahí, en todo caso le tengo mucha gratitud por ese gesto que tuvo en mi grupo. Probablemente fue simplemente un comentario no planeado ... probablemente fue solo un comentario en la clase pero fue muy importante en mi vida. Me imagino que el propio Wilber no tenía una idea de lo que había provocado en mi. Ese comentario también hizo que yo sintiera más mi responsabilidad de profesor en el futuro. Es increíble el tamaño del impacto que un comentario así puede causar en un alumno que le presta atención. Creo que por eso trato de dar lo mejor de mi a los alumnos. Basta que alguno de ellos me haga caso durante 5 minutos y seguro que será mejor que yo.

Aquí resolví enviar mis papeles a Brasil y por casualidad escuché que había en Arequipa un profesor mucho mayor que yo que estudiaba su postgrado allá en ese momento. Su nombre era Luis Alfaro de San Agustín. Un día, mientras trabajaba haciendo el buscador en el Instituto de Informática de la UNSA, alguien me comentó que el Prof. Luis Alfaro estaba por ahí y me acerqué a conversar y pedirle información. Le pregunté como hacer para ir a hacer un postgrado en Brasil?. Su respuesta fue: "Ahora ya no se puede ... está muy dificil ... antes se podía ahora ya no". Hasta ahora me parece una respuesta muy impropia para alguien que debe ser motivador para los alumnos. Felizmente, decidí no hacerle caso y felizmente Luis Alfaro estaba equivocado. Siempre me quedó la duda de por qué en los siguientes 20 años nadie fue a hacer un postgrado en el mismo lugar donde él había estudiado.

En Perú y de forma muy especial donde estudié el pregrado había y hay mucha gente piensa que mi título peruano fue compatible y que gracias a eso hice el doctorado también. Eso es más falso que un billete de 0.23 dólares pero trataré de resumir el tema:

La primera media hora de clases en la USP Brasil ya fue más allá de todo lo que yo había aprendido en el curso de Estructuras de Datos que me fue dictado por un Ingeniero Industrial que decía saber de ese tema copiando en la pizarra código de estructuras básicas de un papel que traía en cada clase. Se pasaba la mitad de la clase copiando, luego 40% esperando que todos copien y luego le dedicaba 2 minutos a preguntas. Luego el laboratorio consistía en copiar nuevamente el código a las máquinas y se acababa la clase. Una vergüenza total. Si no fuera por el buscador que había hecho no la hacía y dicho buscador no fue en anbsoluto producto de la carrera. Fue un problema que el Ing Jorge Tamayo me puse y yo resolvi en el Instituto de Informatica de la UNSA en el Parque Industrial.

Otra anécdota es que ingrese a la USP porque llené mal el formulario de postulación.

Yo no sabía portugués y el formulario contenía dos preguntas que más o menos decían así:
P1.- Você quer fazer inscrição no curso de verão em estruturas de dados?
Aqui puse Sim y estaba correcta mi respuesta pues yo quería hacer el curso de verano. Esto se conectó con lo que Wilber habia dicho en clases: curso de verano->sacas buena nota->beca.

P2.- Você está concorrendo ao mestrado em ciência da computação? 
Aquí yo miré la palabra concorrer y la entendí como concurrir. Ahí pensé: "Me están preguntando si estoy yendo a alguna maestría en Ciencia de la Computación". Pensé: "Wilber Ramos dijo que no permitían otras actividades ..." además no estoy estudiando maestría en Perú entonces mi respuesta fue: Não.

El detalle es que la palabra concorrer en portugués significa concursar !
Ellos me estaban preguntando si yo quería concursar para la maestría allá y yo puse no !

Muy contento me quedé esperando la respuesta a mi postulación a la maestría y en diciembre recibí una carta indicando que estaba aceptado para hacer el curso de verano (Gracias al Sim de la P1). La carta no decía nada de ingresar a la maestría y, debido a los comentarios de Wilber que decía que del verano dependía el ingreso, creo que nunca le presté atención al detalle que no me habían dicho explícitamente que había ingresado.

Con el tiempo entendería que este error que cometí me permitió ingresar pues nadie evaluó mis papeles ni mi título peruano. Simplemente, me consideraron como un muchacho que quería inscribirse para hacer el curso de verano como oyente y además no pedía beca. No estaba difícil de aceptarme así pero fue un error crucial que mas tarde recién entendería.

En otro post comentaré lo importante que resulta ir por tierra hasta Brasil pasando Bolivia. Háganme acordar si lo olvido.

El asunto es que llegué el 31 de Diciembre de 1995 a eso de 9:30pm a la ciudad de Sao Carlos, estado de Sao Paulo en Brasil a 230 Km de la ciudad capital Sao Paulo. Vean el mapa a continuación:
https://www.google.com/maps/dir/S%C3%A3o+Carlos,+S%C3%A3o+Paulo,+Brazil/S%C3%A3o+Paulo,+Brazil/@-22.7707757,-47.8115633,9z/data=!3m1!4b1!4m13!4m12!1m5!1m1!1s0x94b86f6b8fb57d2f:0x7cf18ccdd4dc83e7!2m2!1d-47.8909142!2d-22.0087086!1m5!1m1!1s0x94ce448183a461d1:0x9ba94b08ff335bae!2m2!1d-46.6333094!2d-23.5505199

Estaba super emocionado y tengo esa imagen como si hubiera sido ayer. Salí de Arequipa con 400 dólares pero con la firme convicción de que conseguiría la beca. Creo que la mente es algo muy fuerte realmente y produce cosas fantásticas.

Llegue allá y comprenderán que a esa hora todos estaban en sus casas o festejando el año nuevo pero casi nadie estaba en la USP. Para mi estaba claro que hotel no era una opción ! además el real (moneda de Brasil) estaba casi igual que un dólar y si me metía a uno me quedaría sin dinero en una semana. La opción fue tomar un taxi (en mis 7-8 años allá tomé taxi un par de veces solamente) que me llevó por toda la marginal y entró por la puerta principal de la USP. Me quedé frente a la agencia del Banco do Brasil.

Recuerdo mucho un letrero enorme que decía:


Que me pareció muy bonito. Con el tiempo haría de este símbolo mi alma matter y lo considero así hasta ahora pues es ahí donde aprendí computación.

Había un vigilante que me explicó que no había gente pero le expliqué que venía al curso de verano ... le mostré la dirección que tenía y me mostró como llegar al Instituto de Ciencias Matemáticas de Sao Carlos (ICMSC) que luego sería convertido en el actual ICMC que fue donde estudié.


Fui caminando al lugar y había otro vigilante que sabía del curso de verano pero igual no había nadie a esa hora. Sin embargo, parece que él me adoptó porque entendió que yo me quería quedar por ahí. Salimos en un auto de la seguridad de la USP y fuimos a algunos alojamientos que también estaban vacíos pero por ahí conseguimos un colchón.

Este colchón fue donde descansé en el suelo en una sala de estudio al costado de la Biblioteca en el primer piso del ICMC. Literalmente, estaba comenzando desde el suelo y además estaba tan cansado que ese colchón me pareció algo fenomenal y muy cómodo. Ah sábanas? que es eso? cuando uno está viajando 4 días sin hotel y sin parar eso era una maravilla de colchón.

Al día siguiente 1ro de Enero me cambiaron de "habitación" y me mandaron al tercer piso donde dormí en otro saloncito muy pequeño. El tercer día ya era 2 de Enero y el curso comenzaba así que comenzaron a aparecer mas brasileños perdidos igual que yo pero que probablemente no habían dormido en el suelo. Sin embargo, el dinero es algo que les falta a todos los estudiantes y alguno de ellos tuvo la fantástica idea de conseguir un candado.

Con ese candado fuimos a uno de los alojamientos y bloqueamos una sala de estudios donde pusimos los colchones encima de un par de meses para cada uno. Eramos 4 que nos quedamos ahí durante todo el curso casi dos meses. Al menos había sido ascendido del nivel suelo al nivel mesa y por alguna razón eso me parecía algo cómodo. Recuerdo mucho que los muchachos contaban chistes en portugués que yo no entendía y luego de reirse del chiste se reían de mi cara de no haber entendido :)

Cuando comenzó el curso de Estructuras de Datos se pasaron en la primera media hora todo lo que yo había hecho en el Perú y luego vinieron cosas que me gustaron. Tenía claro que mi objetivo era sacar buenas notas y que con eso tendría una beca. Solo quería estudiar y estudiar.

La ventaja que yo tenía es que probablemente estaba mas asustado que el resto de saber que era una oportunidad única la que se me estaba presentando. Además, había hecho un buscador con la velocidad de Google que ciertamente no era algo normal para un egresado.

También fue interesante enterarme que había una pareja de peruanos de Lima, uno de la UNI y la señora de San Marcos (o talvez era al revés pero eran de esas dos instituciones). Como buen peruano perdido me acerqué a preguntarles como se conseguía una beca pues ellos estaban desde agosto del año anterior. Su respuesta fue que era difícil y que ellos estaban haciendo su último intento en ese verano. No me ayudaron nada (como muchos de los peruanos que no hemos aprendido a ayudarnos).

Llegó el primer examen y las notas eran de 0-10. Saqué 7.9 y estaba entre los 10 primeros aproximadamente pero obviamente no me gustó la nota pues sabía que lo mínimo para sacar A era 8.6. Lo interesante es que el colega de Lima sacó 2.9 y su señora sacó 0.0. Tal vez se había equivocado de carrera. Tal vez ella era de gestión y, por esa razón, hacer algoritmos no era su fuerte. En fin, no los volví a ver nunca más y también entendí porque no les habían dado la beca.

Una anécdota es que cuando salieron las notas publicaron 2 listas. La primera de los que estaban "concorrendo" (concursando) a la maestría y la segunda de los alumnos libres donde estaba yo. Ahí pregunté que porque me habían puesto en esa segunda lista? La secretaría me respondió: "Seguro que Ud. marcó que quería no quería concorrer" ... buscó mi ficha y efectivamente vimos que yo había marcado que no quería concorrer a la maestría. Llamaron a una profesora argentina Maria Carolina Monard quien me miró y me dijo (con una sonrisa): "estos gringos que no llenan bien la ficha". Lo bueno es que ella entendió mi problema y me dejó claro que debía buscar un asesor que quisiera aceptarme para hacer la maestría y me advirtió que debía sacar una buena nota.

El camino estaba claro:
  1. Tenía que sacar buena nota en el verano
  2. Con eso podría encontrar un asesor que quisiera "adoptarme".
En paralelo también fui buscando alguien para que me adopte como su alumno y mientras leia las áreas de estudio encontré algo llamado Redes Neuronales y pensé: "eso parece bueno" (aunque no sabía de que se trataba claro esta). Encontré a un profesor llamado Andre de Carvalho y le expliqué mi caso. Me volvió a decir que dependía de la nota así que sacar buena calificación pasó a ser asunto de vida o muerte :) Aquí me ocurrió algo súper interesante pues fue mi entrevista de ingreso a la maestría:

AndreEntão voce quer estudar o mestrado em Computacão.
(Entonces tú quieres estudiar maestría en Computación)
Ernesto: Sim

Andre: E voce é peruano certo? (Y eres peruano correcto?)
Ernesto: Sim

Andre: E o que voce estudou no Peru? (Y que estudiaste en el Perú?)
Ernesto: Engenharia de Sistemas (Ingeniería de Sistemas)

Andre: mmm ta certo (pausa) o que é isso?
(correcto ... (pausa) que es eso?)

Por eso acostumbro decir que el título que me dieron me duró entre 10 a 15 segundos. Para los que no vieron el link de Andre ... el tenía ya muchas decenas de publicaciones tenía ya el doctorado ... tiene una producción en computación que es envidiable para cualquiera.

Solo habían dos posibilidades:
1.- Andre estaba equivocado
2.- Ernesto estaba equivocado

Seguí estudiando y vino el segundo examen y una exposición donde tuve la chance de presentar el buscador que había hecho y por supuesto que les gustó y saqué una buena nota que me permitió sacar un promedio de 8.6. Para haber sido mi primera vez en el extranjero, en otro idioma, en una universidad mucho más exigente y en un postgrado en computación y ademas de venir con un diploma que nadie lo entendía ... no estaba nada mal pensé.

Cuando André me aceptó me dijo: "ok debes matricularte en este semestre de marzo ... debes traer tu pasaporte para sacarle una copia a tu visa de estudiante". Ahí pensé: "visa de estudiante"? que ser eso?! traje mi pasaporte y les mostré el sello de entrada a Brasil y claro que no tenía visa pues había entrado como turista.

Ellos me preguntaron que como había entrado al Brasil y les respondí con la verdad: "Llegué a la frontera y pedí para entrar y me dejaron !". No tenía visa y no podía comenzar (era un jueves). Entonces alguien comentó que para sacar una visa debería ir a un consulado brasileño (que no hay dentro del país) y el más cercano era en de Iguazú así que arranqué hacia la frontera ese mismo jueves con el poco dinero que tenía y sabiendo que no me alcanzaría. Llegué el viernes, pasé la frontera al lado paraguayo, busqué el consulado brasileño y mi ilusión se deshizo rapidamente pues como peruano habían documentos que yo no podía presentar (ej. antecedentes policiales, etc).

El mismo viernes en la noche inicié el retorno de Iguazú a Sao Carlos pero el dinero ya no me alcanzaba ni para volver. Solo conseguí llegar hasta Presidente Prudente que es más o menos la mitad del camino. Ver el mapa aquí.

Llegué como media noche a la ciudad llamada Presidente Prudente y llamé a uno de los amigos (Rogerio) con los que había hecho el curso de verano. Lo llamé y le dije que no tenía dinero, el salió desde su casa, fue a alcanzarme y me prestó el dinero que me faltaba para continuar. El también es alguien de quien nunca me olvido. Llegué el sábado a Sao Carlos y ese mismo día salí rumbo a Perú. Era un 9 de Marzo de 1996 y lo recuerdo claramente sin mirar un calendario. Lo recuerdo porque demoré hasta el 16 (también sábado) en llegar a Arequipa por tierra. Mi demora se debía a no conocer los horarios de las conexiones en el trayecto ... llegué contento por ver a mi familia de nuevo, al mismo tiempo estaba triste por no haber podido comenzar pero con la ilusión de saber que podía volver en Agosto.

En este viaje de retorno debo decir que el dinero se me volvió a acabar a medio camino y el papá de Marco Alvarez (que vivía en Campo Grande en aquel entonces) me prestó algo como US$ 150.00 para poder llegar. Luego se los devolví a la cuenta de un hermano en el Cuzco.

Empecé la maestría en Redes Neuronales en Agosto de 1996 luego de varios problemas causados por el bendito diploma que tenía y terminé el 26 de Agosto de 1998. Luego volví a Perú hasta mediados de 1999 cuando ya no aguanté mas y salí de nuevo. En ese periodo entré como docente nombrado a la Universidad de San Agustín en Arequipa. Yo nunca fui contratado y eso realmente debo decir que fue bueno porque te permite decir las cosas de forma clara y directa sin miedo de que te suceda algo :-) Puedo decir que fui un error de cálculo :-)

En 2000 me mudé a Brasil para comenzar una aventura por el mundo pero esta vez con la familia aumentada pues ya me había casado :) el primer año de mi doctorado lo hice en Sao Carlos en el ICMC de la Universidad de Sao Paulo. El 2001 me mudé a Carnegie Mellon University (CMU) en Pittsburgh donde tuve la suerte de trabajar con Christos Faloutsos. Simplemente fenomenal !

En 2002 estuve viviendo en Berlin, esta vez en la Technischen Universitat, también fue una excelente experiencia que me permitió nuevamente observar lo mucho que faltaba por aprender y lo pequeño que uno es en comparación al mundo. Durante ese tiempo tuve la oportunidad de ir a presentar un artículo a Hawaii (http://www.wcci2002.org/). La conferencia era extraordinaria con 15 salas en paralelo pero la verdad es que yo escribí ese paper solo porque era en Hawaii :)

En 2003 volví a Brasil pero seguí viajando y fui a presentar invitado otro artículo a Japón. Esa fue otra experiencia extraordinaria. Finalmente,  defendí la tesis en marzo de 2004 y volví a Perú con la responsabilidad (en realidad fue mi disculpa para volver) de organizar el http://clei2004.spc.org.pe/ . Felizmente, todo salió muy bien y por eso continué considerando la posibilidad de quedarme y ayudar a que mi país mejore día a día.

Actualmente soy docente a tiempo parcial de la
Universidad Nacional de San Agustin y soy tiempo completo en la Universidad Católica San Pablo donde ocupo el cargo de Director de Ciencia de la Computación desde 2005 hasta la fecha) y también fui Decano de la Facultad de Ingeniería y Computación (2011-2013).