480 likes | 707 Views
3004578 - ALGORITMOS Y PROGRAMACIÓN. Clase #1: Introducción. Algoritmos. Estructuras básicas. Escuela de Sistemas. Universidad Nacional de Colombia. Facultad de Minas. Facultad de Minas. 120 años. Introducción. Importancia de la computación. Presentación del Curso.
E N D
3004578 - ALGORITMOS Y PROGRAMACIÓN Clase #1: Introducción. Algoritmos. Estructuras básicas. Escuela de Sistemas Universidad Nacional de Colombia Facultad de Minas Facultad de Minas 120 años
Introducción Importancia de la computación Presentación del Curso Metodología de Trabajo. Métodos eficientes de Estudio. Conceptos Básicos de Algoritmos y Programación Estructuras automáticas básicas Semestre 02-2007
Importancia de la computación • Los computadores y las redes de computadores se han convertido en la herramienta imprescindible en toda área técnica y de ingeniería. • Todo técnico y profesional debe manejar y aplicar eficientemente dicha herramienta, en sus áreas propias de profesión.
Necesidad de la computación para los ingenieros • Las necesidades y exigencias de las empresas, de los negocios, de las sociedades actuales, requieren que los ingenieros sean más eficientes en sus labores. • Las herramientas computaciones, computadores, entornos y lenguajes, permiten lograr mayores niveles de eficiencia en el desarrollo técnico personal.
Objetivos del curso • Desarrollar capacidades lógico - abstractas para el análisis, implementación y solución de problemas, mediante un enfoque algorítmico. • Incentivar el aprendizaje de un lenguaje de programación con entorno gráfico, visual e interactivo: Visual Basic.
Contenido - Primera Parte(6 semanas) • Introducción al curso. • Entorno de programación. • Estructuras básicas para representación de algoritmos: secuencia, selección lógica, iteración. • El concepto de PROYECTO en Visual Basic y sus componentes. Selección lógica. • Iteración definida, acumulador/contador; Técnicas de integración numérica. • Iteración indefinida, técnicas para encontrar raíces de funciones. • Primera evaluación (25%)
Contenido - Segunda Parte(5 semanas) • Vectores y subprogramas. • Archivos de texto. • Ejercicios con vectores, archivos y subprogramas. • Graficación en VB. • Búsqueda y ordenamiento en vectores • Segunda evaluación(25%)
Contenido - Tercera Parte(5 semanas) • Matrices. • Ejercicios con matrices y vectores. • Solución de sistemas de ecuaciones lineales simultáneas. • Métodos para calcular la inversa de una matriz. • Mínimos cuadrados para el ajuste de curvas. • Tercera evaluación (25%)
Evaluación • 3 Exámenes escritos del 75%: • Semana 7, (25%), Lunes 12 de Marzo 4 .p.m. • Semana 12, (25%), Lunes 16 de Abril, 4 p.m. • Semana 16, (25%), Lunes 14 de Mayo • 2 Exámenes prácticos del 25%: • Semana 8 (12%), hora práctica • Semana 16 (12%), hora práctica
Metodología • Exposiciones magistrales (auditorio,12-202). • Uso del computador / Software (PC’s, 41-214), o en Minas Bloque M7, 5º piso. • Talleres // Asesorías // Tareas extraclase. • Aprendizaje “vía ejemplos”; “aprendizaje activo”. “Construccionismo Cognitivo”. • Requisitos: Algebra Lineal; matemáticas básicas; Métodos eficientes de estudio.
BIBLIOGRAFÍA Y REFERENCIAS/Teoría Algoritmos • Chapra, Steven C. & Canale, Raymond P.: «Numerical Methods for Engineers», McGraw-Hill, 2002, Caps.: 1, 2, 5, 6, 8, 9, 12, 17, 20, 21, 22, 24. • Brassard, G. y Bratley, P.: «Fundamentos de ALGORITMIA», Prentice Hall International, Madrid (España), 1997. • Oviedo, Efraím: “Lógica para programación”, ECOE ediciones, Agosto 2004. (para la primera parte del curso), Caps.: 1, 2, 3, 4, 5, 6, 7, 8. • Lopez, Leobardo: “Programación Estructurada, un enfoque algorítmico”, AlfaOmega, 2002 • Cairó, oswaldo: «Metodología de Programación», Tomos I, II, AlfaOmega Editorial, 2002. • (documemtación web)Alvarez-Montoya, William, 2006 (caps. 1, 2, 4, 5, 6), http://www.unalmed.edu.co/~walvarem
BIBLIOGRAFÍA Y REFERENCIAS/Programación • García, Javier, et al.: “Aprenda Visual Basic 6.0 como si estuviera en primero” (pdf, en internet). • Aguilar, Joyanes: «Visual Basic 6.0, Iniciación y Referencia». McGraw-Hill, 2001. (incluye CD-ROM, con los ejercicios de los capítulos y una versión de aprendizaje de Visual Basic 6.0). • Ceballos, Francisco Javier: «Programación Visual Basic 6.0» 2002, AlfaOmega Editorial, incluye CD. • Algoritmos & Programación con Visual Basic (documemtación web)Alvarez-Montoya, William(cap. 3), http://www.unalmed.edu.co/~walvarem • Aplicaciones en Métodos Numéricos (documemtación web)Alvarez-Montoya, William(caps. 3,4,5,6,8), http://www.unalmed.edu.co/~walvarem
BIBLIOGRAFÍA Y REFERENCIAS/Prácticas • García, Javier, et al.: “Practique Visual Basic 6.0 como si estuviera en primero”, Universidad de Navarra, Junio 2003 (pdf, en página web, contiene 7 prácticas). • (documentación web) Alvarez-Montoya, William, «Guías de Prácticas», http://xue.unalmed.edu.co/~walvarem • Página de la asignatura en la Escuela de Sistemas: http://pisis.unalmed.edu.co/cursos/algoritmos
DOCUMENTACIÓN ADICIONAL WEB/1 http://www.unalmed.edu.co/~walvarem • Problemas resueltos (formato html). • Problemateca (serie de problemas, en html). • Proyectos de ejemplo (formato HTML). • Algunos ejercicios de autoevaluación. • Exámenes anteriores resueltos (html). • Referencias y enlaces (documentación online). • Manuales que se pueden descargar (formatos: htm, zip, pdf). • Técnicas de Estudio (indicaciones básicas).
DOCUMENTACIÓN ADICIONAL WEB/2 http://ciencias.unalmed.edu.co/moodle • Escoger: facultad de minas / Algoritmos y Programación. • Inscribirse llenando el formato (Nombre usuario; contraseña). • Después ingresar con password: galaxia2007. • Interactuar con la plataforma MOODLE. • Primera tarea: GLOSARIO • FORO: Miércoles 10 a.m. – 12 m. (preguntas).
Proyecto de Vida • Actitud PROACTIVA ACTITUDES ALGORITMOS & PROGRAMACIÓN Objetivos Aprendizaje • Asistir a clases • Saber fijar atención • Tomar apuntes • Estudio extraclase • Lectura rápida • Mejorar memoria • Nutrición eficiente Métodos eficientes de estudio DIDÁCTICA DE ACTIVIDADES SEMANALES
CLASE TEÓRICA Centrar atención Tomar apuntes • Durante la clase PRÁCTICA: • Centrarse en la elaboración del proyecto respectivo. • Saber conceptualizar y diferenciar las etapas de elaboración del proyecto. • Saber grabar el proyecto.. • ¿Qué tareas se plantean?. • Después de la clase PRÁCTICA: • Estudio del proyecto; etapas de elaboración (ojalá el mismo día) • Repasar proyecto(s) en página web. • Realizar otro proyecto en computador • Asistir a un taller adicional. • ¿Qué preguntas puede plantearse?. • Después de la clase TEÓRICA: • Estudiar más detallada y profundamente los contenidos, ojalá el mismo día. • No dejar acumular contenidos. • Resolver las preguntas que surgieron. • Realizar las tareas, ejercicios, proyectos, talleres. • Asistir a un taller adicional. • Después de la clase TEÓRICA: • Estudiar más detallada y profundamente los contenidos, ojalá el mismo día. • No dejar acumular contenidos. • Resolver las preguntas que surgieron. • Realizar las tareas, ejercicios, proyectos, talleres. • Asistir a un taller adicional. • Durante la clase TEÓRICA: • Saber fijar la atención. • Toma creativa de apuntes • Formular preguntas. • Utilizar memoria asociativa • ¿Qué tareas se plantean?. Estudiar contenidos CLASE PRÁCTICA Sobre técnicas básicas de estudio ver el documento: «CÓMO ESTUDIAR Y APRENDER UNA DISCIPLINA», por Richard Paul y Linda Elder, de la Fundación para El Pensamiento Crítico, 2003, www.criticalthinking.org, que también está en la página web de la documentación: http://www.unalmed.edu.co/~walvarem Estudiar talleres, relizar proyecto Realimentación DIDÁCTICA DE ACTIVIDADES SEMANALES
HORARIOS ATENCIÓN ESTUDIANTES OFICINA: M8-A-214 (MINAS) • Sábados , 12 a 2 p.m. (¿taller teórico, AULA ?). (por definir) • Atención Estudiantes: Miércoles, Jueves, 4p.m. a 6p. m.; FORO: Miércoles 10 a.m.-12m. • E-mail: walvarem@unalmed.edu.co
Culturas de China, Mesopotamia.. Desde 5000 años A.C. • Operaciones simples de Aritmética. • Primer artefacto de cómputo • Atribuídas a Blas Pascal y Godofredo Leibnitz. Siglo XVI. • Pascal: primera sumadora mecánica. • Leibnitz: incluye multiplicación • Desde finales del siglo XIX. • 1890: Censo en Estados Unidos y Europa. • Inicios S.XX: proceso de datos en empresas. • Siglo XX, desde 1940’s. • 1940’s: primera computadora electromecánica. • 1950’s: proceso de datos en empresas; transistor. • Siglo XX, desde 1960’s. • Grandes empresas, países más indudtrializados. • Investigación; industria aeroespacial. • Oct. 1981: “Revolución de los PC’s. • Microelectrónica. Computadores personales. • Red mundial. Tecnologías de programación. • Internet 2 (desde año 2000)... Nanotrónica... Evolución del computador (Cap. 1) • El ábaco, antigüedad. • Calculadoras mecánicas. • Electromecánicos. • Electrónicos. • Supercomputadores. • El PC, redes de PC, Internet, 1980-
Microelectrónica,Programación EVOLUCIÓN HARDWARE/SOFTWARE Año 2007
A todo nivel organizacional se requieren respuestas a tiempo real. • Telecomunicaciones. • Control de procesos de fabricación, y de prestación de servicios, etc. • En el diseño y cálculo de la estructura de un edificio, por ejemplo, se tardaría meses hacer las operaciones matemáticas manualmente. • El computador, mediante los programas respectivos, realiza tales procesos en pocos minutos. • En las empresas, los procesos de inventarios, por ejemplo, con decenas de miles de artículos. • Igualmente, los procesos de nómina, contables, financieros, de facturación, de proveedores, etc. • En el Estado los impuestos, datos de población, etc. • El software, a través de los computadores, puede manejar procesos complejos de tipo lógico y matemático. • Las transacciones basadas en redes de computadores (locales, regionales, nacionales, internacionales). • Inteligencia Artificial, Sistemas Expertos, etc. • Las máquinas (los computadores), en general, suelen ser más precisas que las personas. • Esta capacidad de las máquinas es especialmente útil en los cálculos de Ingeniería. • Igualmente, en las labores científicas, financieras, etc. Para que el computador? Resolver Problemas Técnicos y de Ingeniería: • Cálculos Repetitivos. • Grandes volúmenes de información. • Complejidad cálculos. • Velocidad de proceso y de respuesta. • Precisión.
Potenciando, así, el enfoque meramente ecuacional. • La Aritmética, el Álgebra y demás áreas matemáticas se aunan en los algoritmos implementados en software. • Que sin ayuda de los computadores no se podrían resolver en términos prácticos de tiempo, costo, y demás recursos. • Es una de las bases actuales en el desarrollo de las ciencias, las tecnologías, el conocimiento. • Facilita obtener mejores soluciones a problemas más complejos. • El software es el conjunto de programas que permiten y facilitan la utilización de un computador. Se le denomina, también, la parte lógica de la máquina. • Categorías de software: Sistema Operativo, Entornos de programación, Automatización de oficina, redes, etc.. • Un PROYECTO incluye deversidad de recursos que se aplican en el tiempo para obtener unos fines. • En el ámbito de la asignatura, se trabajarán proyectos con el software Visual Basic. • Comprende la parte electrónica, electromecánica y mecánica de los computadores. • También puede incluir programación. • Microelectrónica. Chips. Memorias RAM, ROM. EL ENFOQUE ALGORÍTMICO • Permite resolver problemas complejos. • Software. • Hardware. • Proyectos. • Facilita resolver problemas de cálculos.
SECUENCIA de procesos (tareas, operaciones) ordenada lógicamente que permite obtener ciertos resultados a partir de ciertos datos. • LOS ALGORITMOS estudiados en este curso son los SECUENCIALES. • Permite el análisis lógico-conceptual de un problema y anticipar las posibles soluciones. • En cierto sentido permite MODELAR la realidad, con el fín de poder modificarla, o adaptarla a determinadas necesidades. • Cuando un algoritmo se expresa mediante la sintaxis de un lenguaje de programación de computadores se llama, entonces, un PROGRAMA. • Un conjunto de programas constituye un SOFTWARE. • Tiene tanto de arte como de ciencia. • Existe una teoría en crecimiento y todo un bagaje de experiencias. • Hacer un buen algoritmo exige abstracción, lógica, imaginación, creatividad, dominio de las técnicas de programación, y dominio del área del problema que se intenta resolver. • Expresando la secuencia lógica de operaciones que llevan a la solución de un problema. • Considerando todas las posibilidades lógicas del problema en custión. • Considerando las relaciones y restricciones pertinentes al problema. EL CONCEPTO DE ALGORITMO • ¿Qué es un algoritmo? • ¿Por qué es útil? • ¿Cómo se aplica? • Algoritmos y Programas • Elaborar algoritmos.
Un algoritmo se elabora (construye) mediante ciertos componentes básicos llamados ESTRUCTURAS. • Desde la década de 1960’s se vió que este enfoque, aunque sencillo, es muy útil para representar secuencias de procesos (tareas, actividades, operaciones). • PERMITE ELEGIR UNA DE DOS O MÁS VÍAS DE ACCIÓN (ALTERNATIVAS). • En un problema especifíco, el conjunto de ALTERNATIVAS puede ser muy extenso. • ES LA REPETICIÓN DE UNA O MÁS OPERACIONES. • De antemano, puede conocerse o no cuántas veces se repetirán las operaciones. • El conjunto de operaciones que se repite se llama RANGO DE ITERACIÓN. • TODO ALGORITMO ES UNA SECUENCIA LÓGICA DE CIERTAS OPERACIONES (ó procesos, o tareas, o eventos). • En la solución de un problema existe una secuencia general, y dentro de ella muchas otras secuencias más detalladas. CONSTRUCCIÓN DE ALGORITMOS • Estructuras básicas • ¿Cuáles son? • SECUENCIA • SELECCIÓN LÓGICA • ITERACIÓN
Datos capturados • PROCESAMIENTO • Cálculos • Relaciones lógicas ENTRADA Muestran, Graban, Imprimen, transmiten Variables, constantes (DATOS) Realimentación Variables, constantes (RESULTADOS) SALIDA CONSTRUCCIÓN DE ALGORITMOS Esquema GENÉRICO de un ALGORITMO SECUENCIAL
ESTE ES EL ALGORITMO. • Para este problema es trivial. MODELO DE UN PROBLEMA PRÁCTICO CONSTRUCCIÓN DE ALGORITMOS EJEMPLO #1 Solucionar ecuaciones cuadráticas de la forma: AX2 + BX + C = 0 Análisis: • Conocer los coeficientes A, B, C. • Se aplica la fórmula del Álgebra:
PROCESAMIENTO • Cálculos • Relaciones lógicas DATOS DE ENTRADA SALIDA (resultados) A 0, D 0 A, B, C X1, X2 EJEMPLO#1: Ecuaciones cuadráticas Este es el esquema (diagrama) genérico
LEER A,B,C • EXPRESA EL PROCESO LÓGICO • Es decir, EL ALGORITMO que obtiene las raíces X1, X2 a partir de los datos de entrada A, B, C. • En general, LEER implica obtener o conocer ciertos valores que son base para procesos posteriores. • Los operadores son similares al ÁLGEBRA y la ARITMÉTICA. Sqr() significa “raíz cuadrada”. D=BB-4AC X1=(-B+sqr(D))/(2A) X2=(-B-sqr(D))/(2A) REPRESENTACIÓN DE ALGORITMOS Diagrama libre
ESTE TIPO DE REPRESENTACIÓN DIAGRAMÁTICA ES EL QUE SE SEGUIRÁ EMPLEANDO EN EL CURSO. • Las características y ventajas de este tipo de diagrama se explican en el capítulo 2, sección 2.1 (véase la documentación del curso). • El proceso de MOSTRAR implica visualización en la pantalla del computador. • Los operadores utilizados son: • * (asterisco) para multiplicar. • + (signo más) para sumar. • - (signo menos) para restar. • / (diagonal) para división real. • “ “ (comillas dobles) para texto. • = (signo igual) para asignar memoria REPRESENTACIÓN DE ALGORITMOS Diagrama rectangular estructurado
Interfaz gráfica de usuario (GUI). • Basados en objetos. (POO) • Guiada por eventos • Programación automática. • Generación rápida de aplicaciones(RAD) ENTORNO DE PROGRAMACIÓN/1 • Entorno Visual Basic. • Entorno C (Visual C++). • Entorno Java. • Entorno Visual Fortran... • Paradigmas tecnológicos sobre los que subyacen
BARRA DE TÍTULO Y CONTROL • BARRA DE HERRAMIENTAS • BARRA DEL MENÚ PRINCIPAL VENTANA DE UBICACIÓN VENTANA DE PROPIEDADES FORMULARIO BASE DE DISEÑO CAJA DE CONTROLES EXPLORADOR DE PROYECTOS ESCRITORIO PRINCIPAL EN VISUAL BASIC ENTORNO DE PROGRAMACIÓN/2
A = Val(Text1) B = Val(Text2) C = Val(Text3) D = B^2 - 4 * A * C X1 = (-B + sqr(D)) / (2 * A) X2 = (-B - sqr(D)) / (2 * A) Text4 = Str(X1) Text5 = Str(X2) CONFORMAN UN PROYECTO EN VISUAL BASIC Interfaz gráfica en Visual Basic Programa genérico:
Elaborando la interfaz gráfica del usuario (formulario y demás objetos). • Escribiendo los procedimientos pertinentes. • Realizando la ejecución, depuración y correcciones del mismo. • Identificación y entendimiento del problema. • Identificación de variables y constantes (la estructura de datos de ENTRADA y SALIDA). • Restricciones y relaciones matemáticas entre variables y constantes (fórmulas). • Representando la secuencia de pasos (operaciones, o procesos), llamada algoritmo, mediante una herramienta apropiada. • Puede ser con una forma diagramática (diagrama libre, diagrama estructurado). • Puede ser con Pseudocódigo (P-código), o lenguaje natural estructurado. SE AUNAN ENFOQUES: ECUACIONAL, ALGORÍTMICO METODOLOGÍA GENERAL DE TRABAJO 1. Análisis del problema 2. Diseño de una estrategia de solución 3. Programa (proyecto), usando un lenguaja de programación
Determinar el esfuerzo inducido, en psi (unidades del Sistema Internacional) si se conocen los demás parámetros: N = 1; E = 3.0x107 psi; R = 4.2 x 104 psi; K = 0.29 in; L = 20.3 in; A = 17.5 in2; F = 12000 lbf En un refino posterior del algoritmo, calcular el esfuerzo inducido para valores de F desde 12000 hasta 30000 lbf con incremento de 1000 lbf, permaneciendo los demás parámetros constantes. En otro refino, calcular el esfuerzo inducido para valores de L desde 15.5 in hasta 30.5 in con incrementos de 0.5 in, permaneciendo todos los demás parámetros constantes EJEMPLO#2 (P107) El esfuerzo, en cierto tipo de columna, se calcula por medio de la fórmula mostrada: Donde:es el esfuerzo inducido (psi); F es la fuerza aplicada (lbf); A es el área de la sección de la columna (in2); L es la longitud de la columna (in); K es el radio de giro (in); R es el límite elástico del material (lbf/in2); E es módulo de elasticidad (lbf/in2); N es un coeficiente diferenciador de las condiciones finales (adimensional).
PROCESAMIENTO • Cálculos • Relaciones lógicas DATOS DE ENTRADA SALIDA (resultados) F, A, L, K, R, N, E, π EJEMPLO#2 (P107),cont. N0, A 0, K 0, E 0 Este es el esquema (diagrama) genérico
En este algoritmo sólo se considera un valor único de F (la fuerza). Para poder obtener los diferentes esfuerzos correspondientes a la variación de F de 12000 hasta 30000 libras, con incrementos de 1000 libras, es preciso emplear un proceso de repetición (iteración). DIAGRAMA ESTRUCTURADO DE LÓGICA EJEMPLO#2 (P107),cont.
Esta estructura de iteración implica que la variable F recorre el intervalo [12000, 30000] incrementándose cada vez en 1000. El proceso es automático. EJEMPLO#2 (P107),cont.
Esta estructura de SECUENCIA es la estructura básica de todo ALGORITMO SECUENCIAL. • EL ORDEN DE EJECUCIÓN de los procesos (operaciones) es de arriba hacia abajo y de izquierda a derecha. • Primero se ejecuta el proceso 1; cuando este finaliza se ejecutará el proceso 2; y así hasta ejecutar el último proceso, el proceso n. • Esta estructura de SELECCIÓN LÓGICA permite evaluar una condición lógica (Clógica). • SI SU VALOR DE VERDAD es cierto, entonces se ejecuta el proceso Proc v. • Si es falso, se ejecutará el proceso Proc f. • Así es posible optar por una de dos alternativas. • Se aplican las tablas de verdad de la Lógica Simbólica (ver sección 3.2) Clogica VF Proc vProc f ESTRUCTURAS AUTOMÁTICAS BÁSICAS PROC 1 PROC 2 .......... PROC n SECUENCIA SELECCIÓN LÓGICA
K = 1, N PROC 1 PROC 2 .......... PROC n • Esta estructura de ITERACIÓN permite repetir muchas veces un cierto conjunto de operaciones. • Dicho conjunto de operaciones se denomina el RANGO DE ITERACIÓN. • La variable K es el índice de iteración. • La variable N es el límite final de las iteraciones. • CON ESTE DIAGRAMA ESTRUCTURADO, empleando las tres estructuras básicas, se representa -en forma compacta- un algoritmo. • El proceso LEER N obtiene el valor de N. • Max = 0 inicializa la variable Max. • Dentro del proceso repetitivo se lee un número entero, X, y se compara con el contenido de Max. • N, K, Max, X son “casillas” de la memoria interna. (hacer el seguimiento lógico) • ¿Qué pasa si los números no son enteros positivos? ESTRUCTURAS AUTOMÁTICAS BÁSICAS ITERACIÓN Mayor de una serie de enteross positivos
Los conceptos básicos de la evolución histórica de los computadores y sus teorías y tecnologías conexas. • Arquitectura de computadores. Sistema Operativo. • El concepto de ALGORITMO y sus aplicaciones. • Las estructuras automáticas básicas para la construcción de algoritmos. • Diagrama estructurado para representar algoritmos. • Aplicar las estructuras de SECUENCIA, SELECCIÓN LÓGICA, ITERACIÓN. • Realizar prueba de escritorio de los algoritmos. • Referirse a las secciones 2.1 y 3.2 de la documentación básica en la web. TAREAS EXTRACLASE #1 1. Estudiar Capítulo 1. En especial sección 1... Resolver quicesinteractivos. 2. Estudiar Capítulo 2, sección 2.1. 3. Elaborar diagramas estructurados de lógica para los siguientes problemas de la problemateca: 2, 3, 4, 5, 30, 31, 32, 33, 34, 35, 39, 40.
Esta actividad es fundamental como preparación de la clase práctica. • Es preciso que el (la) estudiante se provea de un diskette para grabar en él los archivos del proyecto que se elabora en la clase. • Esta actividad es fundamental como preparación de la clase teórica siguiente. • De esta manera no se acumulan los contenidos de las clases. • EXIGE UNA ACTITUD PROACTIVA respecto a la labor de estudiar. TAREAS EXTRACLASE #1 4. Efectuar una lectura previa a la sección 3.1, que presenta el entorno de programación Visual Basic. 5. Tener impresión diapositivas Clase#2 para la próxima reunión (es material de trabajo en clase).
¡¡¡¡ ATENCIÓN !!!! LAS CLASES PRÁCTICAS SE REALIZAN EN EL AULA 41-214 (¿ESTA SEMANA?)
Universidad Nacional de Colombia Facultad de Minas 120 años ¡ FIN CLASE ! Escuela de Sistemas