En Arequipa existen dos universidades que ofrecen la carrera de Ciencia de la Computación, y por coincidencia, también comparten un buen número de profesores. Lo cual significa, hasta cierto punto, que son alternativas relativamente equivalentes. Tenemos la que es privada y la que es pública.
Arequipa es una ciudad con cerca de 1 millón de habitantes. Los últimos 5 años ha sufrido grandes cambios en cuanto a la oferta comercial y de servicios. El año 2007, que la visite por primera vez, tenía solo el pequeño centro comercial “Saga” en la Av. Ejercito. Hoy tiene 5, dos de ellos comparable en tamaño, oferta de tiendas y productos al Jockey Plaza. En estos centros comerciales están las cadenas de “retail” más conocidas: Saga Falabella, Ripley, Oeschle, Tottus, Plaza Vea, Wong, Paris. En restaurantes de “fast-food”: TGI’s Fridays, Papa John’s, KFC, Bembos, Chillis, Telepizza, Subway, Norky’s etc. En restaurantes en otros formatos: Chicha, Tanta, Edo. En centros de diversión: Aura y Mr. Fish, con el mismo formato que en Lima, y decenas de establecimientos locales como Forum en la calle San Francisco en el centro. Cada mes se inauguran nuevos negocios tanto locales como de cadenas nacionales e internacionales. Además en Arequipa existen desde hace varios años productos y empresas o cadenas que no encuentras en otras ciudades como: Pizzas Presto (también en Tacna), Pollo Real, Estilos (retail fundado en Arequipa), Mamut (sandwiches), Capriccio (postres y restaurante), “Kola Escocesa”, Energina, Socosani, etc.
En cuanto a transporte se podría decir que Arequipa es una de las ciudades más conectadas del Perú después de Lima. El desde el 2012 tanto en infraestructura (construcción de ) como en tráfico para atender la demanda de los próximos 20 años. Demanda que ya se supero y llevará a ampliar la pista para poder recibir aviones de mayor tamaño y . Actualmente LAN tiene 8-9 vuelos diarios desde Lima. También llegan Peruvian Airlines y TACA (ahora Avianca). Para vuelos al extranjero, además de las mencionadas, cuenta con la empresa boliviana Amaszonas que cubre Bolivia, Paraguay y Uruguay; y Sky Airline que vuela a Chile, Argentina, Bolivia y Colombia.
En el esquema de presupuesto que coloco pongo énfasis en los costos nuevos para una persona que no vive en Arequipa. Estos principalmente son: vivienda, alimentación. Asumo que pensiones, vestimenta, transporte ya son costos que se tiene previamente, o se van a tener al momento de iniciar estudios en su ciudad de origen. Otro tema importante es que los costos de referencia están cerca de los más altos. Por tanto, es bastante posible encontrar opciones a costo menor para cada item. Finalmente, los costos siempre están relacionados al estilo de vida, pero cuando se es estudiante eso no es la prioridad :)
Item | Costo | Comentarios |
Pensión | S/. 900 | Categoría más alta. |
Vivienda/Renta | S/. 500 | Cuartos/Habitaciones en zonas cercanas. |
Alimentación | S/. 420 | Dos comidas al día. (7*2*30) |
Transporte | S/. 63 | Tres viajes por día. (0.7*3*30) |
Total | S/. 1883 |
Los distritos cercanos a la UCSP son: Cercado, Yanahuara, Cayma (desde la plaza), Selva Alegre (baja). Se puede encontrar habitaciones más económicas en otras zonas como Miraflores, Selva Alegre (alta), Jose Luis Bustamente y Rivero.
Otra forma de ver el presupuesto es el costo efectivo por semestre, puesto que hay algunos costos adicionales que se pagan por semestre. En la UCSP el semestre dura 17 semanas, cerca de 5 meses.
Item | Costo | Unidades | Total |
Pensión | S/. 900 | 5 | S/. 4500 |
Matrícula | S/. 275 | 1 | S/. 275 |
Vivienda/Renta | S/. 500 | 5 | S/. 2500 |
Alimentación | S/. 420 | 5 | S/. 2100 |
Transporte | S/. 63 | 5 | S/. 315 |
Total | S/. 9690 |
Algunas opciones para reducir costos en la UCSP son:
Item | Costo | Comentarios |
Pensión | S/. 0 | |
Vivienda/Renta | S/. 400 | Cuartos/Habitaciones en zonas cercanas. |
Alimentación | S/. 360 | Dos comidas al día. (6*2*30) |
Transporte | S/. 63 | Tres viajes por día. (0.7*3*30) |
Total | S/. 823 |
Los distritos cercanos a la UNSA son: Cercado, Miraflores, Jose Luis Bustamente y Rivero.
Item | Costo | Unidades | Total |
Pensión | S/. 0 | 0 | S/. 0 |
Matrícula | S/. 120 | 1 | S/. 120 |
Vivienda/Renta | S/. 400 | 5 | S/. 2000 |
Alimentación | S/. 360 | 5 | S/. 1800 |
Transporte | S/. 63 | 5 | S/. 315 |
Total | S/. 4235 |
Otras formas de reducir costos en la UNSA son:
The introduction of the personal computer (PC) turned computers from number crunching machines into digital production tools. Production tools were gradually removed in favor of the computer for text editing, video editing, graphics, record keeping, etc. Eventually this phenomena increased the demand for larger permanent storage capacity. Every new computer model should advertise at least a 2x increase in it’s disk capacity to caught market’s eye. Worldwide Internet adoption put the pressure few levels up. Current models will never get you satisfaction as the latest and greatest promises. It’s an addiction. The more the better.
Little time has been put on re-thinking this clearly unsustainable model. Do you really need to have the largest disk in the world on your personal computer? I find that keeping files that are, and most likely will be, available forever in the Internet makes no sense. We should really ask ourselves this question: How much memory we want to keep? My take on such question is this:
Memory is becoming larger and faster but access and retrieval is still constrained by time. My answer to the initial question came when asking myself if the “download” model is still valid today. Computers were designed under the copy model. To work with data you need to copy from disk to main memory or the other way. The moment you visit a website a copy of that is stored on your browser’s assigned memory. Does this model still makes sense in the Internet and always-on world? I think the model should be upgraded.
]]>Del 7 de julio al 11 de agosto del 2014 se realizara en la Universidad Católica San Pablo, Arequipa el curso de “Entrepreneurship” dictado por el MIT Global Startup Labs. El curso está orientado a la creación de empresas de base tecnológica con alcance global.
Se busca la participación, en gran medida, de alumnos de ciencia de la computación, y personas de otras áreas con interés en la creación de empresas de base tecnológica. Durante 6 semanas los alumnos estarán abocados en aprender los diferentes aspectos que involucra la generación de este tipo de empresas.
Todos los detalles sobre el mismo en el sitio web del programa de Ciencia de la computación de la UCSP.
Update (20/7/2014):
al curso.
]]>El capitulo estudiantil de ACM de la UCSP está organizando la segunda edición del Concurso Escolar de Programación. El Concurso Escolar de Programación es una competencia que permitirá desarrollar tu creatividad y medir tus habilidades de comprensión lectora, matemática, abstracción y, finalmente, programación. Los participantes probarán sus habilidades de abstracción, diseño de algoritmos y programación en un ambiente competitivo.
Tal como la edición anterior, se realizará capacitación y entrenamiento a los colegios de la ciudad de Arequipa que deseen participar de este programa. Sin embargo, el concurso será abierto a cualquier participante que cumpla con los requisitos de las bases. Te animamos a formar parte del mundo de la programación competitiva. Esto te ayudara a conocer y aprender con los mejores del Perú y del mundo.
Esperamos que los participantes puedan obtener la experiencia necesaria para después intentar participar de las competencias internacionales como el – IOI o la competencia . De los participantes de la edición anterior hay más de uno que continúa desarrollando sus habilidades, preparándose y participando de competencias de este tipo.
Si deseas inscribirte o inscribir a tu colegio, visita el sitio web del concurso:
]]>El Dr. Alex Cuadros, líder de este proyecto y logro para el área de computación, ha que gracias a este financiamiento del gobierno peruano los estudiantes podrán recibir un estipendio que asciende a S/. 2500 y también incluye seguro médico entre otros beneficios. Este nuevo programa, que iniciará actividades el año 2014, contará también con fondos ascendentes a S/. 100,000 anuales para dedicarlos exclusivamente a fines de investigación.
Los están publicados ya en el sitio web del programa de maestría.
]]>El concurso se llevará a cabo el 6 y 7 de diciembre del 2013 en la – Arequipa, Perú. La modalidad de participación es individual. Esperamos que los participantes puedan obtener la experiencia necesaria para después intentar participar de las competencias internacionales como el – IOI o la competencia .
Los participantes pueden registrarse y ver el reglamento del concurso en:
]]>El pasado viernes 14 de junio el Capítulo Estudiantil de ACM de la Universidad Católica San Pablo realizó un evento respecto del tema de estudios de posgrado en computación en el extranjero. En el evento se trataron los siguientes aspectos:
En el evento contamos con la participación de peruanos miembros de la comunidad de computación quienes están haciendo o han realizado sus estudios de posgrado en el extranjero. En esta oportunidad participaron:
Ellos trataron acerca de las oportunidades y aspectos a tener en cuenta en cada una de sus universidades, con énfasis en las posibilidades en Brasil y EEUU.
En un futuro desarrollaremos otros conversatorios sobre el tema y esperamos contar con más panelistas quienes se encuentran desarrollando su actividad profesional y académica en el extranjero.
]]>
The XXVI edition of the SIBGRAPI will be organized for the first time outside of Brazil, in coordination with the Peruvian Computer Society (), its special interest group on Computer Graphics and Images (CGI) and the San Pablo Catholic University ().
The conference will be held on August 5-9, in the historical city of Arequipa, Peru. Arequipa is placed in the Southern Coastal region of Peru just below the edge of the Altiplano at 2335 meters above sea level and surrounded by three impressive volcanoes. Arequipa is also known as The White City (Ciudad Blanca) because its many colonial-era Spanish buildings built of “sillar”, a pearly white volcanic rock. The city is about an hour away by plane from Lima and about 35 minutes away of Cuzco by plane.
Student researchers and professionals are invited to participate by submitting original works in all areas of Computer Graphics, Image Processing, Computer Vision and Pattern Recognition, including but not limited to:
Animation and simulation, Biomedical imaging and visualization, Biometrics, Computational geometry, Computer vision and robotics, Document processing and analysis, Feature extraction and matching, Games, Geometric and solid modeling, Graphical interfaces, Graphics hardware, Image and video analysis, Image and video filtering and restoration, Image and video registration, Image and video retrieval, Image and video segmentation, Information visualization, Visual learning, Mathematical morphology, Mobile graphics, Motion and tracking, Non-photorealistic rendering, Pattern recognition, Point-based modeling, Real-time imaging and rendering, Remote sensing and geophysical imaging, Scientific visualization, Shape representation and matching, Simplification and compression, Stereo/3D imaging, Surface reconstruction, Virtual and augmented reality Visual data mining.
Visit the conference’s website for more details:
]]>La sede de este campamento es la , Arequipa, Perú. El campamento se realizará del 11 de febrero al 9 de marzo del 2013. El evento tendrá como a coachs y ex-competidores peruanos y argentinos.
Para mayor información visite la página del evento:
]]>The usual approach would be to implement those algorithms, call them in main()
and see the results. A more interesting approach would be to write a validator for each function and print whether the result is correct or not.
Since both are boring and break the rule of DRY, I’ve decided to go complicated but productive, so I’ve implemented a function testing method using function pointers that will allow me to write a single function and use it to test the algorithms using different input and expected results.
Let’s say I have 3 algorithms that implement Modular Exponentiation.
uint64 modexp1new(const uint64 &a, const uint64 &_p, const uint64 &n){ ... } uint64 modexp2(const uint64 &_a, const uint64 &_p, const uint64 &_n){ ... } uint64 modexp3(const uint64 &a, const uint64 &p, const uint64 &n){ ... }
If you are not familiar with the syntax, const
means that the parameter is constant, thus it will not be modified inside the function. The &
means that the parameter is passed as a reference, read the memory address of the calling variable, so we don’t overload fill the RAM with new variables new copies of the variables.
Now, the testing part. For my very own purposes I just want to test those particular functions and know whether if the result they output conforms what I do expect. Some people call this unit testing.
I do also want to test it in different scenarios, meaning input and output.
So, I’m creating a function that will get the three parameters required to call the functions, and a fourth parameter that is the value I do expect to be the correct answer.
Now, since I don’t want to repeat myself writing a call for each case, I’m going to create a function pointer that is an array and has the function’s address as their value. That way I can call them in a loop, and voila! we are done.
Finally, after calling the function I check the result with the expected value and print an OK or FAIL.
Tricky part for this could be understanding the function pointer. Two things to consider: the returning value from the referenced functions has to be the same for all. Second: the input definition for each function has to be similar too. This is important because function pointers are just pointers and they need to know the size of the data type in order to navigate the memory.
For this sample code the uint64 is a typedef
for long long
, of course. Full code is below.
void testAlgos(const uint64 &a, const uint64 &e, const uint64 &n, const uint64 &r){ uint64 (*fP[3])(const uint64&, const uint64&, const uint64&) = { &modexp1new, &modexp2, &modexp3 }; uint64 t; for(int i=0; i<3; i++){ t = fP[i](a, e, n); std::cout < < "F(" << i << ") " << t << "\t"; if (t == r){ std::cout << "OK"; } else { std::cout << "FAIL"; } std::cout << std::endl; } }
Now that I have this, I can use it in main this way.
int main(){ uint64 a = 3740332; uint64 e = 44383; uint64 n = 3130164467; uint64 r = 1976425102; testAlgos(a, e, n, r); a = 404137263; r = 2520752541; testAlgos(a, e, n, r); a = 21; e = 3; n = 1003; r = 234; testAlgos(a, e, n, r); return 0; }
Resulting in:
F(0) 657519405 FAIL F(1) 1976425102 OK F(2) 657519405 FAIL F(0) -2752082808 FAIL F(1) 2520752541 OK F(2) -2752082808 FAIL F(0) 234 OK F(1) 234 OK F(2) 234 OK
I’m happy about not having to write tests like this for all use cases:
std::cout < < "f1: " << modexp1new(a, e, n) << std::endl; std::cout << "f2: " << modexp2(a, e, n) << std::endl; std::cout << "f3: " << modexp3(a, e, n) << std::endl;
Now, happiness can be more exciting if I do use templates so I can test any function independent of the data type for the returning and input values. You know, more abstraction. Homework if time allows! Have fun!
]]>