Extension C
Programación Científica en C
En este curso se darán las herramientas básicas de manejo del lenguaje de programación que mas a sido usado por el mundo de la ciencias de la computación, además de una enseñanza acerca del manejo de los principales paquetes que han sido desarrollados para dicho lenguaje por la comunidad libre a nivel mundial.
Curso de Programación científica en C:
Horario: Sábados 8-12 am
Aula: Sala de cómputo del bloque 5
Fecha de inicio: Febrero 26 de 2011
Fecha de finalización: Junio 11 de 2011
Contacto:
Requisitos: Programación básica
Costo: 200.000
Mínimo de inscripciones: 9
Máximo: 20
Telefonos:219-5660/5661
Programa:
- Linux
- Instalación
- Instalación y configuración de paquetes
- Bash (uso basico de la linea de comandos)
- Comandos básicos
- variables de ambiente
- llamado al compilador
- Introducción al lenguaje C
- Origenes de C
- C como lenguaje de nivel medio
- C como Lenguaje estructurado
- Compiladores frente a intérpretes
- La forma de un programa en C
- Repaso de Términos
- Variables, constantes, operadores y expresiones
- Nombres de identificadores
- Tipos de datos
- Declaración de variables
- Variables locales
- Especificadores de clase de almacenamiento
- sentencias de asignación
- Constantes
- Operadores
- Expresiones
- Sentencias de control de programa
- Los valores true y false
- Las sentencias de c
- Sentencias condicionales
- if
- switch
- else
- bucles
- for
- while
- do while
- break
- continue
- goto y etiquetas
- Funciones
- La sentencia return
- Reglas de ámbito
- Los argumentos de las funciones
- Funciones que devuelven valores
- Recursividad
- Arrays
- Arrays unidimencionales
- Arrays bidimensionales
- Arrays multidimencionales
- Arrays y Punteros
- Arrays asignados dinamicamente
- Inicialización de arrays
- Punteros
- Variables Puntero
- Los operadores de punteros
- Expresiones de punteros
- Funciones de asignación dinámica en c
- Punteros y arrays
- Punteros a Punteros
- Inicialización de punteros
- Punteros a funciones
- Problemas con punteros
- Estructuras y variables definidas por el usuario
- Estructuras
- Arrays de estructuras
- Paso de estructuras a funciones
- Punteros a estructuras
- enumeraciones
- operadores typedef y sizeof
- Entrada y salida de archivos en disco
- E/S por consola
- E/S por console con formato
- El sistema de archivos con buffer
- El sistema de archivos sin buffer
- El preprocesador de C
- # define
- # error
- # include
- Directivas de compilacion
- # undef
- # line
- # pragma
- Macronombres predefinidos
- Compilación y enlazado
- El proceso de compilación
- Creación de librerías estáticas y dinamicas
- El enlazador
- Makefiles
- Librerías básicas de c
- stdio.h
- stdlib.h
- math.h
- Gnu Scientific Library
- Compilación e instalación
- Compilación y enlazado de nuestros programas con gsl
- Estructura de un programa en gsl
- Funciones matemáticas básicas
- Entendiendo los errores lanzados
- Vectores y Matrices
- Generación de números aleatorios
- Derivación
- Integración
- Interpolación
Planeación semanal del curso (16 semanas, 4 horas de clase por semana)
Semana 1: Introducción a Linux
Semana 2: Bash
Semana 3: Introducción al lenguaje C
Semana 4: Variables, constantes, operadores y expresiones
Semana 5: Sentencias de control de programa
Semana 6: Funciones
Semana 7: Arrays
Semana 8: Punteros
Semana 9: Estructuras y variables definidas por el usuario
Semana 10: Entrada y salida de archivos en disco
Semana 11: El preprocesador de C
Semana 12: Compilación y enlazado
Semana 13: Librerías básicas de c
Semana 14: Gnu Scientific Library
Semana 15: Clase para ejercicios
Semana 16: Semana Flexible
Justificación:
Ayudar a las personas del ambito de programación cientifica a aprender bien c como lenguaje cientifico.
Promover el uso y desarrollo de software libre, como un camino al desarrollo cinetífico y computacional.
Formar estudiantes en los conceptos y métodos básicos de la programación científica.
Formar estudiantes con conocimientos científicos en programación de nivel intermedio con sistemas linux.
Objetivos:
Al finalizar el curso los estudiantes deben estar en capacidad de
Adquirir algún sistema operativo basado en Linux.
Instalar algún sistema operativo basado en Linux.
Hacer mantenimiento de algún sistema operativo basado en Linux.
Manejar las aplicaciones o software básico de Ubuntu.
Conocer los comandos básicos del uso de la consola.
Explicar los conceptos y metodologías básicas de la programación científica
Manejar los compiladores de la Gnu (Gcc) para Compilar e instalar software escrito en C
Escribir Makefiles para la automatización de compilación
Saber administrar librerías y paquetes C
Escribir código en C para procesamiento numérico
Conocer las ventajas de C con respecto a otros lenguajes de programación científicos.
Metodología:
El curso se desarrollará através de la clase magistral, las demostraciones en vivo y talleres acompañados por el profesor, esto aprovechando que se desarrollará en una sala de cómputo de la facultad. Al ser un curso presencial y de programación, requiere alrededor de 4 o 6 horas adicionales a las presenciales dedicadas a lectura de documentos, desarrollo de tutoriales, estudio de los temas vistos y elaboración de tareas.
Referencias:
C manual de referencia de Herbert Schildt
http://www.gnu.org/software/gsl/manual/html_node/
Presentaciones del Curso
Intro
Linux
Bash
IntroC Ejemplos
CursoC_I
CursoC_II Ejemplos
Arrays
Punteros
Estructuras
Archivos Ejemplos
Compilación Enlazado
Gsl