Datos Identificativos 2015/16
Asignatura (*) Fundamentos de Programación Código 631G02511
Titulación
Grao en Tecnoloxías Mariñas
Descriptores Ciclo Periodo Curso Tipo Créditos
Grado 1º cuatrimestre
Cuarto Optativa 6
Idioma
Castellano
Gallego
Modalidad docente Presencial
Prerrequisitos
Departamento Electrónica e Sistemas
Coordinador/a
Vidal Paz, Jose
Correo electrónico
jose.vidal.paz@udc.es
Profesorado
Vidal Paz, Jose
Correo electrónico
jose.vidal.paz@udc.es
Web
Descripción general Fundamentos de Programación é unha materia optativa impartida no 1º cuadrimestre do itinerario de Mantemento e Instalacións do Grao en Enxeñaría Marina. É unha materia que introduce ao alumno nos principios básicos da Algoritmia e a Programación de Computadores. O seu obxectivo é doble: a) proporcionar as capacidades necesarias aos alumnos para a resolución de problemas por medio do deseño de algoritmos nos que apliquen os principios da programación estruturada; e b) a adquisición por parte dos alumnos de bos hábitos de programación no desenvolvimento de programas correctos e ben estruturados manexando unha linguaxe de programación estruturada e as estruturas de datos mais habituais na Programación de Computadores. Os seus contidos teñen unha clara aplicación práctica na futura vida profesional dos egresados da titulación. As competencias adquiridas nesta materia proporcionanlle ao alumno técnicas xenéricas para abordar e prantexar solucións algorítimicas na resolución de problemas e coñecementos mais específicos sobre a maneira de desenvolver programas de computador utilizando unha linguaxe de programación. Polo tanto ademais da capacidade de programar computadores, que é unha competencia cada vez mais demandada no campo profesional debido á crecente utilización de equipamientos industriáis e ferramentas informáticas con capacidades programables, o alumno adquirirá as habilidades propias da programación estruturada á hora de prantexar solucións a problemas (tales como a descomposición modular, a abstracción, etc.), que teñen unha aplicación mais xeral en diferentes ámbitos da vida profesional. No que respecta á relación con outras materias da titulación, contidos como a representación dos datos nun computador, a lóxica booleana das condicións, as estruturas de control dun programa, etc. teñen aplicación en materias como Fundamentos de Regulación e Control, Automatización e Control de Procesos, Automatización con PLCs e Instrumentación Industrial ou Sistemas Electrónicos de Adquisición de Datos.

Competencias del título
Código Competencias del título
A13 CE13 - Llevar a cabo automatizaciones de procesos e instalaciones marítimas.
A16 CE16 - Ensamblar y realizar tareas básicas de mantenimiento y reparación de equipos informáticos. Instalar y manejar sistemas operativos y aplicaciones informáticas. Instalar y realizar las tareas básicas de gestión de redes de ordenadores, en el ámbito de su especialidad.
A53 Realizar operaciones de mantenimiento y explotación óptima de instalaciones marítimo - industriales.
B2 CT2 - Resolver problemas de forma efectiva.
B4 CT4 - Trabajar de forma autónoma con iniciativa.
B8 CT8 - Versatilidad.
B9 CT9 - Capacidad para el aprendizaje de nuevos métodos y teorías, que le doten de una gran versatilidad para adaptarse a nuevas situaciones.
C3 C3 - Utilizar las herramientas básicas de las tecnologías de la información y las comunicaciones (TIC) necesarias para el ejercicio de su profesión y para el aprendizaje a lo largo de su vida.
C9 CB1 - Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio
C10 CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio
C11 CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética
C12 CB4 - Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado
C13 CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

Resultados de aprendizaje
Resultados de aprendizaje Competencias del título
Coñecer o concepto de algoritmo e os métodos básicos para representalos: pseudocódigo e diagramas de fluxo. B2
C3
Deseñar algoritmos para resolver problemas de complexidade pequena a media B2
B8
Coñecer os principios básicos da programación estructurada B2
C3
Coñecer os principais elementos da linguaxe de programación C A13
B2
B8
C3
Implementar algoritmos utilizando a linguaxe de programación C e aplicando os principios da programación estructurada A13
A16
A53
B2
B4
B8
B9
C3
C9
C10
C11
C12
C13
Coñecer as estructuras de datos básicas (vectores, cadeas de caracteres, matrices e listas) C3
Escoller e aplicar as estructuras de datos mais adecuadas para a resolución dun problema A13
B2
B8
C3
Coñecer as librarías estándar mais importantes de C B8
C3
Integrar e utilizar funcións desenvolvidas en C desde a contorna Matlab A13
A53
B2
B8
C3
C10
Manexar as funcionalidades básicas proporcionadas por unha contorna de desenvolvimento integrada (IDE): editor, compilador, depurador, etc. B8
C3

Contenidos
Tema Subtema
Tema 1. Introdución á programación Algoritmos e programas. Paradigmas e linguaxes de programación. Fases no desenvolvimento e execución dun programa. Contornas de desenvolvimento integradas (IDEs). Especificación de algoritmos: pseudocódigo, diagramas de fluxo. Construcións básicas para a especificación de algoritmos. Exemplos de algoritmos para a resolución de problemas sinxelos. Ferramentas para a interpretación automática de algoritmos.
Tema 2. Fundamentos da linguaxe C Historia e características da linguaxe C. Estructura básica dun programa C. Comentarios, sentencias, identificadores e palabras reservadas. Introdución á E/S estándar. Biblioteca estándar de C. O preprocesador. Exemplo de programa C. Compilación, execución e depuración dun programa C.
Tema 3. Elementos básicos da linguaxe C Tipos de datos primitivos. Constantes e Variables. Operadores aritméticos e lóxicos. Regras de precedencia entre operadores. Expresións aritméticas e lóxicas. Conversións de tipo. Tipos de datos e E/S estándar.
Tema 4. Estruturas de control Secuencia de instrucións ou bloque. Estruturas de selección: sentencias if-else e switch. Estruturas de iteración: sentencias for, while e do-while. Exemplos de algoritmos sinxelos.
Tema 5: Vectores e matrices Declaración e inicialización estática de vectores e matrices. Percorrido e pesquisa en vectores mediante índices. Algoritmos básicos de ordenación de vectores. Operacións con matrices e vectores.
Tema 6: Cadeas de caracteres Declaración e inicialización estática de cadeas de caracteres. Manexo de cadeas de caracteres mediante índices. Cadeas de caracteres e E/S estándar. Funcións da biblioteca estándar para o manexo de cadeas de caracteres.
Tema 7: Estruturas Concepto de estrutura. Definición e inicialización de estruturas en C. Operadores de acceso a membros dunha estrutura. Vectores de estruturas.
Tema 8: Punteiros Conceptos básicos sobre direcionamento de memoria. Declaracion e inicialización de punteiros. Operadores de dirección e indirección. Aritmética de punteiros. Reserva e liberación dinámica de memoria. Declaración e inicialización dinámica de vectores e cadeas de caracteres. Manexo de vectores e cadeas de caracteres mediante punteiros.
Tema 9: Funcións Principios e vantaxes da programación estruturada e a descomposición modular. Funcións na linguaxe C. Paso de parámetros a unha función: paso por valor e referencia. Paso de vectores a unha función. Paso de parámetros á función main. Funcións recursivas.
Tema 10: Ficheiros Introdución aos ficheiros en C. Operacións básicas con ficheiros. Ficheiros de texto. Ficheiros binarios. Acceso aleatorio a ficheiros. Ficheiros de estruturas.
Tema 11: Listas Estruturas dinámicas de datos. Concepto de lista. Inicialización dinámica e acceso a membros dunha estrutura mediante punteiros. Creación dunha lista simple. Operacións de percorrido, pesquisa, inserción e eliminación en listas.
Tema 12: C e Matlab Uso de funcións C desde MATLAB. Compilación de programas MATLAB a C. Uso de funcións MATLAB desde programas C.

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral B9 C3 C9 C11 C12 21 0 21
Solución de problemas A13 A16 A53 B2 B4 B8 C10 C13 21 84 105
Prueba objetiva B2 B4 B8 C9 C10 C11 C12 C13 3 18 21
 
Atención personalizada 3 0 3
 
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías Descripción
Sesión magistral Realizarase unha explicación introdutoria dos contidos de cada tema. Proporcionaránselle ao alumno ou ben materiais ou ben indicacións de como consultar fontes adicionais para profundizar no estudo do tema. Os conceptos básicos serán traballados individualmente polo alumno no aula contando coa asistencia do profesor e utilizando exercícios ou tutoriais que este previamente terá preparados na plataforma de aprendizaxe da universidade.
Solución de problemas As clases maxistrais combinaranse coa resolución de problemas por parte do alumno. Esta será a metodoloxía mais potenciada durante o curso, e usarase tanto no aula coa presenza do profesor como no traballo non presencial do alumno. Unha parte importante do traballo con problemas será a implementación de pequenos programas en C, nos que o alumno poña en práctica os coñecementos aprendidos e comprobe como lle permiten solucionar problemas reales.
Prueba objetiva Ao final do cuadrimestre realizarase unha proba escrita, que constará de cuestións teóricas e problemas.

Atención personalizada
Metodologías
Solución de problemas
Descripción
SOLUCIÓN DE PROBLEMAS: A atención personalizada realizarase no aula resolvendo ás dubidas prantexadas polo alumno durante a resolución autónoma de problemas.

ATENCIÓN PERSONALIZADA: Realizarase nos horarios de titorías establecido a comezo de curso e posto en coñecemento do alumno polos medios apropiados no centro e na plataforma de teleaprendizaxe da universidade.

Ademais o profesor resolverá as dúbidas recibidas por medios electrónicos como correo electrónico ou foros creados a tal efecto na plataforma de teleaprendizaxe da universidade.

Evaluación
Metodologías Competéncias Descripción Calificación
Solución de problemas A13 A16 A53 B2 B4 B8 C10 C13 Esta será a metodoloxía utilizada durante o curso para realizar a avaliación continua do alumnado. Semanalmente o profesor prantexará diferentes problemas que o alumno terá que resolver aplicando os conceptos do temario tratados nesa semana. 40
Prueba objetiva B2 B4 B8 C9 C10 C11 C12 C13 Ao final do cuadrimestre se realizará unha proba consistente na resposta a preguntas teóricas e a resolución de exercicios do mesmo tipo que os prantexados nas sesións de problemas durante o cuadrimestre. 60
 
Observaciones evaluación
O alumno ten dúas posibilidades de avaliación:

1. A avaliación continua. Mediante esta via, o alumno ten a posibilidade de obter ata un 40% da nota final mediante a solución dos problemas prantexados semanalmente durante o cuadrimestre. O 60% restante virá da nota que obteña na proba obxectiva. A nota que o alumno obteña na avaliación continua só se terá en conta se supera un mínimo de problemas correctamente solucionados. Ademais, no caso de superar ese mínimo, esta nota gardarase para o exame da convocatoria de xullo.

2.A avaliación mediante proba obxectiva. Esta via se aplicará cando o alumno non opte á posibilidade da avaliación continua. Neste caso o 100% da nota virá da proba obxectiva e non se garda nenguna nota para a convocatoria de xullo.

Fuentes de información
Básica
  • Programación en C. Metodología, algoritmos y estructura de datos (2ª ed). Joyanes Aguilar, Luís; Zahonero Martínez, Ignacio. Ed. McGraw-Hill. 2005. ISBN: 8448198441
  • Programación en C. Libro de problemas. Joyanes Aguilar, Luís; Castillo Sanz, Andrés; Sánchez García, Lucas; Zahonero Martínez, Ignacio. Ed. McGraw-Hill. 2002. ISBN: 8448136225
  • Problemas resueltos de programación en lenguaje C. García Carballeira, Félix et al. Ed. Thomson Paraninfo. 2002. ISBN: 9788497321020
  • Fundamentos de programación. Piensa en C. Osvaldo Cairó. Ed. Prentice Hall. 2006. ISBN: 9702608104
Complementária
  • Fundamentos de programación y lenguaje C (3ª ed). María del Carmen Fernández Lameiro, Roberto Romero Restrebada y José María Acebo Rodríguez. Ed. Tórculo Edicións. 2002. ISBN: 8484082172
  • Fundamentos de Informatica. Codificación y Algoritmia (2ª ed). Pedro María Alcover Garau. Ed. Universidad Politécnica de Cartagena. 2007. ISBN: 8495781727
  • Fundamentos de Informatica. Programación en C. Pedro María Alcover Garau. Ed. Universidad Politécnica de Cartagena. 2006. ISBN: 8495781611
  • Aprenda lenguaje C como si estuviera en primero. Javier García de Jalón de la Fuente y otros. Ed. Universidad de Navarra. 1998.
  • Programación en C (2ª ed). Byron Gottfried. Ed. McGraw-Hill. Serie Schaum. 2005. ISBN: 844819846801

Recomendaciones
Asignaturas que se recomienda haber cursado previamente

Asignaturas que se recomienda cursar simultáneamente
Sistemas Electrónicos de Adquisición de Datos/631G02512
Automatización con PLCs e Instrumentación Industrial/631G02509

Asignaturas que continúan el temario
Matemáticas I/631G02151
Informática/631G02154

Otros comentarios


(*) La Guía Docente es el documento donde se visualiza la propuesta académica de la UDC. Este documento es público y no se puede modificar, salvo cosas excepcionales bajo la revisión del órgano competente de acuerdo a la normativa vigente que establece el proceso de elaboración de guías