Fichas de asignaturas 2009-10
![]() |
INTRODUCCIÓN A LA PROGRAMACIÓN |
![]() ![]() |
|
Asignatura |
![]() |
| |
Profesorado |
![]() |
| |
Situación |
![]() |
| |
Competencias |
![]() |
| |
Objetivos |
![]() |
| |
Programa |
![]() |
| |
Actividades |
![]() |
| |
Metodología |
![]() |
| |
Distribucion |
![]() |
| |
Técnicas Docentes |
![]() |
| |
Evaluación |
![]() |
| |
Recursos Bibliográficos |
![]() |
Código | Nombre | |||
Asignatura | 1710019 | INTRODUCCIÓN A LA PROGRAMACIÓN | Créditos Teóricos | 3 |
Descriptor | INTRODUCTION TO PROGRAMMING | Créditos Prácticos | 4,5 | |
Titulación | 1710 | INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN | Tipo | Obligatoria |
Departamento | C137 | LENGUAJES Y SISTEMAS INFORMATICOS | ||
Curso | 1 | |||
Duración (A: Anual, 1Q/2Q) | 1Q | |||
Créditos ECTS | 6 |
Para el curso | Créditos superados frente a presentados | Créditos superados frente a matriculados |
2007-08 | 43.1% | 26.8% |
Pulse aquí si desea visionar el fichero referente al cronograma sobre el número de horas de los estudiantes.
Profesorado
Bolívar Pérez, Miguel Ángel Hurtado Rodríguez, Nuria (coordinadora) Nuñez Moraleda, Bernardo Periañez Gómez, Francisco Yráyzoz Díaz de Liaño,Eloísa
Situación
Prerrequisitos
Conocimientos básicos de informática a nivel de usuario
Contexto dentro de la titulación
La asignatura se imparte en el 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 2.4.- Estilo de programación. 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 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
Tras cada tema el profesor realizará un cuestionario teórico con preguntas cortas sobre los contenidos estudiados. Dicho cuestionario se corregirá en clase con el objetivo de que los alumnos analicen hasta que punto han cubierto los objetivos cognitivos del tema. Se propondrán puntualmente actividades como la resolución de problemas en grupo utilizando la técnica del puzzle. Se organizará un ciclo de conferencias comunes para las asignaturas de primer curso de esta titulación
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. Por este motivo, los ejemplos que se utilizarán para ilustrar los conceptos teóricos en la pizarra se desarrollarán fundamentalmente en pseudocódigo, aunque también se podrán utilizar ejemplos en lenguaje C. En las clases prácticas se enseñará el lenguaje de programación C resaltando sus aspectos particulares. Cada tema de prácticas puede abarcar de una a cuatro sesiones. Para cada tema se proporcionará un listado de problemas que los alumnos deberán resolver en clase de prácticas contando con el apoyo del profesor. El material para la asignatura, listados de problemas, transparencias, apuntes, problemas resueltos, ejemplos de exámenes etc, se proporcionará a través del campus virtual de la asignatura. Este medio se utilizará también para notificar cualquier aspecto relacionado con la marcha de la asignatura, entrega de problemas, noticias, etc.
Distribución de horas de trabajo del alumno/a
Nº de Horas (indicar total): 150
- Clases Teóricas: 26
- Clases Prácticas: 42
- Exposiciones y Seminarios:
- Tutorías Especializadas (presenciales o virtuales):
- Colectivas: 3
- Individules:
- Realización de Actividades Académicas Dirigidas:
- Con presencia del profesorado: 4
- Sin presencia del profesorado: 19
- Otro Trabajo Personal Autónomo:
- Horas de estudio: 52
- Preparación de Trabajo Personal:
- ...
- Realización de Exámenes:
- Examen escrito: 4
- Exámenes orales (control del Trabajo Personal):
Técnicas Docentes
|
||||||
Otros (especificar):
- Realización de cuestionarios de valoración de adquisición de objetivos cognitivos, corrección y debate posterior. - Resolución de problemas en grupo (técnica del puzzle) |
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. Todos los alumnos deberán estar apuntados a algún grupo de prácticas. 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] Balcazar, 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.