Herramientas Personales
Usted está aquí: Inicio materias Computación Computación - Programa

Computación - Programa

 

Unidad 1. Introducción a la programación (Octave/Matlab).

1.1. Algoritmos, programas y lenguajes. Datos e instrucciones.

1.2. El intérprete Octave/Matlab. Expresiones aritméticas. Variables escalares, matriciales y alfanuméricas. Algunas funciones para manipulación de vectores y matrices. Polinomios. Definición de funciones mediante la construcción de funciones anónimas. Gráficas simples de funciones. Programas. Entrada y salida por consola.

1.3. Estructuras de control: secuencia, decisión, iteración. Instrucciones if, while, for. Funciones. Entrada y salida a disco: fopen, fprintf, fclose. Gráficas de datos discretos. Ajuste de datos: polyfit. 

Unidad 2. Representación de la información en sistemas digitales.

2.1. El bit. Almacenamiento de la información como colección de bits. Bytes, palabras y sus múltiplos.
2.2. Representaciones de números enteros. Bases para representación de números enteros positivos: números decimales, binarios, octales y hexadecimales. Enteros negativos: representación con signo y magnitud, inconvenientes. Representaciones en complemento a la base y complemento a la base reducida. Complemento a 2 y complemento a 1. Representación sesgada.
2.3. Representaciones de números reales. Representación de punto fijo. Representación de punto flotante: signo, exponente y mantisa. El standard IEEE 754. Aritmética en punto flotante, excepciones, Inf y NaN. Errores en la representación: error absoluto y relativo. Redondeo y truncamiento.
2.4. Representación de textos. Códigos de caracteres: BCD, ASCII, Unicode. Texto con formato: representación sobre texto ASCII o Unicode con \markup" (RTF, HTML, LaTeX) o binaria. Archivos de texto vs. binarios.
2.5. Representación de imágenes, sonido y video. Representación matemática de imágenes. Representación del color. Discretización: pixels y profundidad de color.
Digitalizacion del sonido. Video. 

Unidad 3. Elementos de arquitectura y organización de computadoras.

3.1. Expresiones lógicas y álgebra de Boole. Circuitos digitales. Puertas lógicas. Definición circuitos combinacionales y secuenciales.
3.2. La unidad central de procesamiento (CPU). ALU, registros, control y buses.

3.3. El sistema operativo. Funciones del sistema operativo.
Entrada/salida y control de periféricos.
3.4. Lenguaje ensamblador. La traducción o compilación. División de un programa e ejecutable en módulos. Lenguajes de alto nivel.

Unidad 4. Programación en lenguaje C.

4.1. Introducción. Un primer programa. Proceso de compilación (programa fuente, programa objeto, bibliotecas, ejecutable). La función main() y entrada/salida elemental por consola. Argumentos de la línea de comando. Constantes y variables. Tipos de datos. Definición de variables. Arreglos. Funciones. La biblioteca standard y la biblioteca matemática.
4.2. Expresiones. Operadores aritméticos y asignación. Comparaciones y expresiones lógicas. Conversión de tipos. Estructuras de control: if else, switch, while, do, for. Interrupción de lazos y saltos: continue, break, goto.
4.3. Entrada/salida a archivos (fopen, fclose, fprintf, fscanf, fgetc, fputc, fgets). Entrada/salida sin formato (fread y fwrite). Tipo de datos struct (estructuras), typedef y union.
4.4. Declaración vs. definición de funciones: prototipos. Alcance o ámbito (scope) de variables. Variables globales. Módulos: funciones y variables externas. Símbolos públicos y privados: static. Variables automáticas y estáticas. Argumentos de funciones: noción de pasaje por valor y por referencia. Recursión.
4.5. Punteros. Punteros y arreglos. Cadenas de caracteres como arreglos de char. Algunas funciones para manipular cadenas. Asignación dinámica de memoria. Punteros a struct.

Unidad 5. Introducción al cálculo numérico.

5.1. Errores numéricos: errores de representación y de discretización. Propagación de errores.
5.2. Métodos básicos de aproximación de funciones. Polinomios. Evaluación numérica de polinomios. Interpolación. Polinomio de Lagrange.
5.3. Ajuste de funciones. Ajuste por mínimos cuadrados como ajuste de máxima verosimilitud. Ajuste a una recta, a una función lineal en los parámetros y general.
5.4. Derivación numérica: diferencias finitas, interpolación.
5.5. Resolución de ecuaciones. Ecuaciones algebraicas de segundo y tercer grado. Raíces de polinomios.
Raíces de funciones continuas: metodos de bisección. Funciones derivables: método de Newton-Raphson. Sistemas de ecuaciones lineales. 

Unidad 6. Introducción a la simulación numérica.

6.1. El concepto de simulación. La simulación numérica. Ejemplos.
6.2. Procesos estocásticos. El movimiento Browniano.
Cálculo de valores medios e histogramas. 

 

Bibliografía

 

John W. Eaton, David Bateman y Soren Hauberg, GNU Octave manual version 3, Network Theory Ltd., 3 edition (2008).


Rafael C. González, Richard E. Woods y Steven L. Eddins, Digital image processing using Matlab, Gatesmark publishing (2009).

 

Guillem Borrelli Nogueras, Introducción informal a Matlab y Octave, http://webserver.dmt.upm.es/media/les/cursomo.pdf (2008).

 

Brian W. Kernighan y Dennis M. Ritchie, El lenguaje de programación C, Prentice-Hall Hispanoamericana, Mexico, 2 edition (1991).

 

Linda Null y Julia Lobur, Essentials of computer organization and architecture, Jones and Bartlett, Sudbury, USA (2003).

 

Página web, C programming web tutorial, http://www2.its.strath.ac.uk/courses/c/tableofcontents3 1.html (2013).

 

Sergio Sciutto, Apunte de cátedra, inédito (2010).

 William Stallings, Computer organization and architecture, Prentice Hall, New Jersey (2003).

Andrew S. Tanenbaum, Structured computer organization, Pearson Prentice Hall, 5 edition (2006).

Acciones de Documento