Última actualización: 20/06/2022


Curso Académico: 2022/2023

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


Coordinador/a: TOLEDO HERAS, MARIA PAULA DE

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
- 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 ------------------------------------------------------------------------------- - 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. 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.
Sistema de evaluación
  • Peso porcentual del Examen Final 50
  • Peso porcentual del resto de la evaluación 50

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.