Usted está aquí: Inicio web asignaturas

Fichas de asignaturas 2006-07


  CÓDIGO NOMBRE
Asignatura 1711020 INTRODUCCIÓN A LA PROGRAMACIÓN
Titulación 1711 INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS
Departamento C137 LENGUAJES Y SISTEMAS INFORMATICOS
Curso 1  
Duración (A: Anual, 1Q/2Q) 1Q  
Créditos ECTS 6  

Créditos Teóricos 3 Créditos Prácticos 4,5 Tipo Obligatoria

 

Profesorado
Bolívar Pérez, Miguel Ángel
García Horcajadas, Mª Teresa
Hurtado Rodríguez, Nuria
Nuñez Moraleda, Bernardo
Periañez Gómez, Francisco
Taín Varela, Herminia
Yráyzoz Díaz de Liaño,Eloísa (Coordinadora)
Objetivos
# Proporcionar una importante base teórica y práctica en el aprendizaje de la
Programación de Ordenadores. Fundamentando el diseño de algoritmos en una
adecuada metodología y orientando la realización de programas hacia el
cumplimiento de los objetivos fundamentales de la programación como son
corrección, claridad, y eficiencia.

# Introducir al alumno en el diseño,  codificación y documentación de
programas, utilizando una correcta metodología y estilo basados en el uso de
la programación estructurada, la abstracción operacional y la recursividad.

# Introducir al alumno en el conocimiento del lenguaje de programación C de
manera que sea capaz de implementar en dicho lenguaje los algoritmos diseñados
previamente y de este modo completar adecuadamente el proceso de desarrollo de
programas.
Programa
Temario de Teoría

Tema 1.Introducción (2 horas)

1.1.- Conceptos básicos y definiciones
1.2.- Programación de Ordenadores y Lenguajes de Programación
1.2.2.- La Programación de Ordenadores
1.2.2.- Objetivos de la Programación
1.2.3.- Clasificación de los Lenguajes de Programación
1.3.- Traductores: compiladores e Intérpretes
1.4.- Paradigmas de Programación

Tema 2.Problemas, Algoritmos y Programas. (4 horas)

2.1.- Algoritmos.
2.1.1.-Concepto de Algoritmo.
2.1.2.-Ejemplos de diseño de un algoritmo.
2.2.- Proceso de creación de un programa.
2.2.1.-Planteamiento y análisis del Problema.
2.2.2.-Diseño de un algoritmo. Comprobación y optimización del Algoritmo.
2.2.3.-Implementación del Programa.
2.2.4.-Ejecución y depuración del Programa.
2.3.- Datos y tipos de datos.
2.3.1.-Datos de tipo numérico.
2.3.2.-Datos de tipo lógico.
2.3.3.-Datos de tipo carácter y cadena.
2.4.- Variables y expresiones.
2.4.1.-Constantes y variables.
2.4.2.-La operación de asignación.
2.4.3.-Evaluación de expresiones. Precedencia de operadores.
2.4.4.-Entrada y salida básicas.
2.5.- Descripción de Algoritmos.
2.5.1.-Lenguaje Natural.
2.5.2.-Pseudócodigo.
2.5.3.-Diagrama de flujo.

Tema 3.Programación estructurada.  (4 horas)

3.1.- Características de la Programación Estructurada.
3.2.- Estructura Secuencial.
3.3.- Estructura Selectiva.
3.3.1.-Simple.
3.3.2.-Doble.
3.3.3.-Múltiple.
3.4.- Estructuras Repetitivas.
3.4.1.-Mientras.
3.4.2.-Repetir hasta que.
3.4.3.-Desde.
3.5.- Estructuras anidadas.


Tema 4.Abstracción Operacional. (6 horas)

4.1.- Descomposición de problemas y abstracción.
4.1.1.-Diseño descendente y refinamientos sucesivos.
4.1.2.-Concepto de abstracción operacional.
4.2.- Subalgoritmos.
4.2.1.-Funciones.
4.2.2.-Procedimientos
4.3.- Ámbito y persistencia de las variables.
4.4.- Correspondencia entre argumento y parámetro formal.
4.4.1.-Paso por  valor y por referencia.
4.4.2.-Efectos laterales.
4.5.- Funciones y procedimientos como parámetros.

Tema 5.Recursividad. (6 horas)

5.1.- Introducción.
5.2.- Concepto de recursión a través de la inducción matemática
5.3.- La recursividad.
5.4.- Tipos de recursividad
5.4.1.-Recursividad lineal
5.4.2.-Recursividad múltiple
5.5.- Procedimientos y procesos.Iteración y recursión

Tema 6.Tipos de datos. (8 horas)

6.1.- Tipos de datos estructurados.
6.2.- Vectores y matrices.
6.2.1.-Vectores. Matrices unidimensionales.
6.2.2.-Matrices multidimensionales.
6.3.- Cadenas de caracteres.
6.3.1.-Definición de cadenas de caracteres.
6.3.2.-Operaciones con cadenas.
6.4.- Registros.
6.5.- Archivos.
6.6.- Tipos enumerados y subrango.

TEMARIO DE PRÁCTICAS

Tema 1.Fundamentos del Lenguaje C. ( 6 horas)

1.1.- Introducción al entorno de programación.
1.2.- Introducción al lenguaje.
1.3.- Estructura general de un programa en C.
1.4.- Datos y tipos de datos.
1.5.- Operaciones básicas y expresiones.
1.6.- Entrada y salida básicas.

Tema 2.Estructuras Selectivas y Repetitivas. (9 horas)

2.1.- Estructuras selectivas.
2.1.1.-Estructura if.
2.1.2.-Estructura if else.
2.1.3.-Estructura switch.
2.2.- Estructuras repetitivas.
2.2.1.-El bucle while.
2.2.2.-El bucle do while.
2.2.3.-El bucle for.
2.2.4.-Bucles anidados.
2.2.5.-Sentencias break y continue
2.3.- Herramientas de depuración de programas


Tema 3.Definición de funciones en C. (12 horas)

3.1.- Declaración, definición y uso de funciones.
3.2.- Paso de parámetros.
3.2.1.-Concepto de puntero
3.2.2.-Operadores de dirección e indirección
3.3.- Ámbito y persistencia de variables
3.4.- Macros
3.5.- Punteros a funciones
3.6.- Argumentos del programa
3.7.- Estilo de programación.

Tema 4.Recursividad. (3 horas)

4.1.- Funciones recursivas.
4.2.- Recursividad lineal y múltiple.

Tema 5.Tipos de datos.  (15 horas)

5.1.- Funciones de manejo de memoria dinámica.
5.2.- Vectores.
5.2.1.-Definición y acceso a los elementos.
5.2.2.-Paso cómo parámetro a una función.
5.2.3.-Aritmética de punteros.
5.3.- Matrices.
5.3.1.-Definición y acceso a los elementos.
5.3.2.-Paso cómo parámetro a una función.
5.4.- Cadenas de caracteres.
5.4.1.-Definición y acceso a los elementos.
5.4.2.-Funciones de manejo de cadenas de caracteres.
5.5.- Estructuras y uniones.
5.5.1.-Definición y acceso a los elementos.
5.5.2.-Paso cómo parámetro a una función.
5.6.- Tipos enumerados.
5.7.- Cláusula typedef.
Metodología
En las clases teóricas  se impartirán conceptos fundamentales de programación
estructurada tratando de resaltar los aspectos globales del desarrollo de
algoritmos con independencia de cómo éstos se implementen en un lenguaje de
programación concreto. Por este motivo, los ejemplos que se utilizarán para
ilustrar los conceptos teóricos en la pizarra se desarrollarán en pseudocódigo.

En las clases prácticas se enseñará el lenguaje de programación C resaltando
sus aspectos particulares. En las sesiones de prácticas se diseñarán,
codificarán y desarrollarán sobre el ordenador programas escritos en el
lenguaje de programación C que resuelvan ejercicios de programación propuestos.
Criterios y Sistemas de Evaluación
Se realizarán los correspondientes exámenes finales escritos en  las
convocatorias oficiales publicadas por el centro. La nota final de la asignatura
será la que se obtenga en dicha prueba. El examen constará de una parte teórica y
una parte práctica, equivalentes al 40% y 60% de la nota final respectivamente.
La nota final se obtendrá como suma de las notas de ambas partes, siendo
necesario para aprobar la asignatura obtener una puntuación mínima de 1,5 puntos
sobre 4 en la parte teórica y 2,5 puntos sobre 6 en la práctica y que la suma de
ambas notas sea igual o superior a 5 puntos.
Recursos Bibliográficos
[Abur98]  Aburruzaga García, G.; Medina Bulo, I.; Palomo Lozano, F.; Por fin:
C ISO; Servicio de Publicaciones. Universidad de Cádiz, 1998.

[Balc93]  Balcázar, J.; Programación Metódica; McGraw-Hill, 1993.

[Cast93]  Castro, J.; F. Cucker y X. Messeguer, "Curso de
programación", Mc
Graw-Hill, 1993.

[Cerr93]  Cerrada, J. A.; Collado, M.; Programación I; UNED 1993.

[Deit94]  Deitel,H.M.; Como programar en C/C++; Prentice-Hall,1994.

[Garc02]  García, F.; Carretero, J.; Fernández, J.; Calderón, A.; El lenguaje
de programación C; Prentice Hall, 2002.

[Hurt02]  Hurtado, N.; Laguía, M.; Silva, E.L.; Introducción a la
Programación; Servicio de Publicaciones. Universidad de Cádiz, 2002.

[Joya96]  Joyanes, L.; Fundamentos de programación; McGraw-Hill, 1996.

[Kell92]  Kelley, A.; Pohl, I.; C by Dissection: The Essentials of C
programming; 2ª Edición, Benjamin/Cummings, 1992.

[Kell98]  Kelley, A.; Pohl, I.; A book on C. Programming in C; 4ª Edición,
Addison-Wesley, 1998.

[Kern91]  Kernighan, B.W.; Ritchie, D.M.; El lenguaje de programación C; 2ª
Ed., Prentice-Hall, 1991.

[Kern00]  Kernighan, B. W.; Pike, R.; La  práctica de la programación;
Prentice Hall, 2000.

[Peña97]  Peña Marí, R.; Diseño de programas. Formalismo y abstracción;
Prentice Hall 1997.

[Prie01]  Prieto, A.; Lloris, A.; Torres, J.C.; Introducción a la informática;
McGraw-Hill, 2001, 3ª Edición.

[Schi95]  Schield, H.; Turbo C y C++ 3.1 : Manual de Referencia, Ed.
Osborne/McGraw Hill 1995.

[Tond89]  Tondo, C.L.; Gimpel, S.E.; The C Answer Book; Prentice-Hall, 1989,
2ª edición.

El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente.