Ir a la página de inicio de colimbo.net
Página de inicio > Fundamentos de Programación I
Mapa |

Fundamentos de Programación I

Programa de la asignatura

Programa de la asignatura | Descargar programa de la asignatura en formato PDF

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

I. OBJETIVOS

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:

  • Conocer los elementos principales utilizados en el diseño de algoritmos.
  • Conocer los fundamentos de la programación estructurada.
  • Dominar las técnicas de programación modular.
  • Utilizar las estructuras de datos fundamentales.

II. PRERREQUISITOS

La asignatura no requiere conocimientos previos.

III. CONTENIDO

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

IV. MÉTODOS DOCENTES

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.

V. EVALUACIÓN

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.

Modelo de examen

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

Valid HTML 4.01 Transitional | Valid CSS!