jueves, mayo 2, 2024
Curricula Licenciatura

Programación

Requisitos de la materia: Álgebra Lineal.

Descripción de la asignatura: Se presenta el arte de la programación, aplicando fundamentos y desarrollo de algoritmos implementados principalmente en Fortran y que puedan ser aplicados a otros lenguajes de programación científica, tal como Python y C/C++. Durante el curso se deben incluir módulos que permitan al estudiante visualizar y graficar datos, también como los fundamentos básicos de
la programación en paralelo.

Índice Temático:

  1. Introducción a Linux y a la línea de comandos: Descripción general de linux y el uso de una terminal con instrucciones para la manipulación de archivos y directorios.
  2. Conceptos y características de algoritmos: diseño del algoritmo, pseudocódigo, diagramas de flujo y estructura general de un programa.
  3. Tipo de datos: String, Character, enteros, punto flotante (float, complejos). Operaciones con datos de diferentes tipos. Además identificar que operaciones son permitidas con los diferentes tipos de datos y evaluar sus resultados.
  4. Asignación y variables: Manipulación de datos del mismo y diferente tipo. Entrada y salida: Lectura e impresión en dispositivo estándar. Lectura e impresión a archivos con y sin formato.
  5. Decisiones/condicionales y Ciclos: Manejo de sumatorias, productos, funciones, juegos de azar (generación y aplicación de números aleatorios).
  6. Arreglos: Manejo de diferentes estructuras de datos y su manipulación. (Sorting and searching).
  7. Aritmética de punto flotante: Representación de números en lenguaje maquina. Ejemplos relacionados con el manejo de la precisión.
  8. Funciones y subrutinas: Manejo de subprogramas internas y externos generados por el estudiante Uso y manejo de librerías (IMSL, LAPACK, Numerical Recipes, etc.).
  9. Visualización y graficado.
  10. Programación en paralelo: Conceptos básicos de programación en paralelo mediante ejemplos sencillos que usen paquetería de MPICH y/o similares.

Bibliografía básica:

  1. Luis Joyanes Aguilar, Fundamentos de programación: Algoritmos, estructura de datos y objetos. (McGraw-Hill, España, 2008), 4a ed.
  2. Ian Chivers and Jane Sleightholme, Introduction to Programming with Fortran: With coverage of Fortran 90, 95, 2003 and 77. (Springer, United States of America, 2006).
  3. Michael Mecalf, John Reid, and Malcom Cohen, Modern fortran explained. (Oxford University Press, New York, 2011).

Bibliografía complementaria:

  1. Stephen J. Chapman, “Fortran 95/2003 for Scientists and Engineers 3ed”, McGrawll-Hill 2007.
  2. Jane Sleightholme, “Introduction to Programming with Fortran”, Springer 2006.
  3. Hans Petter Langtangen, “ A primer on Scientific Programming with Python”, Springer 2009.

Planeación educacional
Competencias a desarrollar

  • Capacidad de abstracción, análisis y síntesis
  • Capacidad de aprender y actualizarse permanentemente
  • Habilidad para trabajar en forma autónoma
  • Utilizar y elaborar programas o sistemas de computación para el procesamiento de información, cálculo numérico, simulación de procesos físicos o control de experimentos
  • Buscar, interpretar y utilizar literatura científica
Resultados del aprendizajeActividades educacionalesTETEHEvaluación
Introducción a Linux y líneas de comando.
Conceptos y características de algoritmos.
Tipos de datos.
Asignación y variables.
Teóricas, prácticas: (15T+15P)
Autoestudio: 20
30
20
Examen escrito, programas
Entrada y salida.
Decisiones/condicionales y Ciclos.
Arreglos.
Aritmética de punto flotante.
Teóricas prácticas: (10T+20P)
Autoestudio: 20
30
20
Examen escrito, programas
Funciones y subrutinas.
Visualización y graficado.
Programación en paralelo.
Teóricas prácticas: (10T+20P)
Autoestudio: 30
30
30
Examen escrito, programas

Tiempo total de trabajo del estudiante: 90 horas presenciales + 60 horas de autoestudio = 160 horas.
Número de créditos: 10