T1 - Capacidad de análisis y síntesis.
T2 - Capacidad de organización y planificación. T4 - Resolución de problemas. T5 - Toma de decisiones. T6 - Trabajo en equipo. T11 - Razonamiento crítico. T14 - Aprendizaje autónomo. T16 - Creatividad e innovación. T19 - Motivación por la calidad. T21 - Capacidad de reflexión.
Competencias específicas
FB4 - Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programasinformáticos con aplicación en ingeniería.
FB5 - Conocimiento de la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, los fundamentos de suprogramación, y su aplicación para la resolución de problemas propios de la ingeniería.
Resultados de aprendizaje
RA 1.3.1. Conocer los conceptos de básicos de programación.
RA 1.3.2. Resolver problemas sencillos de programación mediante algoritmos básicos escritos enpseudocódigo.
RA 1.3.3. Realizar programas mediante el paradigma de la programación estructurada aplicandoesquemas algorítmicos básicos y estructuras de datos sencillas.
RA 1.3.4. Usar las herramientas de un entorno de desarrollo de programación para crear y desarrollaraplicaciones.
Fundamentos de Programación I
Fundamentos de Programación I - Tlf: (+34) 902 102 101 RA 1.3.5. Aplicar la recursividad como herramienta de construcción de programas.
Metodología
Metodología Horas Horas de trabajo presencial Horas de trabajo no presencial Clases en el aula 9 45horas (40 %) Prácticas 18 Evaluación 9 Tutorías 9 Estudio personal 17 67,5horas (60 %) Actividades de aprendizaje virtual 10 Realización de ejercicios, presentaciones, trabajos y casos prácticos 33,5 Lecturas recomendadas y búsqueda de información 7 TOTAL 112,5 45 67,5
Temario
Programa de la enseñanza teórica
Tema 1. Introducción a la Programación. 1. Programa.
2. Lenguaje de Programación. 3. Compilador.
4. Algoritmo. 5. Pseudocódigo.
Fundamentos de Programación I
Tema 2. Conceptos básicos de C. 1. Estructura de un programa en C. 2. Elementos de un programa en C. 3. Comentarios.
4. Concepto de variable e inicialización de variables. 5. Concepto de constantee inicialización de constantes. 6. Identificadores y palabras reservadas.
Tema 3. Entrada/Salida Formateada. 1. La función Printf.
2. La función Scanf. Tema 4. Tipos de Datos.
1. Variables: a. Enteros.
b. Coma flotante (reales). c. Caracteres.
d. Booleanos. 2. Constantes
Tema 5. Conversión de Tipos de Datos. 1. Conversiones de tipos:
a. Implícitas (Reglas). b. Explícitas (Casting). 2. Definiciones de tipos: typedef. 3. El operados sizeof
Tema 6. Operadores y expresiones. 1. Expresiones.
2. Operadores aritméticos.
Fundamentos de Programación I
Fundamentos de Programación I - Tlf: (+34) 902 102 101 4. Asignación. Asignación compuesta.
5. Operadores de incremento y decremento. 6. Evaluación de expresiones. Orden.
7. Expresiones como sentencias. Tema 7. Control de flujo: Selección.
1. Estructuras de control. 2. Expresiones lógicas. 3. Operadores relacionales. 4. Operadores lógicos. 5. Evaluación de expresiones. 6. La sentencia if. 7. Expresiones condicionales. 8. Tipo de datos booleano. 9. La sentencia switch.
Tema 8. Control de flujo: Iteración. 1. La sentencia while.
2. La sentencia do. 3. La sentencia for.
4. Saliendo de un bucle: break y continue. 5. Saliendo de un bucle: goto.
6. La sentencia Null (nula). Tema 9. Funciones.
1. Definiendo una función. 2. Llamadas a funciones. 3. Argumentos y parámetros. 4. Declaración de funciones.
Fundamentos de Programación I
6. Conversión de argumentos. 7. La sentencia return.
8. Terminación del programa. Tema 10. Arrays.
1. Arrays unidimensionales. 2. Indexación de elementos. 3. Inicialización de arrays. 4. Arrays y el operador sizeof. 5. Arrays multidimensionales. 6. Arrays constantes.
7. Arrays de tamaño variable . 8. Arrays como argumentos. Tema 11. Cadenas.
1. Cadenas literales o constantes. 2. Almacenamiento de cadenas. 3. Inicialización.
4. Arrays de caracteres. Punteros. 5. Leer y escribir cadenas.
6. La librería estándar string.h. 7. Arrays de cadenas.
8. Argumentos en la línea de comandos. Tema 12. Estructuras.
1. Estructuras.
a. Operaciones sobre estructuras. b. Tipos estructura.
c. Estructuras y funciones. d. Estructuras y punteros.
Fundamentos de Programación I
Fundamentos de Programación I - Tlf: (+34) 902 102 101 e. Combinando arrays y estructuras.
2. Enumeraciones. 3. Typedef. Tema 13. Recursividad. 1. Definición de recursividad. 2. Condiciones en la recursividad. 3. Ventajas e inconvenientes. 4. Ejemplos y ejecución.
Programa de la enseñanza práctica
Práctica 1. Manejo funciones entrada/salida. Tipos de datos en C. Declaración de constantes. Conversiones implícitas y explícitas de tipos de datos. Manejo avanzados de tipos de datos. Manejo de operadores aritméticos. Orden de evaluación de operadores.
Práctica 2. Manejo de sentencias de control de tipo selectivo. Expresiones lógicas y relacionales. Saber emplear el tipo de datos booleano.Manejo de sentencias de control de tipo iterativo. Interrupción de ejecución iterativa en un programa.
Práctica 3. Declaración e invocación de funciones. Retorno de valores en una función.
Modularización de código mediante uso de funciones. Paso de parámetros por valor y referencia. Práctica 4. Manejo de arrays. Declaración e inicialización de arrays. Arrays unidimensionales y multidimensionales. Arrays de tamaño fijo y variable. Paso de arrays como parámetros de funciones.
Práctica 5. Declaración y manipulación de cadenas. Arrays de caracteres y arrays de punteros. Manejo de librería<string.h>. Manejo de arrays de cadenas.
Práctica 6. Declaración y manipulación de tipos de datos compuestos basados en estructuras. Manejo de combinado de estructuras con funciones y arrays. Uso de funciones recursivas en un programa.
Relación con otras materias
La asignatura de Fundamentos de programación I está muy relacionada con la asignatura de Fundamentos de programación II.
Al ser una asignatura de fundamentos básicos en el área de la programación, también está ligada a asignaturas como Programación Orientada a Objetos, Algoritmia, Desarrollo de aplicaciones distribuidas I y II.
Fundamentos de Programación I
También se relacionan conceptos de otras áreas de conocimiento y que son impartidos en asignaturas como Fundamentos de computadores e Ingeniería del software I.
Sistema de evaluación
- Primera prueba parcial: 25% del total de la nota.
Se evaluarán los conocimientos abarcados del tema 1 a 8: tipos de datos, entrada/salida, operadores y expresiones, control de flujo (selección, iteración).
- Prueba final: 40% del total de la nota.
Se evaluarán los conocimientos tratados en los temas 9 a 13: funciones, arrays, cadenas, estructuras, recursividad.
- Evaluación de prácticas y problemas: 35% del total de la nota.
De las 6 prácticas propuestas, se deberán entregar al menos 5. En caso de entregar todas las prácticas, se realizará media con las 5 mejores notas obtenidas por el alumno. La ponderación a aplicar será equitativa (cada práctica tiene un peso del 20%).
Bibliografía y fuentes de referencia
Bibliografía básica
• Khamtane Ashok. Programming in C. Ed. Pearson. 2012.
• Teresa G., S. Ososrio, N. Olvera. Introducción a la programación estructurada en C. Pearson Educación. 2011.
• Ferraris Llanos, R. D.Fundamentos de Informática y Programación en C. Ed.Paraninfo. 2010.
• Peña Basurto, M.A., Cela Espín, J.M. Introducción a la Programación en C. Edición UPC. 2010.
• Llanos Ferraris, D. R. Fundamentos de Informatica y Programacion en C. Ediciones Paraninfo. 2010.
Bibliografía complementaria
• Joyanes, L. Fundamentos de Programación. Ed. McGraw-Hill, 2008. • Schildt, H. C. Manual de referencia. Ed. McGraw-Hill, 2007.
• García, F., Fernández, J., Carretero, J., Calderón, A. Ed. El lenguaje de programación C. Prentice Hall. 2004.
Fundamentos de Programación I
Fundamentos de Programación I - Tlf: (+34) 902 102 101 • Joyanes, L., Zahonero, I. Programación en C. Libro de problemas. Ed. McGraw-Hill. 2002. • Joyanes, L., Zahonero, I., Fernández, M. y Sánchez, L. Estructura de datos. Libro de
problemas. Ed. McGraw-Hill. 1999.
• Márquez, F.M. UNIX. Programación avanzada. 3ª ed. Ed. Ra-Ma. 2004.
Web relacionadas
American National Standards Institute – ANSI (www.ansi.org) International Organization for Standadization
(http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57853) C programming and C++ programming. http://www.cprogramming.com/