CURSO ACADÉMICO: 2006-2007
PLAN DE ESTUDIOS: 2002
CÓDIGO: 106
TITULACIÓN: Ingeniería Informática
CRÉDITOS: 6
CARÁCTER: Cuatrimestral (Primer cuatrimestre)
CURSO: 1º
TIPO: Obligatoria
El objetivo principal de la asignatura es familiarizar al alumno con el diseño de algoritmos para la resolución de problemas por computadora basándose en el paradigma de la programación estructurada y utilizando un lenguaje de especificación de algoritmos.
Sus objetivos específicos serían:
La asignatura no requiere conocimientos previos.
TEMA 1. COMPUTADORAS Y LENGUAJES DE PROGRAMACIÓN
1.1. Organización de un ordenador
1.1.1. El hardware
El procesador
Los dispositivos de entrada y salida
Memoria central
Almacenamiento secundario
1.1.2. El software
1.2. Los lenguajes de programación
1.2.1. Clasificación de los lenguajes de programación
Clasificación según su grado de abstracción
Clasificación según la generación a la que pertenecen
Clasificación según el paradigma utilizado
1.2.2. Traductores del lenguaje: intérpretes y compiladores
Interpretes
Compiladores
Ventajas e inconvenientes
TEMA 2. RESOLUCIÓN DE PROBLEMAS CON COMPUTADORA Y HERRAMIENTAS DE PROGRAMACIÓN
2.1. Fases en la resolución de problemas
2.1.1. Análisis del problema
2.1.2. Diseño del algoritmo
Programación modular
Programación estructurada
2.1.3 Implementación
2.2. Concepto y características de los algoritmos
2.2.1. Características de los algoritmos
2.2.2. Descripción de algoritmos: herramientas de programación
Diagramas de flujo
Diagramas Nassi-Schneiderman
Pseudocódigo
TEMA 3. ESTRUCTURA GENERAL DE UN PROGRAMA
3.1. Datos y tipos de datos
3.1.1. Tipos de datos
Clasificación de los tipos de datos
Datos simples
Datos estructurados
3.1.2. Constantes y variables
Variables
3.2. Expresiones
3.2.1. Expresiones aritméticas
Valor devuelto por las expresiones aritméticas
3.2.2. Expresiones lógicas
3.2.3. Expresiones de cadena
3.2.4 Prioridad de los operadores
3.3. Instrucciones
3.3.1. Instrucción de asignación
3.3.2. Instrucciones de entrada y salida
3.3.3. Instrucciones de control
3.4. Estructura de un algoritmo
3.4.1. Elementos de un algoritmo
Palabras reservadas
Identificadores
Comentarios
Declaraciones
TEMA 4. ESTRUCTURAS DE CONTROL
4.1. Flujo de control de un programa
4.2. Estructura secuencial
4.3. Estructuras selectivas
4.3.1. Selectiva simple
4.3.2. Selectiva doble
4.3.3. Selectiva múltiple
4.4. Estructuras repetitivas
4.4.1. Estructura repetir
Bucles controlados por un contador
4.4.2. Estructura mientras
Bucles controlados por centinela
4.4.3. Estructura desde
4.5. Otras estructuras de control
4.5.1. Sentencias de salto
TEMA 5. PROGRAMACIÓN MODULAR: PROCEDIMIENTOS Y FUNCIONES
5.1. Introducción a la programación modular
5.1.1. Criterios de descomposición modular
5.1.2. Llamadas a los módulos
5.1.3. Tipos de subprogramas
5.2. Funciones
5.2.1. Funciones predefinidas
5.2.2. Declaración de funciones
5.2.3. Llamadas a las funciones
5.3. Procedimientos
5.3.1. Declaración de procedimientos
5.3.2. Llamadas a los procedimientos
5.4. Visibilidad de las variables
5.5. Intercambio de información: paso de parámetros
5.5.1. Paso por valor
5.5.2. Paso por referencia
5.5.3. Efectos laterales
TEMA 6. ESTRUCTURAS DE DATOS: ARRAYS Y REGISTROS
6.1. Introducción a las estructuras de datos
6.2. Arrays
6.2.1. Arrays unidimensionales: vectores
Declaración de variables de tipo vector
Referencia a los elementos de un vector
Acceso secuencial al vector (recorrido)
Declaración de tipos de datos de tipo vector
Utilización de vectores en subprogramas
Actualización de un vector
6.2.1. Arrays de dos dimensiones: matrices o tablas
6.2.2. Arrays multidimensionales
6.3. Registros
6.3.2. Referencia a los componentes de un registro
6.3.3. Arrays de registros
TEMA 7. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA
7.1. Ordenación interna
7.1.1. Ordenación por intercambio directo ("burbuja")
7.1.2. Ordenación por inserción directa y por inserción binaria
7.1.3. Ordenación por selección directa
7.1.4. Método de inserción por incrementos decrecientes (Shell)
7.2. Búsqueda
7.2.1. Búsqueda secuencial
7.2.2. Búsqueda binaria o dicotómica
7.2.3. Búsqueda por transformación de claves (hash)
Métodos de transformación de claves
Técnicas de tratamiento de colisiones
7.3. Intercalación
TEMA 8. CADENAS DE CARACTERES
8.1. Datos alfanuméricos
8.1.1. El El juego de caracteres
El juego de caracteres ASCII
El juego de caracteres EBCDIC
El juego de caracteres Unicode
8.2. Cadenas de caracteres
8.2.1. Variables de cadena
8.2.2. Operaciones con cadenas
8.2.3. Operaciones de relación con cadenas
8.2.4. Concatenación
8.3. Funciones de cadena
8.3.1. La función longitud()
8.3.2. La función posición()
8.3.3. La función subcadena()
8.3.4. Otras funciones de cadena
Insertar
Borrar
Cambiar
8.3.5. Funciones de conversión
La asignatura se impartirá mediante sesiones en el aula de teoría. Las sesiones se compondrán de explicaciones teóricas de los conceptos de la asignatura acompañadas del desarrollo práctico de algoritmos tanto resueltos por el profesor como realizados por los alumnos.
La nota final de la asignatura en la convocatoria se calculará mediante la evaluación del trabajo realizado por el alumno durante el periodo lectivo de la asignatura y la obtenida en el examen de la convocatoria de Febrero (véanse las Normas Académicas de la Asignatura en documento aparte). En caso de suspender la convocatoria ordinaria de febrero, el alumno deberá realizar el examen correspondiente en la convocatoria de septiembre.
El examen constará de dos partes: una parte teórico-práctica con preguntas teóricas y pequeños ejercicios relacionados y una parte práctica en la que el alumno deberá resolver con un lenguaje algorítmico algún supuesto de programación. El peso para cada una de las partes sería de un 45-50% para las preguntas teórico-prácticas y de un 50-55% para el supuesto práctico.
Última actualización: Viernes, 14 Marzo, 2008 20:11