Universidad Nacional de Colombia - PowerPoint PPT Presentation

slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Universidad Nacional de Colombia PowerPoint Presentation
Download Presentation
Universidad Nacional de Colombia

play fullscreen
1 / 38
Universidad Nacional de Colombia
182 Views
Download Presentation
carney
Download Presentation

Universidad Nacional de Colombia

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Escuela de Sistemas Universidad Nacional de Colombia Facultad de Minas Facultad de Minas 120 años FUNDAMENTOS DE PROGRAMACIÓN Clase #1: Introducción

  2. Introducción Importancia de la computación Presentación del Curso Metodología de Trabajo. Métodos eficientes de Estudio. Conceptos Básicos de Programación Estructuras automáticas básicas Semestre 02-2008

  3. 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.

  4. 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.

  5. 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: Excel - Visual Basic for Applications (VBA).

  6. Contenido - Primera Parte(4/5 semanas) • Introducción al curso. • Entorno de programación. • Estructuras básicas para representación de algoritmos: secuencia, selección lógica. • El concepto de PROYECTO en VBA y sus componentes. Selección lógica. • Iteración definida, acumulador/contador; Técnicas de integración numérica. • Primera evaluación teórica (25%).

  7. Contenido - Segunda Parte(5/6 semanas) • Vectores • Iteración indefinida • Búsqueda y ordenamiento • Aplicaciones • Segunda evaluación teórica (25%) • Primera evaluación práctica (12.5%)

  8. Contenido - Tercera Parte(4/5 semanas) • Matrices • Funciones y subprogramas • Variables locales y globales • Aplicaciones • Tercera evaluación teórica (25%) • Segunda evaluación práctica (12.5%)

  9. Evaluación – Semestre 01/2009 • 3 Exámenes escritos (75%): • Primer parcial (25%), Lunes 30 de Marzo/2009 4 .p.m. • Segundo parcial (25%), Lunes 11 de Mayo/2009, 4 p.m. • Tercer parcial (25%), Lunes 8 Junio/2009, 4 p.m. • 2 Exámenes prácticos (25%): hora práctica • Semana Abril-20/24 (12.5%) • Semana Junio-8/12 (12.5%)

  10. PROGRAMA CALENDARIO - SEM.01-2007 METODOLOGÍA • Aprendizaje activo • Aprendizaje vía ejemplos. • (Empoderamiento cognitivo)

  11. 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: Matemáticas básicas; Métodos eficientes de estudio.

  12. BIBLIOGRAFÍA Y REFERENCIAS • 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 • 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. • Walkenbach, J.: «Microsoft Office Excel 2007 VBA Programming for DUMMIES», Wyley Publishing, Inc., 2007. (puede leerse online en http://www.docstoc.com/docs/document-preview.aspx?doc_id=1659168) capítulos: 3, 7, 10, 14, 15, 16, 17, 22.

  13. PÁGINA WEB DEL CURSO http://virtual2.unalmed.edu.co/moodle Facultad de minas – Fundamentos de programación • Clases prácticas y teóricas • Ejemplos interactivos • Problemateca • Talleres online • Documentos, manuales y enlaces de interés • Alvarez-Montoya, William: «Algoritmos & Programación con VBA» • Alvarez-Montoya, William: «Aplicaciones en Métodos Numéricos » • Técnicas de estudio

  14. 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

  15. 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, realizar proyecto Realimentación DIDÁCTICA DE ACTIVIDADES SEMANALES

  16. 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-

  17. Microelectrónica,Programación EVOLUCIÓN HARDWARE/SOFTWARE Año 2008

  18. Arquitectura de computadores - interna

  19. Arquitectura de computadores - externa

  20. 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.

  21. 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.

  22. 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

  23. 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? 1. Secuencia 2. Selección lógica 3. Iteración

  24. 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

  25. CONSTRUCCIÓN DE ALGORITMOS EJEMPLO Diseñar un algoritmo para calcular el área de un triángulo Análisis: Cuales son los datos de entrada? Cuales son los datos de salida? Que cálculos/procesos deben llevarse a cabo?

  26. CONSTRUCCIÓN DE ALGORITMOS DATOS DE ENTRADA Base, Altura PROCESAMIENTO Área = Base*Altura DATOS DE SALIDA Área

  27. REPRESENTACIÓN DE ALGORITMOS • Pseudocódigo • INICIO • Leer Base, Altura • Area = Base*Altura • Mostrar Area • FIN Diagrama de caja 07/09/2014 1 - 27

  28. CONSTRUCCIÓN DE ALGORITMOS EJEMPLO 2 Diseñar un algoritmo para calcular el perímetro de un círculo Análisis: Cuales son los datos de entrada? π es dato de entrada? Cuales son los datos de salida? Que cálculos/procesos deben llevarse a cabo? 07/09/2014 1 - 28

  29. CONSTRUCCIÓN DE ALGORITMOS EJEMPLO 3 Suponga que se necesita un algoritmo para realizar la factura en un almacén que vende televisores al por mayor (suponiendo que de un solo tipo). La factura debe mostrar el valor total a pagar y el valor de los impuestos. El costo por unidad de los televisores es de $700.000 y el impuesto aplicado es del 16%. Análisis? • INICIO • Leer numero_unidades • Impuestos = numero_unidades* $700.000 * 0.16 • Total = numero_unidades* $700.000 + Impuestos • Mostrar Total, Impuestos • FIN 07/09/2014 1 - 29

  30. Algoritmo, Lenguaje y Programa Los términos “algoritmo” y “programa” tienden a confundirse y en algunos casos a utilizarse indiferentemente. Recordemos que el término “algoritmo” se refiere a la secuencia de pasos para resolver un problema, pero independiente del lenguaje de programación que se utilice, mientras que “programa” se refiere propiamente a la codificación de un algoritmo en algún lenguaje de programación.

  31. Lenguajes y entornos de programación • Basic / Visual Basic • C / C++ • Java • Pascal • Fortran / Visual Fortran • … 07/09/2014 1 - 31

  32. 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. 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

  33. TAREAS EXTRACLASE • Ingresar a la página del curso y resolver el primer cuestionario • Leer Capitulo 2, sección 2.1 • Elaborar algoritmos (en pseudocódigo o diagrama de caja) para los siguientes problemas de la problemateca: 1 - 6 • Efectuar una lectura previa de la sección 3.1, que presenta el entorno de programación Visual Basic • Efectuar una lectura previa de la siguiente clase

  34. ¡¡¡¡ ATENCIÓN !!!! LAS CLASES PRÁCTICAS SE REALIZAN EN EL AULA 41-214 (¡Próxima semana!) Se recomienda llevar memoria USB para grabar los trabajos o emplear el servicio de ftp que está disponible para todos los estudiantes

  35. Universidad Nacional de Colombia Facultad de Minas 120 años ¡ FIN CLASE ! Escuela de Sistemas