Usted está aquí: Inicio web asignaturas

 

Fichas de asignaturas 2011-12


INTRODUCCIÓN A LA PROGRAMACIÓN

Asignaturas
 

  Código Nombre    
Asignatura 1711020 INTRODUCCIÓN A LA PROGRAMACIÓN Créditos Teóricos 3
Descriptor   INTRODUCTION TO PROGRAMMING Créditos Prácticos 4,5
Titulación 1711 INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Tipo Obligatoria
Departamento C137 LENGUAJES Y SISTEMAS INFORMATICOS    
Curso 1      
Créditos ECTS 6      

Para el curso Créditos superados frente a presentados Créditos superados frente a matriculados
2007-08 40.4% 28.4%

 

 

Pulse aquí si desea visionar el fichero referente al cronograma sobre el número de horas de los estudiantes.

Profesorado

Hurtado Rodríguez, Nuria
Yráyzoz Díaz de Liaño,Eloísa (Coordinadora)

Situación

Prerrequisitos

Conocimientos básicos de informática a nivel de usuario

Contexto dentro de la titulación

La asignatura pertences al primer cuatrimestre del primer
curso de la
titulación. En ella se proporcionan al alumno las bases de la
programación
estructurada y del lenguaje de programación C y por tanto se
considera
fundamental para el resto de las asignaturas de programación de
la titulación.

Recomendaciones

Sería recomendable que el alumno dispusiera de un ordenador
personal donde
instalar el compilador de C utilizado en las prácticas, así como
conexión a
Internet para el uso de las herramientas virtuales, con objeto
de
obtener un mejor aprovechamiento de los contenidos impartidos en
la asignatura.

Competencias

Competencias transversales/genéricas

- Capacidad de análisis y síntesis.
- Comunicación oral y escrita.
- Resolución de problemas.
- Trabajo en equipo.
- Razonamiento crítico.
- Preparación y presentación de documentación.

Competencias específicas

  • Cognitivas(Saber):

    - Conocer y comprender la importancia de los objetivos de la
    programación
    - Conocer los aspectos generales sobre los lenguajes y
    paradigmas de
    programación.
    -Conocer la sintaxis del pseudocódigo utilizado para describir
    algoritmos así como la del lenguaje C.
    - Conocer los pasos para la realización de un programa y sus
    principales componentes (en pseudocódigo y en lenguaje C)
    - Conocer las estructuras de control de la programación
    estructurada
    y las diferencias entre ellas(en pseudocódigo y en lenguaje C)
    - Conocer todos los aspectos relacionados con la realización
    de
    funciones y procedimientos (en pseudocódigo y en lenguaje C)
    - Conocer el concepto de recursividad y sus tipos.
    - Conocer los tipos de datos estructurados estáticos (en
    pseudocódigo y en lenguaje C)
  • Procedimentales/Instrumentales(Saber hacer):

    - A partir del planteamiento de un problema de pequeña-mediana
    envergadura saber realizar el programa para resolverlo
    implicando:
    
    1.- Saber aplicar los pasos adecuados para la realización
    de
    programas.
    2.- Tener en cuenta los objetivos de la programación.
    3.- Saber elegir y utilizar los tipos y estructuras de datos
    adecuadas.
    4.- Saber elegir y utilizar las estructuras de control
    adecuadas.
    5.- Saber realizar la descomposición adecuada e implementar
    las
    funciones y procedimientos necesarios correctamente.
    6.- Utilizar un estilo de programación apropiado
    
    - Ser capaz de realizar el seguimiento de un algoritmo (en
    pseudocódigo) o programa (en lenguaje C),  explicar que
    realiza y
    encontrar posibles errores.
    
    - Ser capaz de resolver pequeños algoritmos y programas tanto
    iterativa como recursivamente.
    
  • Actitudinales:

    Aprendizaje autónomo
    Planificación de las actividades a desarrollar
    Capacidad de abstracción
    Toma de decisión
    Capacidad de iniciativa y participación

Objetivos

OBJETIVOS GENERALES

1.- 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.

2.- 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.

3.- 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.

OBJETIVOS ESPECÍFICOS

- Conocer y comprender la importancia de los objetivos de la
programación
- Conocer los aspectos generales sobre los lenguajes y paradigmas de
programación.
-Conocer la sintaxis del pseudocódigo utilizado para describir
algoritmos así como la del lenguaje C.
- Conocer los pasos para la realización de un programa y sus
principales componentes (en pseudocódigo y en lenguaje C)
- Conocer las estructuras de control de la programación estructurada
y las diferencias entre ellas(en pseudocódigo y en lenguaje C)
- Conocer todos los aspectos relacionados con la realización de
funciones y procedimientos (en pseudocódigo y en lenguaje C)
- Conocer el concepto de recursividad y sus tipos.
- Conocer los tipos de datos estructurados estáticos (en
pseudocódigo y en lenguaje C)

- A partir del planteamiento de un problema de pequeña-mediana
envergadura saber realizar el programa para resolverlo implicando:

1.- Saber aplicar los pasos adecuados para la realización de
programas.
2.- Tener en cuenta los objetivos de la programación.
3.- Saber elegir y utilizar los tipos y estructuras de datos
adecuadas.
4.- Saber elegir y utilizar las estructuras de control adecuadas.
5.- Saber realizar la descomposición adecuada e implementar las
funciones y procedimientos necesarios correctamente.

- Ser capaz de realizar el seguimiento de un algoritmo (en
pseudocódigo) o programa (en lenguaje C),  explicar qué realiza y
encontrar posibles errores.

- Ser capaz de resolver pequeños algoritmos y programas tanto
iterativa como recursivamente.

Programa

Temario de Teoría

Tema 1.Introducción
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.
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.

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.

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.

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.

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.

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.

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.

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.

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

Tema 5.Tipos de datos.

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.

Actividades

La asignatura se oferta sin docencia

Metodología

La asignatura se oferta sin docencia

Distribución de horas de trabajo del alumno/a

Nº de Horas (indicar total):

  • Clases Teóricas:  
  • Clases Prácticas:  
  • Exposiciones y Seminarios:  
  • Tutorías Especializadas (presenciales o virtuales):
    • Colectivas:  
    • Individules:  
  • Realización de Actividades Académicas Dirigidas:
    • Con presencia del profesorado:  
    • Sin presencia del profesorado:  
  • Otro Trabajo Personal Autónomo:
    • Horas de estudio:  
    • Preparación de Trabajo Personal:  
    • ...
      No se incluyen ya que la asignatura se oferta sin docencia.
      Tampoco se incluye cronograma
       
  • Realización de Exámenes:
    • Examen escrito: 1  
    • Exámenes orales (control del Trabajo Personal):  

Criterios y Sistemas de Evaluación

Se realizarán los correspondientes exámenes finales escritos en  las
convocatorias oficiales publicadas por el centro, el examen constará
de una
parte teórica y otra práctica. En la parte teórica se podrán
realizar preguntas
cortas de los aspectos estudiados en clase de teoría así como la
resolución de
problemas en pseudocódigo. La parte práctica constará de preguntas y
problemas
en lenguaje C.
La nota final de la asignatura se compone de una parte teórica
(40%), una parte
práctica (60%) . Las notas de teoría y prácticas serán las que se
obtengan en
el examen final.
La nota final se obtendrá como suma de todas las notas, siendo
necesario
obtener en el examen 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.
Para aprobar la asignatura la suma de todas las notas deberá ser
igual o
superior a 5.

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. En aplicación de la Ley 3/2007, de 22 de marzo, para la igualdad efectiva de mujeres y hombres, así como la Ley 12/2007, de 26 de noviembre, para la promoción de la igualdad de género en Andalucía, toda alusión a personas o colectivos incluida en este documento estará haciendo referencia al género gramatical neutro, incluyendo por lo tanto la posibilidad de referirse tanto a mujeres como a hombres.