Objetivos:
El objetivo del curso es el de formar al alumno en profundidad sobre la programación en el lenguaje C. Su interés radica en su uso como herramienta de programación en ciencia computacional y de la computación de altas prestaciones, tanto en lo que respecta a su uso en aplicaciones y bibliotecas científicas y de ingeniería, como a su elección como lenguaje base para lenguajes de programación paralela como MPI y OpenMP. Se hará, por tanto, especial hincapié en los aspectos del lenguaje más relevantes para su uso en el ámbito de la computación de altas prestaciones. a orientación del curso es eminentemente práctica, por lo que se irán proponiendo ejercicios a los alumnos a medida que se vayan explicando los diferentes conceptos. Así mismo, se intercalarán laboratorios prácticos más extensos al final de algunas lecciones.
Temario:
1. Introducción:
- Qué es y cómo funciona ANSI C.
- Evolución histórica de C.
- Estructura básica de un programa en C.
- Entornos de compilación y ejecución en Linux. icc y gcc.
- Portabilidad del código
2. Declaraciones y expresiones:
- Tipos de datos y variables.
- Ámbito y visibilidad de las variables.
- Constantes.
- Operadores y expresiones.
3. Sentencias básicas en C:
- Sentencias condicionales.
- Sentencias de control de flujo.
4. Punteros y arrays:
- Concepto de puntero y array.
- Inicialización y acceso.
- Arrays multidimensionales.
- Relación entre punteros y arrays.
- Gestión dinámica de memoria.
5. Funciones:
- Estructura de una función.
- Argumentos y valor de retorno.
- La función main().
- Funciones de manejo de caracteres.
- Punteros a funciones.
6. Tipos avanzados:
- Estructuras.
- Uniones.
- Typedef.
- Casting.
7. Uso de librerías y códigos objeto externos:
- Invocación de funciones en ficheros externos.
- Librerías estándar en C.
- Invocación de funciones en otras librerías.
- Creación de una librería propia.
8. El preprocesador de C:
- Sustitución de strings.
- Inclusión de ficheros fuente.
- Macros.
9. Entrada/salida:
- Lectura y escritura por entrada/salida estándar.
- Lectura y escritura de ficheros.
10. Cálculo científico en C:
- Precisión y estabilidad.
- Minimización de errores en punto flotante.
- Ejemplos de códigos numéricos en C.
Dirigido a:
- Investigadores y docentes que desarrollan aplicaciones científicas.
- Personal técnico de apoyo a la optimización de aplicaciones científicas.
Prerrequisitos:
Conocimientos básicos de programación en C.
Plazas limitadas (3 personas).
Inscripción hasta el 15 de Junio de 2009.
|