Última actualización: 10/06/2021


Curso Académico: 2021/2022

Programación
(15090)
Grado en Ingeniería de la Energía (Plan: 452 - Estudio: 280)


Coordinador/a: IGLESIAS MARTINEZ, JOSE ANTONIO

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Formación Básica
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:

Rama de Conocimiento: Ingeniería y Arquitectura



Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
(Ninguna)
Objetivos
Competencias genéricas: --------------------------- - Capacidad de análisis y síntesis - Capacidad de organización y planificación - Capacidad para aplicar el conocimiento en la práctica - Habilidades básicas de manejo de un ordenador - Capacidad de resolver problemas con iniciativa, creatividad y razonamiento crítico - Habilidades básicas de trabajo en equipo Competencias específicas (Cognitivas, Procedimentales y Actitudinales) ------------------------------------------------------------------------------- - Cognitivas: o Comprender el papel de la informática y la programación en la profesión del Ingeniero Industrial. o Describir los fundamentos del hardware de un ordenador: su estructura funcional y asociar la ejecución de una instrucción o programa a los componentes básicos del ordenador. o Describir los conceptos de algoritmo, programa, instrucción, y lenguaje de programación. o Describir los fundamentos del software de un computador: sistemas operativos, tipos de programas, programas traductores. o Comprender los conceptos de variable, constante, operador y expresión, así como los diferentes tipos de operadores que existen en el lenguaje C. o Describir la estructura de un programa en el lenguaje de programación C. o Conocer las diferentes composiciones algorítmicas básicas: secuencial, alternativa e iterativa. o Conocer el concepto de función y el uso de parámetros. o Describir las funciones de lectura y escritura de datos en el lenguaje de programación C. Relacionar las funciones de entrada y salida de datos con las funciones de librería. o Comprender los principios de la programación modular y estructurada, así como los conceptos de abstracción de datos y abstracción de procedimientos. o Comprender el concepto de tipo de dato complejo, y conocer los tipos array, registro (estructura) y cadena de caracteres. o Conocer los algoritmos básicos de búsqueda y ordenación. o Comprender los fundamentos de la asignación básica de memoria o Conocer el concepto de estructuras externas de datos (ficheros y bases de datos) y las herramientas básicas para su manejo. o Conocer la sintaxis del lenguaje de programación C. o Conocer los principales programas con aplicación en ingeniería - Procedimentales: o Saber utilizar las funciones básicas de un ordenador personal o Ser capaz de plantear y resolver problemas de mediana complejidad que se presentan en la ingeniería mediante el diseño de algoritmos y programas informáticos en lenguaje C. o Tener capacidad para seleccionar las estructuras de datos más adecuadas para la resolución de un problema o Adquirir un buen estilo de programación, diseñando programas eficientes, bien organizados y bien documentados o Capacidad de comprender el funcionamiento de programas escritos por otros programadores y captar su estructura general o Saber utilizar un entorno integrado de desarrollo para la escritura, compilación y depuración de un programa. o Utilizar las funciones de librería más comunes + Actitudinales: o Resolver problemas de forma sistemática y a la vez creativa o Motivación por el logro y la calidad de los programas realizados en la asignatura
Competencias y resultados del aprendizaje
Descripción de contenidos: Programa
Tema 1. Introducción a la informática y la programación -------------------------------------------------------------- - Informática y ordenadores. Evolución histórica - Representación de la información en los ordenadores - Algoritmos y programas. Herramientas para el diseño de algoritmos - La Informática en la profesión del ingeniero industrial Tema 2. Hardware y Software --------------------------------- - Programas y lenguajes de programación. Clasificación. Traductores de lenguajes: Compiladores e intérpretes. Sistemas operativos. - Estructura del ordenador. Arquitectura interna. Ejecución de instrucciones por el procesador. Almacenamiento de de datos. Periféricos. Redes de ordenadores e Internet Tema 3. Elementos básicos del lenguaje C ---------------------------------------------- - Introducción al lenguaje C - Estructura general de un programa en C - Variables y constantes - Tipos de datos fundamentales en C - Operadores, expresiones e instrucciones - Operadores aritméticos, relacionales y lógicos - Instrucciones de asignación - El tipo puntero - Operaciones de entrada/salida Tema 4. Estructuras de control ---------------------------------- - Introducción - Estructuras de control alternativas: if-else, switch - Estructuras repetitivas (bucles): for, while y do-while - Anidamiento de estructuras de control. Tema 5. Subprogramas -------------------------- - El concepto de Subprograma. Programación Modular. - Definición de una función - Llamada a una función - Paso de parámetros por valor - Paso de parámetros por referencia - Ámbito de declaración de variables. Visibilidad - Arrays como parámetros - Estructuras como parámetros - Bibliotecas de funciones y bibliotecas estándar en C Tema 6. Tipos de datos estructurados ------------------------------------------ - Introducción: Datos estructurados frente a datos simples. - Definición y uso de arrays - Punteros y arrays - Cadenas de caracteres - Estructuras de datos definidas por el usuario (registros) - Arrays de estructuras Tema 7. Algoritmos de búsqueda, ordenación y mezcla ------------------------------------------------------------- - Búsqueda - Ordenación - Mezcla Tema 8. Otros temas de informática y programación ---------------------------------------------------------- - Estructuras externas de datos: Ficheros y bases de datos. - Gestión dinámica de memoria - Programas con aplicación en ingeniería
Actividades formativas, metodología a utilizar y régimen de tutorías
Clases Magistrales: --------------------- En estas clases, impartidas en grupos grandes, se presentará la materia del programa, orientada a adquirir las competencias cognitivas de la asignatura. Clases de Ejercicios: ---------------------- En estas clases, impartidas en grupo pequeño, se realizarán ejercicios y problemas. Están orientadas fundamentalmente a la adquisición de las competencias procedimentales y actitudinales de la asignatura. Clases de Laboratorio: ------------------------- Estas clases se impartirán también en grupos pequeños, en los laboratorios informáticos. Las competencias trabajadas serán las mismas que en las clases de ejercicios. Tutorías individuales: ----------------------- Permitirán al alumno consultar individualmente con el profesor dudas concretas sobre la materia del programa y los ejercicios propuestos. Trabajo personal del alumno: -------------------------------- El trabajo personal del alumno se podrá realizar de forma individual o colectiva y es una parte esencial de la preparación de la asignatura. Estará orientado tanto a estudiar los contenidos presentados en las clases magistrales como a realizar los ejercicios y prácticas de laboratorio, revisando después las soluciones propuestas por los profesores para detectar y corregir los posibles fallos. Práctica final: --------------- Trabajo práctico realizado en equipo, en grupos de cuatro o cinco alumnos. Servirá para profundizar en los contenidos de la asignatura, diseñando un programa de mayor extensión que los de las prácticas previas de laboratorio. Este práctica está dividida en 3 partes que se irán realizando según se vayan adquiriendo los conceptos necesarios para ello.
Sistema de evaluación
  • Peso porcentual del Examen Final 40
  • Peso porcentual del resto de la evaluación 60
Calendario de Evaluación Continua
Bibliografía básica
  • Al Kelley and Ira Pohl. A book on C : programming in C . Addison-Wesley. 1998
  • Brian W. Kernighan, Dennis M. Ritchie. C Programming Language. Prentice Hall. 1988
  • Deitel, Harvey M.. C : how to program. Prentice-Hall International. 1994
  • Félix García, Jesús Carretero, Javier Fernández y Alejandro Calderón. El lenguaje de Programación C: diseño e implementación de programas. Prentice Hall. 2002
  • Gottfried, Byron S.. Programación en C. McGraw-Hill. 2005
  • Greg Perry, Dean Miller. C Programming Absolute Beginner´s Guide.. Que. 2013
  • Jesús J. García Molina, Francisco J. Montoya Dato, José L. Fernández Alemán, Mº José Majado Rosales. Una introducción a la programación: un enfoque algorítmico. Thomson. 2005
  • K. N. King. C Programming: A Modern Approach. W.W. Norton & Company. 2008
  • King, K.K.. C programming: a modern approach. W.W. Norton & Company. 2008
  • Paul J. Deitel, Harvey M. Deitel. C: How to Program. Prentice Hall. 2009
Bibliografía complementaria
  • Doris Appleby, Julius J. Vandekopple. Lenguajes de Programación: Paradigma y práctica. McGraw-Hill. 1998
  • Yung-Hsiang Lu. Intermediate C Programming. CRC Press. 2015

El programa de la asignatura podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.