BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA Facultad de Ciencias Físico-Matemáticas Algoritmos y Programación Dr. Javier M. Hernández Primavera de 2006 PREREQUISITOS: MATEMÁTICAS BASICAS OBJETIVOS GENERALES DE LA ASIGNATURA: El futuro licenciado en Física/Física Aplicada debe conocer métodos adicionales de solución de ecuaciones ya sean algebraicas, integrales o diferenciales. En este curso se pretende que los estudiantes adquieran los conocimientos mínimos necesarios de algoritmos y programación que, al ser traducidos un lenguaje particular, les permitan un manejo solvente en la resolución de problemas numéricos. HABILIDADES GENERALES A DESARROLLAR: Manejo y construcción de algoritmos de programación y de programas especícos en, al menos, un lenguaje de programación. Reforzar en el estudiante el razonamiento frente a un problema Introducir al estudiante en el uso aplicado de un lenguaje de programación Abordar un problema: identicar datos e incógnitas y proponer un método de solución. Descomponer un problema en subproblemas. 1 CONTENIDO TEMÁTICO UNIDAD 1. INTRODUCCION. 1.1 Hardware y Software. La estructura de las computadoras. 1.2 Sistemas operativas, utilerías, aplicaciones especícas. [ Sistema Operativo Unix y sus derivados, comandos básicos ] 1.3 Resolucion de problemas y desarrollo de programas. [ ¿Qué es lo que puede hacer una computadora? Operaciones de control, aritméticológicas y movimiento de información. ] 1.4 El ciclo edición-compilación-evaluación. 1.5 Desarrollo de algoritmos. 1.6 Flujo del programa y pseudocódigo. UNIDAD 2. TIPOS, OPERADORES Y EXPRESIONES 2.1 Tipos de datos. Entrada y salida de datos. Asignación. 2.2 La estructura de datos de archivos. [ Uso de variables y constantes enteras, reales, caracter, cadena ] 2.3 La estructura de datos de arreglos. [ Uso de variables y constantes arreglo ] 2.4 Introducción a los Punteros. UNIDAD: 3. CONTROL DEL FLUJO DE UN PROGRAMA 3.1 Estructuras condicionales. [ Ejercicios con la instrucción de decisión ] 3.2 Estructuras de repetición. [ Ejercicios con la instrucción de repetición. El uso de subíndices. Arreglos. ] UNIDAD 4. ESTRUCTURACION DEL CODIGO 4.1 Subrutinas, procedimientos y funciones. [Uso y denición de una función, subrutina o procedimiento. Aplicaciones de las funciones. ] 4.2 Módulos y proyectos. UNIDAD 5. INTRODUCCION A FORTRAN 5.1 Manejo de archivos de datos. Apertura, escritura, lectura de un archivo de datos. 5.2 Uso de archivos y procedimientos o funciones en torno a la solución de problemas complejos. 2 UNIDAD 6. INTRODUCCION A C Y C++ 6.1 Manejo de archivos de datos. Apertura, escritura, lectura de un archivo de datos. 6.2 Uso de archivos y procedimientos o funciones en torno a la solución de problemas complejos. UNIDAD 7. INTRODUCCION A OOP 7.1 Clases y objetos. 7.2 Conceptos de OOP. [ Herencia y agregacion. Polimorsmo, interfaces y mecanismos ] BIBLIOGRAFÍA : G. Brassard y T. Bratley, Fundamentos de Algoritmia, Prentice Hall, México, 1997. B. W. Kernighan, P. J. Plauger, The Elements of Programming Style, McGraw-Hill, 1978. T. E. Hull, D. D. Day, An Introduction to Programming and Applications with Fortran, Addison-Wesley, 1979. A. B. Downey, How to think like a computer scientist [versión para C++], Notas en internet. Harley R. Myler, Fundamentals of Engineering Programming with C and FORTRAN, Cambridge University Press, 1998. G. Du Mortier, Técnicas de Programación, MP Ediciones (Serie USERS.code), 2005. A. I. Forsythe et.al., Computer Science: A First Course, Wiley and Sons INTERNET!!! 3